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

Platform status - podporované platformy v jednotlivých verzích

Free Delphi Starter Edition download

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


System.Hash a System.NetEncoding

vložil Radek Červinka 6. června 2017 00:17

Předpokládám, že ne všichni sledují všechny nové soubory v instalaci Delphi a tak bych rád upozornil na dvě jednotky z posledních verzí: System.Hash a System.NetEncoding a chtělo by se říct konečně.

Více...

Tagy:

Novinky v Delphi

TBCD v Delphi

vložil Radek Červinka 31. ledna 2017 00:03

Podle mne ne moc známá věc je implementace BCD v Delphi. BCD je způsob uložení čísel s fixní přesností. BCD je v Delphi reprezentován záznamem TBCD definovaným v jednotce Data.FmtBCD, případně FMTBcd (ve starších verzích, nejméně D2007).

Více...

Tagy:

Praxe

DLL a WideString

vložil Radek Červinka 26. listopadu 2016 23:37

Myslím, že normální programátor používající DLL v Delphi obecně chápe, že předávat string jako parametr do DLL není možné bez použití berličky typu SimpleShareMem, která propojí memory manager v hlavní aplikaci s memory managerem v DLL. Což ovšem znemožňuje použití DLL z jiných jazyků a proto se musíme snížit na úroveň předávání přes PChar nebo PWideChar.

Více...

Tagy: , ,

Delphi | Praxe

Použití TThread.Synchronize u ne GUI aplikací

vložil Radek Červinka 4. července 2015 01:26

V rámci prověřování jednoho nápadu jsem chtěl vyzkoušel jak se chová TThread.Queue a TThread.Synchronize (více o těchto volání z dřívějška) u ne GUI aplikací (resp. zkoušel jsem jen konzolové).

Více...

Tagy: ,

Praxe

Náhodné výkřiky 50

vložil Radek Červinka 21. května 2015 23:53

Dneska se bude řešit System.Copy, epesní nová komponenta na editaci textu, herní engine pro FireMonkey, změna podmínek aktualizace pro XE8 a nějaké odkazy.

Více...

Tagy: , , , , , , , ,

Komponenty

System.Net.httpclient - THTTPClient z XE8

vložil Radek Červinka 19. dubna 2015 23:59

No minule jsem byl k THTTPClient trošku nespravedlivý, ve skutečnosti toho umí více než se zdálo. Kromě https bez nutnosti dodání OpenSSL pro různé platformy to má zajímavé možnosti ohledně paralelního zpracování. Ukáži na malém příkladu.

Ukáži nejprve příklad na zamyšlení a pak vysvětlím co to vlastně dělá. Více...

Tagy: , , , ,

Novinky v Delphi

Oprava DoneMonitorSupport

vložil Radek Červinka 17. listopadu 2014 21:58

Nedávno jsem přišel na chybu (resp. nedokonalost) ve verzích kolem XE (jak zpátky nevím, ale opraveno kolem XE3 nebo XE4). Jedná se o problém při ukončování aplikace, kdy aplikace zůstane viset při uvolňování věcí ohledně TMonitor. Později jsem zjistil, že nejsem sám - aplikace zůstane viset pokud nejsou korektně uvolněny instance používající (myslím) TMonitor (např. ThreadList ale i jiné).

Pikantní je, že chyba se vyskytovala jen sem tam - problém vznikl (asi) při přidání mnoha nových komponent pro UI a nemám sílu a energii to nějak systémově řešit (jako např. navrhuje Uwe Raabe za pomocí trasování - DoneMonitor. Popis problému je několikrát popsán.

Chyba (možná spíše přílišný optimismus při implementaci) za normální situace nenastane.

Více...

Tagy: , ,

Praxe

XE7 - System.Threading - Future

vložil Radek Červinka 10. září 2014 00:39

XE7 přichází s novou jednotkou přímo v RTL a to System.Threading, která zjednodušuje paralelní programování. Jedná se o multiplatformní věc a mezi jinými umí ThreadPool, který podle zátěže přidává nebo odebírá další vlákna.

Více...

Tagy: , , ,

Novinky v Delphi

System.JSON v Delphi XE6

vložil Radek Červinka 20. srpna 2014 00:51

Od XE6 je součástí RTL Delphi podpora pro JSON. V předchozích verzích to byla součástí DataSnap, ale od XE6 je nově součástí přímo RTL v jednotce System.JSON.

Více...

Tagy: ,

Novinky v Delphi

Synchronizace TThread za pomocí anonymních metod

vložil Radek Červinka 21. července 2014 23:32

Před několika verzemi byla metoda TThread.Synchronize rozšířena o několik možností volání, mezi jinými i anonymní metody. Nepřikládal jsem tomu moc význam, ale poslední dobou jsem to viděl v několika projektech a nabývám dojmu, že to má větší možnosti než jsem si myslel.

Více...

Tagy: , ,

Praxe

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...

Tagy: , , , , ,

Jazyk | Novinky v Delphi

DateUtils.TTimeZone

vložil Radek Červinka 29. května 2014 22:36

V XE byla výrazně rozšířena jednotka DateUtils přidáním podpory pro TTimeZone, doporučuji Vaší pozornosti, zvláště instanci TTimeZone.Local. Pokud potřebujete pracovat s časovými zónami tak tato třída Vám velmi ulehčí práci.

Více...

Tagy:

Novinky

Delphi XE4 - pár novinek

vložil Radek Červinka 23. dubna 2013 23:10

Firemonkey byla výrazně rozšířena. Trial verze je nově dostupná i jako Instant Trial, tj. via AppWave.

Pro zajímavost nově TOSVersion obsahuje nové platformy.

  TOSVersion = record
  public type
    TArchitecture = (arIntelX86, arIntelX64, arARM32);
    TPlatform = (pfWindows, pfMacOS, pfiOS, pfAndroid, pfWinRT, pfLinux);
  public const
    AllArchitectures = [arIntelX86, arIntelX64, arARM32];
    AllPlatforms = [pfWindows, pfMacOS, pfiOS, pfAndroid, pfWinRT, pfLinux];

Hmm, pfWinRT?

Více...

Tagy: ,

FireMonkey

Operátory u záznamů a TBytes

vložil Radek Červinka 4. dubna 2013 01:39

Myslím, že celkem nedoceněnou vlastností je přetěžovaní operátorů u datové struktury record. Z cvičných důvodů ukáži jak např. emulovat 8bit string za pomocí TBytes.

Více...

Tagy: ,

Novinky v Delphi | Praxe

Dynamické zavádění knihoven v MAC OSX

vložil Radek Červinka 7. listopadu 2012 01:17

Kreténi. Tak jedině mohu nazvat autory OS X. Vysvětlím proč. Minule jsem popisoval jak staticky linkovat knihovny na OSX. V podstatě si musíte dát jen pozor, aby se při importu u symbolů přidalo podtržítko. Tj. pokud se exportovaná funkce jmenuje Foo, při importu musíte specifikovat název

_Foo

Ok, prostě taková úchylka, člověk se s tím smíří. Více...

Tagy: , ,

Praxe

Naše nabídka

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).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

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.

Poslední komentáře

Comment RSS

Dle měsíců