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?

Nový opensource JSON parser - JsonDataObjects

Jistě znáte jméno Andreas Hausladen - člověk který stojí za IDEFixPack (mimochodem zrovna vyšla nová verze 5.8) , v půlce jednotek z JCL najdete jeho jméno atd.

Několikrát jsem zde jeho dílo velmi obdivoval a to platí stále. Tak on částečně z nudy napsal nový JSON parser, dostupný na github a nepřekvapivě všem ostatním natrhl

Více...

Datum: 2015-02-19 21:53:00 Tagy: super, IDE, JSON, optimalizace

Komponenty Novinky Optimalizace

DDDebug

Nedávno jsem zde ukazoval svůj malý pokus o trasování alokace a dealokace s případným vyhodnocením co se uvolňovalo. A pak jsem narazil na DDDebug - on moji myšlenku dotáhnul až tak, kam jsem si to nedokázal představit. Za pár desítek dolarů dostanete profesionální nástroj na live trasovaní alokací, včetně statistik a výpisu zásobníku pro neuvolněné objekty. Autor nabízí trial demo pro všechny možné verze Delphi.

DDDebug

Více...

Datum: 2015-01-21 23:05:00 Tagy: debugger, ladeni, super

Nástroje

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

UniGUI - Web Application Framework pro Delphi

Nestává se mi často aby mi poklesla čelist až na zem a zůstal jsem s prominutím čučet s otevřenou pusou - (naposledy když jsem pochopil jak je FireMonkey zamýšlena), ale tohle je snad i větší maso. Nikdy jsem nic podobného neviděl.

UniGUI je duální framework pro psaní normálních a webových aplikací, který jednoduše funguje. Prostě vytvoříte za pomocí komponent svoji aplikaci a pak stejná aplikace (tj. jeden exe) funguje jako webový server, který za pomocí AJAXu na bázi Ext JS vytvoří ve webovém prohlížeči prakticky stejnou aplikaci. Exe funguje jednak jako klasická aplikace, druhak jako HTTP server (díky Indy) obsluhující (nejen AJAX) požadavky.

Alternativně můžete stejnou aplikaci překompilovat jako ISAPI modul pro IIS.

Sakra kdybych si to sám nezkusil, tak tomu nebudu věřit. Mimochodem: Přidal jsem tag "super" kterým zpětně pak označím i další články, které považuji za významné.

Více...

Datum: 2012-01-04 21:40:00 Tagy: web, AJAX, unigui, super

Komponenty

Náhodné výkřiky 13

Konečně se objevují nové informace o Windows 8. Ale to dnes nebude vše.

Windows 8 Stack

Více...

Datum: 2011-09-15 21:24:00 Tagy: vykriky, Windows8, FireMonkey, FastReport, super

Novinky

Úvod do FireMonkey

FireMonkey je nová multiplatformní knihovna komponent. Zkuste ji považovat jako alternativu k VCL, přičemž VCL bude i nadále podporována a rozvíjena. VCL je ale striktně vázána na Windows, naopak FireMonkey momentálně existuje pro Windows, Mac OSX a iOS, přičemž je deklarována budoucí podpora pro Linux a Android (a další mobilní platformy).

Na rozdíl od CLX, která byla postavena na QT (která je díky situaci momentálního vlastníka Nokia na konci života), je FireMonkey nativně vytvořena v Object Pascalu a jen pro přístup k HW je používána příslušná knihovna - na Windows GDI+ nebo Direct2D, na MAC to je OpenGL, pravděpodobně pro Linux také, pro iOS je to OpenGL_ES, Android asi také. Vše je v podstatě "CustomDraw" a jen např. práce s okny, myší je přes instanci Platform předávána OS. Tzn. že cca 90% kódu je nezávislé na OS (protože je to CustomDraw a vše je kresleno HW).

Více...

Datum: 2011-09-06 22:34:00 Tagy: DelphiXE2, FireMonkey, super

Komponenty

Windows 8 app aneb headshot

A MS to udělal zase. Opět střelil do hlavy svoje vývojáře, kteří používají jeho nástroje. Jako už po několikáté se vykašle na svůj framework a nabídne nové řešení, takže si svůj kód můžete dát zarámovat.

Nově aplikace pro Windows 8 budou na bázi HTML5 a JS (preferovaně). Stávající aplikace budou označeny jako "old technology", ale budou provozu schopné. Takže ti co investují do .NET nebo Silverlight budou … a SL je tím pádem mrtvější než už byl (pěkné shrnutí). Více...

Datum: 2011-06-02 14:41:00 Tagy: delphi, windows, microsoft, super

Novinky

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ěco o řetězcích a unicode

Zkusím napsat něco typu string, unicode a příbuzných typech v návaznosti na minulý článek o TEncoding. Předem upozorňuji, že:

  • většinou (cca 99%) si člověk vystačí s typem string a zde uvedený text ho nemusí moc trápit
  • nebude to 100% výklad, ale třeba to někomu pomůže a popř. to někdo upřesní, kdybych něco popletl
  • je to trochu hutnější text, tak snad to nebude zmatené

Více...

Datum: 2011-03-30 21:17:00 Tagy: praxe, delphi, začátečníci, unicode, Object Pascal, super

Praxe

