Delphi.cz

Český portál Delphi

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

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

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

Datum: 2017-06-05 23:17:00 Tagy: RTL

Novinky v Delphi

TBCD v Delphi

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

Datum: 2017-01-30 23:03:00 Tagy: RTL

Praxe

DLL a WideString

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

Datum: 2016-11-26 22:37:00 Tagy: DLL, FastMM, RTL

Delphi Praxe

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

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

Datum: 2015-07-04 00:26:00 Tagy: paralel, RTL

Praxe

Náhodné výkřiky 50

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

Datum: 2015-05-21 22:53:00 Tagy: komponenty, kompilátor, RTL, Firemonkey, XE8, hry, grafika, hardware, IoT

Komponenty

System.Net.httpclient - THTTPClient z XE8

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

Datum: 2015-04-19 22:59:00 Tagy: XE8, Indy, synapse, RTL, paralel

Novinky v Delphi

Oprava DoneMonitorSupport

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

Datum: 2014-11-17 20:58:00 Tagy: fix, delphi, RTL

Praxe

XE7 - System.Threading - Future

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

Datum: 2014-09-09 23:39:00 Tagy: XE7, RTL, Threading, paralel,

Novinky v Delphi

System.JSON v Delphi XE6

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

Datum: 2014-08-19 23:51:00 Tagy: RTL, JSON

Novinky v Delphi

Synchronizace TThread za pomocí anonymních metod

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

Datum: 2014-07-21 22:32:00 Tagy: RTL, delphi, anonymni metody

Praxe

DisposeOf, ARC, Free, WEAK a další

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

Datum: 2014-07-11 21:28:00 Tagy: ARC, ARM, kompilátor, praxe, super, RTL

Jazyk Novinky v Delphi

DateUtils.TTimeZone

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

Datum: 2014-05-29 21:36:00 Tagy: RTL

Novinky

Delphi XE4 - pár novinek

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

Datum: 2013-04-23 22:10:00 Tagy: XE4, RTL

FireMonkey

Operátory u záznamů a TBytes

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

Datum: 2013-04-04 00:39:00 Tagy: kompilátor, RTL

Novinky v Delphi Praxe

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

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

Datum: 2012-11-07 00:17:00 Tagy: OSX, DLL, RTL

Praxe

Náhodné výkřiky 32

Ve zkratce několik novinek a poznámek.

Více...

Datum: 2012-11-01 22:34:00 Tagy: RTL, XE3, aktualizace, unigui, ARC, FireMonkey, Styly

Novinky

Problémy s TStringList

Přišel mi mail od čtenáře Jiří Milička a zkusím ho zde publikovat - třeba to někomu pomůže.

Ve zkratce tvrdí, že přišel na dvě chyby s TStringList: Více...

Datum: 2012-04-17 22:35:00 Tagy: praxe, RTL

Praxe

Náhodné výkřiky 22

Dnes to bude o Delphi 1, nějaký Open Source pro syntézu řeči, kousek kódu z RTL, device drivers a Delphi nebo FPC, TMethod, GDI+ a vyhlazování a seminář bude nakonec v Olomouci atd.

Více...

Datum: 2012-02-01 22:10:00 Tagy: delphi, RTL, RTTI, komponenty, grafika

Případ TinyDB a XE2

Pod článkem s anketou ohledně nejvyšší používané verze jsou i dva komentáře stěžující si na problémy s XE2. Leoš si stěžoval na design mód a stabilitu ohledně IBX komponent a JaroB na problémy s portací TinyDB z XE do XE2. Bohužel Leoše v tom asi musím nechat, jelikož IBX komponenty a já se nemáme rádi, ale ohledně TinyDB jsem si řekl, že bych to mohl zkusit.

Výsledkem byl zajímavý možný problém ohledně TStream.

Více...

Datum: 2012-01-28 21:55:00 Tagy: ladeni, DelphiXE2, RTL

Praxe

Náhodné výkřiky 20

Dnes tu bude pár poznámek ohledně unigui, FireMonkey, nějaký kousek kódu a další efektové. V zahraničí se všichni bohužel hádají ohledně FreeAndNil (čemuž se chci vyhnout), takže zde nic takového nečekejte.

Více...

Datum: 2012-01-17 21:04:00 Tagy: unigui, vykriky, FireMonkey, utrzky, IDE, RTL

Novinky

Ještě pár informací o XE2

Napadlo mne ještě pár drobností o XE2, co by se někomu mohlo hodit. Více...

Datum: 2011-09-27 20:59:00 Tagy: DelphiXE2, RTL

