Rozcestník: Jste tu poprvé? Pro začátečníky jsem napsal úvod do programování v Delphi. Můžete si přečíst informace ohledně změn v jednotlivých verzích Delphi a případně mezi jednotlivými edicemi Delphi. Pokud přecházíte ze starších verzí tak si všimněte mého pojednání řetezce a unicode.
Možná Vás bude zajímat spolupráce databáze a Delphi, nebo se budete rozhodovat mezi různými druhy Delphi projektů.
Uvažujete o vývoji pro mobilní zařízení? V tom případě navštivte sekci FireMonkey.

Pokud Vám nestačí náš přehled komponent, navštivte adresář nejpopulárnějších open source Delphi komponent

Free Delphi Starter Edition download

Potřebujete Delphi školení na různá témata?


Registration-free COM se souborem manifestu a Delphi

vložil Radek Červinka 18. října 2016 21:58

Nemám moc rád technologii COM, hlavně protože jinak k prakticky samostatnému EXE vygenerovaného Delphi (případně s dalšími DLL v adresáři programu) zavádí závislosti na něčem, co musí být registrované v systému, což je z mého pohledu zásadní problém a moc se to neslučuje s mojí filozofií programů.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy:

Praxe

HELIOS Orange zespodu, aneb jak se vyvíjí v Asseco Solutions

vložil djenne 11. října 2016 00:08

Zvažuje-li začínající programátor, kde by mohl uplatnit své schopnosti, má zpravidla o pozicích týkajících se větších IS, představu všední, nezajímavé a poklidné práce. Velmi často je však tato představa mylná a situace nezřídka připomíná vojenské operace, ať už z hlediska strategického, taktického nebo operačního. Kdo někdy řešil scénář „V pátek úředník vydá vyhlášku a v pondělí podle ní musí uživatelé odevzdat hlášení.“ ví, co mám na mysli.

Omlouvám se tedy všem pacifistům, ale marná sláva, armáda má v organizaci, použití různých zkratek, kódů a hlášeních letitou tradici a občas není špatné se u ní inspirovat. Snad vám tedy strohý vojenský výčet faktů poskytne přehledně základní informace:

Jednotka:

Vývoj informačního podnikového systému HELIOS Orange

Zařazení:

Asseco Solutions a.s

Historie:

Jednotka se může opřít o bohaté bojové zkušenosti. Déle sloužící veteráni jsou u jednotky i více než 20 let.

Úkoly:

Poskytovat krytí pro operace více než 6000 zákazníků v oblasti 4 500 000+ řádků zdrojového kódu a více než 1000 dialogových oken. Provádět průzkumnou činnost na území legislativní džungle.

Reagovat na změny taktické situace ve všech zájmových oblastech.

Udržovat vysokou úroveň připravenosti na všechno. Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: ,

FireMonkey | Firmy

FastScript

vložil Radek Červinka 5. května 2016 23:44

Pokud jste šťastným uživatelem FastReportu, možná ani nevíte, že FastReport obsahuje i FastScript a že se dá použít nezávisle bez generování reportů. Co je to FastScript? Je to knihovna pro provádění skriptů v různých jazycích (Pascal, JS, C++, VB). Skripty mohou být celé programy, ale i obyčejný výraz. FastScript vám dává do ruky opravdu mocný nástroj.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: , ,

Komponenty

Automatické vypnutí Active u následníka TDataset během nahrávání formuláře

vložil Radek Červinka 21. února 2016 22:10

Pokud používáte vkládání DB komponent přímo na formulář (třeba do DataModule), občas se může stát, že zapomenete nastaveno TDataSetxx.Active := True, což může velmi zpomalit start programu a mít další vedlejší efekty.

Když přejdu to, že si myslím, že je lepší vytvářet Db komponenty až za běhu (nebo aspoň mít vlastního následníka, v kterém úpravu provedeme) a ne v design modu, existuje možnost jak to vyřešit.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: ,

Praxe

FireDac TFDMemTable

vložil Radek Červinka 25. listopadu 2015 01:04

