vložil Radek Červinka
28. června 2015 15:18
David Berneda (autor TChart) zveřejnil krátkou jednotku TeeGenericTree.pas, která implementuje strom pro obecný datový typ na bázi generik. Podle mne je to pěkný studijní materiál na použití generik, pokud se nechcete omezovat je na pouhé použití existujících List<T> atd..
Více...
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...
vložil Radek Červinka
10. srpna 2013 09:37
Přiznám se, že následující část možnosti property mi nebyla známou a nejsem si jist zda to není nějaká novinka. Jde o to, že kromě property typu pole, což je snad všeobecně známo a používáno, lze dodefinovat další property, které index do pole mají jako konstantu a jsou tak něco jako zkratka pro určité prvky pole. Z příkladu to bude jasnější:
Více...
vložil Radek Červinka
1. června 2013 01:32
ARC - tedy automatické počítání referencí a uvolňování není principiální novinkou v XE4. Už od Delphi 2 podporuje stejný mechanismus pro řetězce (resp. pro dlouhé stringy). U řetězců je navíc implementován COW (Copy-On-Write) mechanismus.
Více...
vložil Radek Červinka
1. května 2013 01:56
S příchodem Delphi XE4 je with pro nové kompilátory (neoficiálně) deprecated. Zajímal by mne Váš názor v anketě (jako vždy vpravo nebo přes hlasov.at/l4ch.
Původně IMHO byl with koncipován jako hint kompilátoru, že by bylo vhodné být trošku efektivnější ohledně použití nějakého záznamu (později objektu). S tím, jak se jazyk rozšiřoval, začínalo docházet k riskantním situacím, viz. dále.
Více...
vložil Radek Voltr
5. ledna 2011 10:00
Zhruba před rokem a půl jsme řešili vzrůstající počet požadavků uživatelů na vylepšení podpory x64 platformy v naší aplikaci Spyware Terminator. Aplikace je z valné části napsána v Delphi (aktuálně 2007) a tak jsme museli řešit i konverzi systémové služby pro 64bit platformu
Více...
vložil Radek Červinka
20. prosince 2010 00:22
Někdy je vhodné do zdrojáku vložit informaci, která se zobrazí při kompilaci. Delphi pro tuto funkcionalitu má direktivu $Message, která má dokonce i parametry.
Syntaxe: {$MESSAGE HINT|WARN|ERROR|FATAL 'řetězec' }
Více...
vložil Radek Červinka
15. února 2010 23:07
Jak jsem již psal, Delphi 2007 přináší do jazyka koncepci Class Helper. Jedná se o možnost rozšiřovat existující třídy o metody a property (ale ne pole) bez zásahu do původní třídy. Cílem je mít možnost základní třídy a případné platformové rozšíření implementovat pomocí class helperů.
Raději rovnou příklad. Vytvoříme class helper pro TEdit a pak ho použijeme.Více...
vložil Radek Červinka
7. února 2010 21:16
Delphi 2010 přináší kromě již uvedených rozšíření jazyka i koncept class constructor (v jiných jazycích nazýván Static nebo Shared), tj. konstruktor specifický pro třídu (neplést s klasickým konstruktor objektu). Tento nový konstruktor je volán pouze jednou (a nebo vůbec - viz. níže) pro každou třídu.
Raději příklad, pak si řekneme ještě více.Více...
vložil Radek Červinka
6. ledna 2010 01:29
Delphi už dlouho má procedurální typy (tj. typu procedura nebo funkce, v podstatě pointer) a ukazatele na metody (
tj. typ pointer na metodu). To druhé je základem celé VCL - kdykoliv deklarujete třeba OnClick obsluhu jedná se právě
o druhý případ. První případ je používaný méně, ale třeba já ho často používám pro různé callback funkce atd.
Anonymní metody rozšiřují stávající stav, kdy místo jména procedury nebo metody prostě napíšete kód. Navíc se v takovém případě mění
platnost lokálních proměnných.Více...
vložil Radek Červinka
31. prosince 2009 02:50
Delphi 2009 přináší několik novinek kompilátoru a RTL z nichž nejzásadnější je podpora Unicode, Generika (generics), anonymní metody a pak zbytek.
Minule byla první část změn v Delphi 2009, nyní přicházejí na řadu generika - generics (dobré číst postupně od Delphi 2007).Více...
vložil Radek Červinka
29. prosince 2009 02:07
V nových Delphi 2010 bylo konečně vylepšeno RTTI (Run Time Type Information - tj. informace o typech získané za běhu).
Jen ve zkratce dřívější stav: pokud při deklaraci třídy uvedete published, budou členy v této skupině mít sice viditelnost jako public, ale kompilátor k nim navíc přigeneruje speciální RTTI informace.Více...
vložil Radek Červinka
8. prosince 2009 23:57
Hodně lidí stále používají starší verze Delphi (nejčastěji 5-7) a nemají přehled o novinkách v novějších Delphi (a změn je hodně, hlavně ohledně jazyka), takže si je rychle prosvištíme. A to samé pak udělám s Delphi 2009 a snad i s Delphi 2010 (kde se pak budu jen odkazovat na tento článek).
Delphi 2007 je první verzí, která vznikla po oddělení vývojových nástrojů od Borlandu a je znát, že to programátorům dalo novou chuť pracovat a odstraňovat chyby (je pravdou, že Delphi 8 bylo neodladěné).
IDE je interně nazýváno Galileo, první verze byla pro neštastné Delphi 8, pro Delphi 2007 se jedná již o 5 verzi IDE a proti předchozím verzím je opravdu stabilní. Delphi 2007 je poslední ne unicode verze a jedná se o nonbreaking verzi, tj. je binárně kompatibilní s Delphi 2006 (tj. dcu z Delphi 2006 lze používat ve 2007).Více...