VirtualDrawTree

Už jsem několikrát naznačil, že Virtual TreeView považuji za nejlepší open source komponentu (a pravděpodobně i komponentu vůbec) pro Delphi.

Dnes jsem potřeboval udělat specifické řešení: rozklikávací položky, na které se dá kreslit, a které mají variabilní výšku. A napadlo mne použít TVirtualDrawTree. Více...

Datum: 2011-03-08 22:20:00 Tagy: komponenty, grafika, Virtual TreeView, super

Komponenty

FastMM4 a detekce přepisu paměti

Snad už naposledy malá poznámka ohledně využití FastMM4 při ladění. Tentokráte jak na detekci zápisu mimo alokovanou paměť. Více...

Datum: 2011-01-03 21:17:00 Tagy: FastMM, ladeni, super

Praxe

Několik tipů pro debugger

Laděním našinec zabije velkou část času u vývoje programu. Nebudu Vás podceňovat a ukazovat základní věci jako zadávání breakpointu, ale s debuggerem zkusíme jiné věci. Více...

Datum: 2010-09-20 21:26:00 Tagy: debugger, ladeni, super

Praxe

ActionList aneb jak si ušetřit práci

Sem tam se ke mně dostane na posouzení nějaký kód a v mnoha případech jsem překvapen, proč si autor trochu neusnadní práci. Konkrétně třeba za pomocí komponenty ActionList. Více...

Datum: 2010-06-21 20:38:00 Tagy: začátečníci, VCL, delphi, super

Začátečníci

Delphi Object Pascal pro začátečníky

Pořád cítím, že bych měl něco napsat i pro začátečníky, kde bych osvětlil některé věci ohledně Object Pascalu, když už se na jejich znalost spoléhám.

A tak jsem se podíval do svého archívu a spojil několik útržků textů, které jsem kdysi napsal z jiných důvodů a výsledek trošku upravil. Nejedná se o učebnici, ani o kompletní přehled, ale spíše takové základy a postřehy. Pro pochopení předpokládám aspoň základní znalosti Pascalu. Více...

Datum: 2010-05-17 23:15:00 Tagy: delphi, začátečníci, Object Pascal, super

Začátečníci

Synopse PDF engine

Ten člověk je bůh. Už jsem to psal minule, když jsem popisoval některé jeho komponenty - viz. Synopse a Arnaud Bouchez.

Nyní ale má velký zářez na pažbě a můj nehynoucí obdiv. Publikoval PDF engine, které nemá problém s češtinou, nepoužívá externí knihovnu a hlavně funguje. A je to open source. Více...

Datum: 2010-05-10 22:08:00 Tagy: grafika, open source, komponenty, VCL, PDF, super

Komponenty

Háček: nahrazení funkce nebo metody

Ve třetím a asi i posledním díle mini seriálu ukáži nahrazení cizí funkce, procedury nebo metody (nevirtuální). Tímto způsobem se dá opravovat cizí kód v koupených komponentách nebo třeba v samotné RTL.

Opět jsem vykradl VCLFixPack, ale ostatní to mohou dělat trochu odlišně. Příkladem odlišného řešení (a možného použití) je vyřešení problému s Data Execution Prevention (DEP) v Delphi RTL ve starších verzích Delphi (do verze D2005). Více...

Datum: 2010-04-26 23:51:00 Tagy: hacky, RTL, VCL, super

Praxe

Remote debugging v Delphi

Sem tam je vhodné provádět ladění přímo na počítači klienta, protože na vývojovém počítači nejde problém nasimulovat. Samozřejmě v takovýchto případech není vhodné (a ani často možné) instalovat Delphi na počítač klienta a proto Delphi nabízejí možnost vzdáleného ladění (Remote debugging). Jak tedy na to? Více...

Datum: 2010-02-21 22:24:00 Tagy: debugger, delphi, ladeni, nastroje, super

Praxe

Lehký úvod do Virtual TreeView - pokračování

Minule jsem nastínil základy práce s Virtual TreeView, ale uvědomil jsem si, že jsem pořádně nezdůraznil virtuální aspekt práce této komponenty. Zkusím to dnes ještě napravit. Více...

Datum: 2010-01-22 21:27:00 Tagy: komponenty, VCL, Virtual TreeView, super

Praxe

RTTI a nové RTTI v Delphi 2010

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

Datum: 2009-12-29 01:07:00 Tagy: RTL, delphi, Delphi 2010, RTTI, super

Jazyk Recenze

Mini recenze Delphi 2007 (část 2 / 2)

Jak jsem slíbil - je tu druhá část ohledně Delphi 2007 (Delphi 2009 a Delphi 2010 budou někdy následovat). Dnes tedy o RTL a VCL. Doporučuji čtení začít nejprve první částí popisující IDE, kompilátor a změny v jazyce zhruba tak od Delphi 7. Více...

Datum: 2009-12-11 00:32:00 Tagy: delphi, Delphi 2007, embarcadero, komponenty, RTL, VCL, super

Recenze

Mini recenze Delphi 2007 (část 1 / 2)

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

Datum: 2009-12-08 22:57:00 Tagy: Delphi 2007, delphi, embarcadero, optimalizace, IDE, kompilátor, super

Jazyk Recenze