Trošku méně známou součástí FireDAC je TFDMemTable alias memory table. TFDMemTable můžete používat jako jednoduchý dataset s čtením a zápisem do JSON, XML nebo binárních dat, nebo jako lokální dataset pro DBMS nebo navíc použít CachedUpdates, případně za pomocí LocalSQL provádět SQL příkazy nad skupinou TFDMemTables.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: ,

Komponenty

Pár utržků kódu k XE8

vložil Radek Červinka 9. dubna 2015 22:29

Integrovaný HTTP(s) klient

Podle mne těžce inspirovaný .NET, https bez OpenSSL.

implementation
uses
  System.Net.httpclient,System.Net.URLClient;

{$R *.dfm}

procedure TForm7.Button1Click(Sender: TObject);
var
  o: THTTPClient;
  response: IHTTPResponse;
  r: TNameValuePair;
begin
  o := THTTPClient.Create;
  try
    response:=o.Get('https://www.google.com/');
    for r in response.Headers do
      memo1.Lines.Add(r.Name + '='+r.Value);
    Memo1.Lines.Add(response.ContentAsString);
  finally
    o.Free;
  end;
end;

No synapse to není, ale je to integrované v RTL a něco to umí. Více snad později.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: ,

Novinky v Delphi | Praxe

Jak jsem modernizoval UI a UX

vložil Radek Červinka 22. března 2015 22:16

Posledních pár měsíců jsem s přestávkami pracoval na modernizaci UI a UX našeho vlajkového produktu CRMPLUS. Cílem bylo popotáhnout vzhled UI aplikace (doufám) do současnosti a z hlediska UX odstranit několik historických nešvarů jako např. většinu modálních dialogů.

Zkusím naznačit některé věci, které jsem použil a doufám, že to někomu pomůže, nebo aspoň pobaví. CRMPLUS 5 Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: , , ,

Praxe

Náhodné výkřiky 48

vložil Radek Červinka 9. března 2015 22:29

Dneska to budou spíše takové triky.

Zmenšení velikosti zálohy instalačních souborů

Instalátor Delphi je napsán v Install Aware, který bohužel ještě z různých důvodů (asi politických) spolupracuje s Microsoftim MSI. Nejen, že MSI je totální neefektivní (např. při reinstalaci otevírá prý každý soubor 4x - proto taky Delphi dělají unistall a nový install), ale ještě se ukládají informace pro reinstalaci do c:\ProgramData (to jde nějak změnit parametrem).

Komprese 1

Problémem je, že v době SSD disků a VMWare jsou disky C malé a takové XE7 tak napráská 10GB dat, které se už moc nepoužijí. Bohužel do doby než se vykopne MSI s tím moc neuděláme.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: ,

Praxe

Externí výjimka c0000005 při spouštění programu přes vzdálenou plochu

vložil Radek Červinka 4. listopadu 2014 23:01

Nedávno jsem řešil problém. U jednoho zákazníka, který spouští naše CRMplus přes vzdálenou plochu na (myslím) Windows Serveru 2008 se v určitém případě objevovala zvláštní výjimka.

RPC c0000005

Zajímavé bylo, že to obešlo můj exception handler, takže mi bylo jasné, že to není úplně normální situace.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy:

Praxe

Zvětšení dostupné paměti 32bit programů v Delphi

vložil Radek Červinka 19. září 2014 23:09

Jednoho krásného dne Váš program zjistí, že trpí nedostatkem paměti. Přirozeným krokem je přechod na 64bit aplikace, ale existuje i jiná možnost. U EXE (resp. PE souboru) se dá specifikovat flag IMAGE_FILE_LARGE_ADDRESS_AWARE. Tento flag byl původně určen pro speciální mód 32bit Windows, kdy místo normálních cca 2GB paměti pro 32bit proces nabízel celých úžasných 3GB volné paměti. Praktická využitelnost tedy nic moc, protože tento mód Windows se moc nepoužíval.