Novinky v Delphi

Delphi XE2 - pár tipů

Na FireMonkey se mi líbí x věcí a jedna z nich je portabilita. Nyní se objevila nová "platforma", resp. implementace Canvas pro Windows (kromě standardních GDI+ a Direct2D) tak přibyla FMX.Canvas.VPR. Jedná se o malou knihovnu, jejíž autorem je Mattias Andersson ze serveru graphics32.org a projektu VPR, což je polygon rasterizer.

Více...

Datum: 2011-09-13 22:39:00 Tagy: FireMonkey, DelphiXE2, optimalizace, RTL

Novinky

Delphi XE2 TZipFile a TOSVersion

Jelikož je XE2 multiplatformní je vhodné mít nástroj na kontrolu platforem, potažmo verze.

Jednotka System.SysUtils byla rozšířena o záznam TOSVersion.

Více...

Datum: 2011-09-07 21:19:00 Tagy: RTL, DelphiXE2

Novinky v Delphi

XE2, iOS, RDP a dotted unit - pár informací

Několik dalších informací o tom co nás čeká. Podrobné informace (určitě včetně benchmarku x64bit) budou po RTM verzi, do té doby jen útržky z toho co je povoleno publikovat. Více...

Datum: 2011-08-11 00:16:00 Tagy: DelphiXE2, FireMonkey, RTL, iOS, FPC

Novinky

Malý testík

Pořád mi to přijde, že píšu a píšu a žádné výsledky (teda kromě návštěvnosti, která je slušná). Takže jelikož je období zkoušek, je zde malý testík. Ušetřím Vás trapností typu jakými třemi způsoby se dá označit komentář, na druhou stranu pro dnešek vynecháme i generika a další věci.

V budoucnosti přejdeme k XE2, kde určitě bude hafo témat, ale to bude ještě cca 2-3 měsíce trvat a do té doby máme ještě trochu času. Takže na zabití času malý test.

Co bod - to bod. V úvahu jsem bral Delphi XE, ale většina věcí je platná obecně. A prosím bez google a spol., kdo najde chybu vyhrává. Více...

Datum: 2011-05-27 01:48:00 Tagy: RTL, kompilátor

Delphi Server

Náhodné výkřiky 4

Resp. spíše několik zajímavých odkazů, třeba se někomu bude něco hodit.

Více...

Datum: 2011-05-24 22:38:00 Tagy: komponenty, praxe, optimalizace, RTL

Komponenty

Free, FreeAndNil, Assigned a spol

I pokud je člověk začátečníkem, v Delphi narazí na objekty a třídy v podstatě hned - např. i formulář je objekt.

Jen pro úplnost: objekt je instancí třídy, ale to modří již vědí. Vytvoření objektu je provedeno voláním konstruktoru patřičné třídy. Následně objekt existuje v paměti dokud programátor neuzná za vhodné ho uvolnit (zjednodušeně).

Více...

Datum: 2011-05-13 20:39:00 Tagy: delphi, RTL, Object Pascal, FastMM

Začátečníci

Minimální Delphi aplikace

Díky komentáři Jaroslava Beneše minule pod článkem (určitě se podívejte na jeho stránky s Delphi drobnostmi - např. TinyDB) jsem se zahloubal do stránek delphibasics.info což jsou opravdu hardcore Delphi programátorské stránky, kde jsem se inspiroval. Více...

Datum: 2011-05-11 22:09:00 Tagy: delphi, utrzky, RTL, hacky

Aplikace

Lehce o balíčcích

Delphi od nějaké verze 3 podporují balíčky (packages). Jedná se o speciální DLL, které podporují speciální vlastnosti Delphi a jejich RTL (tj. zachování objektového modelu, sdílení správce paměti, bezproblémové operace s řetězci a dynamickými poli atd.). Použití balíčků umožňuje velkou modularitu. Více...

Datum: 2011-05-06 22:23:00 Tagy: začátečníci, delphi, dll, RTL, super,

Návody Praxe Začátečníci

Náhodné výkřiky 3

Opět je tu několik navzájem nesouvisejících výkřiků, které jsou delší než limit twitteru a kratší než článek.

Dnes o tom jak použít RichEdit 4.1, nějaký nástroj, nějaká free komponenta, trochu cool grafiky se zdrojovým kódem, tip pro 64bit kompatibilitu.

Více...

Datum: 2011-04-29 21:00:00 Tagy: komponenty, delphi64, nastroje, open source, grafika, RTL

Novinky