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?
Minule jsem ukazoval, jak se dá poslat mail přes nainstalovaný program za pomocí MAPI (a Pepák v komentářích i přímo přes volání API MAPI), dnes ukáži vytvoření mailu za pomocí Synapse a jeho odeslání přes SMTP.
Synapse je knihovna nevizuálních komponent pro síťovou komunikaci na bázi blokujících soketů podporující kromě Delphi i Kylix a FreePascal. Kromě šikovného zapouzdření soketů obsahuje kvalitní podporu pro různé protokoly a další věci (včetně SSL). Její hlavní autor (Lukáš Gebauer) odvedl skvělou práci a osobně je jeho knihovna pro mne jedním z nejlepších open source kódů (spolu s FastMM4, VirtualTreeView atd.) a pravděpodobně i uzavřených. Více...
Datum: 2010-12-12 22:30:00 Tagy: začátečníci, utrzky, synapse
Někdy je třeba z aplikace umožnit zaslání mailu uživatelem. Nejjednodušší (ale ne vždy použitelný, protože ne každý má instalovaného klienta) způsob je přes MAPI (Mail API). Více...
Datum: 2010-12-07 21:57:00 Tagy: utrzky, začátečníci
Zkusím ukázat několik triků (možná je i znáte) jak si usnadnit život s IDE.
Nevím jak je to u Vás, ale už se mi několikrát stalo, že si nastavím breakpoint (včetně jeho parametrů) a pak si uvědomím, že bych ho chtěl někde jinde. V novějších Delphi ho prostě chytnete a přetáhnete. A pokud při tom držíte CTRL (objeví se u něho malé plus jako na obrázku) tak ho jednoduše naklonujete včetně parametrů. O přetahování aktuálně vykonávaného řádku během ladění jsem psal minule. (novější Delphi, myslím 2009+)
V minulém článku o porovnání rychlosti JSON s jinými způsoby se diskuze trošku rozjela, tak přicházím i se svým řešením pro rychlou implementaci za pomoci TDictionary, které je velmi rychlé a umožňuje použití generik.
TDictionary neumožňuje ukládání a načítání, takže jsem si musel vypomoci sám, abych dodržel podmínky z minulého článku (procedury mLoad a mSave).
Časová náročnost je velmi malá (největší čas trvá mé ne moc optimalizované načítání a ukládání), samotná práce s položkami je velmi efektivní (2000 položek, 500 aktualizací).
třída: celkova doba : doba prace bez nahravani/ukladani
HashedStringList: 5969 : 5953
TDictionary: 16 : 0
MS XML: 29922 : 29781
TIniFile: 2469 : 2469
TMemIni: 5953 : 5937
StringList: 3016 : 3016
Datum: 2010-11-08 08:48:00 Tagy:
V článku Základy JSON v Delphi kolega <z> nastínil porovnání rychlosti JSON, INI a dalších. Jelikož bylo několik dotazů pro upřesnění, zde je výsledek, který mi <z> zaslal a navíc testovací program. Je samozřejmé, že je zde prostor pro další optimalizaci, přesto to lze chápat jako ukázku a přehled možností.
Aktualizováno po druhé
Datum: 2010-11-05 22:48:00 Tagy: JSON, optimalizace
Pravděpodobně poslední pokračování mini série o temných zákoutí ladění v Delphi. Dnes to bude o modulech, data breakpointech, thread breakpointu a nějaké drobnosti. Více...
Zkoušel jsem si hrát s RTTI (Run Time Type Information) a byl jsem tak nadšen jednoduchostí použití, že výsledkem je jednoduchý program, který ve stromě zobrazuje známé typy včetně metod, property a polí. Zároveň ukazuje efektivní použití anonymních metod, generických typů a to vše na 100 řádcích včetně deklarace. Více...
Datum: 2010-10-20 22:43:00 Tagy: RTTI, generics, anonymni metody
V tomto článku popíši základy použití JSON v Delphi.
Článek mi byl zaslán a autor chce zůstat jen pod nickem <z>.
Datum: 2010-10-19 22:34:00 Tagy: JSON, komponenty
John Kaster napsat moc pěkný článek o DataSnap serveru v Delphi, nastavování IIS a ladění ISAPI (jak pro IIS 7.5, tak pro IIS 6).
Osobně se mi líbí prezentovaná idea vytvářet ISAPI rozšíření jako samostatný exe program (což Delphi XE umožňuje), který se chová jako server a pak ho jen jednoduše konvertovat do podoby ISAPI.
Více...Datum: 2010-10-09 08:24:00 Tagy: data snap, REST, ladeni, delphi XE,
Paweł Głowacki zrovna publikoval svůj článek o úvodu do JSON v Delphi, což je téma, které bude prezentovat na CodeRage 5 a zároveň uvolnil i zdrojové kódy pro svůj prohlížeč JSON.
Domovská stránka JSON, Pawel o JSON na EDN.
Více...Datum: 2010-10-04 21:27:00 Tagy: JSON
Komentáře k minulému článku mne přivádí k otázce o JSON v Delphi. Hodně o tom uvažuju a tak se ohledně JSON zeptám zkušenějších:
Jakou tedy používáte implementaci JSON v Delphi? Vím o těchto implementacích: Více...
Datum: 2010-10-03 13:18:00 Tagy: JSON
V minulém díle jsem začal ukazovat pár triků pro ladění a dnes je tu pokračování. Více...
Datum: 2010-09-29 23:28:00 Tagy: debugger, ladeni, Delphi 2010, delphi XE, Delphi 2007, Delphi 2009
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...
Osobně si myslím, že programovat se člověk naučí jen psaním programů a rýpáním se v cizích kódech (no a ještě čtením delphi.cz). Rád se dívám, jak to dělají jiní a nechávám se inspirovat. A sem tam narazím na kousek kódu, který mne zaujme. A tak ho sem hodím v novém občasníku (tag utrzky).
Velmi dobrým zdrojem je VCL a našinec tak kolikrát najde velmi zajímavé konstrukce. Jako ta dnešní, která je velmi často používaná i jinde. Více...
Datum: 2010-09-08 21:53:00 Tagy: optimalizace, utrzky
Naši malou galerii háčků (viz tag háček) rozšíříme o další položku. Tentokrát lehce zmátneme IDE a linker. Ale háček se dá použít i jinak. Představme si, že máme instalovanou komponentu a v jednom formuláři ji chceme trochu pozměnit bez toho, aby byla instalována do IDE. Prostě takový malý Cimrmanův úkrok stranou. Více...
V každém programu je chyba. A teď co s tím. Podle mne nejhloupější variantou je ukončit program, protože uživatel přijde o data. Více...
Datum: 2010-08-02 21:28:00 Tagy: open source, ladeni, nastroje
Andreas Hausladen zjistil, že pokud používáte jen novou paletu komponent můžete ještě zrychlit přepínání mezi formulářem a kódem, kdy lze pozorovat drobné "zaváhání".
Malá odbočka: nová anketa. Více...
Datum: 2010-07-14 22:24:00 Tagy: Delphi 2010, IDE, fix
Minule jsem ukázal jak se DLL dělá, na co je atd. a dnes zkusíme něco praktického. Zkusíme implementovat do naší aplikace pluginy, tj. rozšiřující moduly.
Náš program zjistí dostupné pluginy, zobrazí informace, co který plugin dělá a po výběru pluginu uživatelem v něm zavolá modální dialog. Více...
Datum: 2010-07-10 23:13:00 Tagy: DLL, FastMM, začátečníci
Už několik verzí Delphi podporuje XML dokumentaci přímo v kódu (dříve bylo vhodné pro dokumentaci použít PasDoc - což se samozřejmě nevylučuje). Více...
Datum: 2010-06-09 00:19:00 Tagy: IDE, dokumentace
Veskrze každý zná základní třídu TObject a její metody jako Free, constructor Create a destructor Destroy. Asi znáte i užitečnou class function ClassName, která vrací název třídy a sem tam šikovné metody ClassType a ClassParent, které vrací TClass, tj. referenci na třídu za běhu. Více...
Datum: 2010-05-24 22:38:00 Tagy: delphi, Delphi 2010, RTL, VCL, RTTI
Pravidelní čtenáři již vědí co je FastMM4, pro ty dva zbývající: nejlepší správce paměti, defaultní správce paměti pro Delphi 2005+, detektor chyb v uvolňování a v neposlední řadě náhrada ShareMem alias BorlndMM.dll, což je ve starších verzích Delphi originální možnost pro předávání dat do DLL - což ale předbíháme. Více...
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...
Pokračujeme druhým dílem háčků. Dnes to bude nahrazení virtuální metody třídy.
Samozřejmě je většinou jednodušší ze třídy podědit a metodu nahradit v následníku, ale někdy může být výhodné přímé nahrazení. Příkladem mohou být ladící výpisy nebo oprava (vylepšení) nějaké komponenty. Více...
Všechny v nadpisu uvedené balíčky mají jedno společné - jejich autorem (a nejen jejich) je Andreas Hausladen. Tento maník (mimochodem držitel prestižního ocenění Spirit of Delphi 2007) je prostě neuvěřitelný.
Nejenže je jeden z nejaktivnějších autorů v JCL, jeho paleta komponent (vylepšená) se dostala i do Delphi 2010 a většina kódu z DelphiSpeedUp do Delphi 2009+, ale i udržuje balíček oprav IDE (tj. IDEFixPack) a oprav některých chyb ve VCL (tj. VCLFixPack). Více...
Datum: 2010-03-25 21:03:00 Tagy: VCL, rozšíření, open source, fix, DDEV
První dva háčky co ukáži slouží k přístupu k private a protected částem cizí třídy umístěné v jiné jednotce. Druhý háček je celkem častý a proto s ním začneme. Více...
Datum: 2010-03-19 23:19:00 Tagy: hacky
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
Naprosto perfektní použití anonymních metod z Delphi 2009+
type
THelper = class
class procedure Lock(O: TObject; Proc: TProc); static;
end;
class procedure THelper.Lock(O: TObject; Proc: TProc);
begin
TMonitor.Enter(O);
try
Proc();
finally
TMonitor.Exit(O);
end;
end;
Použití je pak velmi jednoduché, uvedený kód je chráněn kritickou sekcí:
procedure TMyObject.Process;
begin
Obj.Lock(Self, procedure
begin
//kód chráněn kritickou sekcí
end);
end;
Fakt prima.
Více...Datum: 2010-01-29 23:15:00 Tagy: Delphi 2009, anonymni metody
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
Virtual Treeview jsem již uváděl v přehledu zajímavých komponent pro Delphi. Abych se přiznal, tak tuto komponentu považuji za jednu z nejlepších co pro Delphi existují a navíc se jedná o Open Source kód. Dá se použít jako pekelně rychlý strom nebo něco jako ListView nebo kombinace obojího a nebo prostě cokoli. Více...
Datum: 2010-01-20 22:07:00 Tagy: komponenty, VCL, Virtual TreeView
Jelikož je Delphi64 stále jen ve vývoji a pro shell extensions pro Windows 64 je třeba 64 bit DLL, je třeba si dočasně pomoci jinak (tedy pokud potřebujete rozšiřovat shell).
Na CodeCentral je k dispozici malý program, který po kompilaci v 64 bit. verzi FreePascalu umožňuje spustit externí program již v Delphi, tj. 32 bit. Jinak jde samozřejmě i zkompilovat v Delphi, ale výsledek bude jen pro 32bit Windows.
originální vlákno na Non-Technical
Mimochodem svoje přání ohledně vývoje delphi lze prezentovat hlasováním na delphi.uservoice.com.
Více...