Situace se obrátila s příchodem 64bit Windows (jen aby nedošlo k nedorozumnění - dávejte pozor kdy mluvím o 32bit procesu, kdy o 32bit Windows a kdy o 64bit Windows).

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: , , , ,

Praxe

Beyond Compare Lite

vložil Radek Červinka 24. července 2014 00:15

Od verze XE je součástí instalace Beyond Compare Lite, najdete ho v adresáři Delphi/bin/BCompareLite.exe . Pokud ho ještě neznáte - dejte mu šanci. Plnou verzi znám jen z doslechu (slučování ze tří zdrojů, synchronizace adresářů…), ale i v lite verzi je pro mne významné plus např. to, že program umí rozeznávat důležité změny (tj. rozdíl mezi změnou v poznámce, příkazu nebo např. v řetězci).

Beyond Compare Lite

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy:

Nástroje

DisposeOf, ARC, Free, WEAK a další

vložil Radek Červinka 11. července 2014 22:28

Laskavý čtenář mého blogu jistě už naznal, že Delphi neznamená jen Win32 (Win64, OSX) ale i kompilátory pro iOS a Android.

Tyto kompilátory (kromě kompilace do ARM) přinášejí i podporu ARC (Automatic Reference Counting) pro objekty (podobně jako k tomu došlo před nedávnem Apple). Princip není v Delphi v podstatě nový - Delphi odjakživa používají stejný mechanismus nejméně pro řetězce a interface.

V podstatě existují dvě možnosti automatického uvolňování paměti - ARC a Garbage Collector, kdy GC je ten nedeterministický (tj. problematický viz Android a nový runtime ART to taky řeší), ale to sem asi nepatří.

Obecně ale oba modely musí řešit cyklické reference. Takže ARC je moc pěkné, ale není vše tak sluníčkové jak by mohlo vypadat. V nejhorším ale jen nedojde k uvolnění, pokud se tomu chceme vyhnout, je nutno jít trochu hlouběji. Upozorňuji, že právě následující text jde v některých detailech hlouběji než je nutné pro normálního programátora.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: , , , , ,

Jazyk | Novinky v Delphi

Nahrazení frames za vložené formuláře

vložil Radek Červinka 5. června 2014 00:08

Tento trik určitě většina programátorů zná, ale třeba to někomu pomůže a mimochodem to ukazuje genialitu návrhu Delphi.

Jistě je Vám známo co jsou to frames - jedná se o pseudo okna, která můžete v IDE designovat a pak je používat v jiných formulářích. Je to celkem slušné řešení, ale není to úplně ono. Má to jisté omezení, sem tam IDE nefunguje 100% podle toho co si představuji atd. Postupně jsem přešel na méně RAD přístup, a to "injektování" formuláře do jiného controlu na jiném formuláři (já tomu říkám osobně dokování, ale dokování je v Delphi něco jiného).

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy:

Začátečníci

Poslední pomoc při ladění

vložil Radek Červinka 18. března 2014 00:49

Dnes bych rád ukázal jeden prastarý trik, který vám může pomoci při ladění v poslední instanci.

AV

Delphi v normální situaci instaluje globální ovladač výjimek, který odchytává vaše problémy (to je to okno které se zobrazí při výjimce). Tento globální ovladač samozřejmě můžete nahradit vlastním, je na to několik knihoven - podrobněji jsem o tom psal dříve - Exception dialog v Delphi.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: ,

Praxe

Trochu hackování v Delphi

vložil ondra 6. ledna 2014 23:18

Tento článek nepojednává o tom, jak obejít ochranu v RAD Studiu nebo MS Office, podíváme se spíš na to, jak modifikovat cizí kód, aniž bychom museli upravovat původní unity.

P.S.:Jedná se o pokračování a rozšíření mého seriálu o háčcích v Delphi (viz. tag hacky), tentokrát z pera Ondřeje Pokorného (www.kluug.net, už jsem ho několikrát odkazoval) / poznámka administrátora.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: ,

Návody

Naše nabídka

Partial English version.

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Anketa

Poslední komentáře

Comment RSS