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
4. února 2010 00:32
Předpokládám, že je to všeobecně známo jelikož se to píše všude, ale přesto. V unicode verzích Delphi (tj. 2009 a 2010) je pro lepší kompatibilitu s C++ Builderem implementována možnost lepší detekce správnosti hodnoty typu string. Rovnou říkám, že se jednalo o přechodné období, protože v budoucích Delphi to již nebude, jak napsal Allen Bauer na svém blogu.
Připomínám, že přechod na unicode je největší skok v historii Delphi, podobné je snad jen Delphi 1 (16 bit) -> Delphi 2 (32 bit).
Ale zpět. Tuto kontrolu klidně můžete vypnout (což už určitě máte) v případě, že používáte jen Delphi a tímto krokem získáte určité malé zrychlení.Více...
vložil Radek Červinka
2. února 2010 22:39
Jednou z novinek v Delphi 2010 je i formátovač zdrojového kódu pro Object Pascal. Jelikož mne moc nenapadá co bych k tomu napsal, tedy kromě toho, že se vyvolává z kontextového menu položkou Format Source nebo teplou klapkou (:-)) CTRL+D, tak jsem se rozhodl pro malý testík.
Předhodil jsem mu kus prasácky formátovaného kódu a byl zvědav na výsledek.Více...
vložil Radek Červinka
30. ledna 2010 00:15
Naprosto perfektní použití anonymních metod z Delphi 2009+
1type
2 THelper = class
3 class procedure Lock(O: TObject; Proc: TProc); static;
4 end;
5
6class procedure THelper.Lock(O: TObject; Proc: TProc);
7begin
8 TMonitor.Enter(O);
9 try
10 Proc();
11 finally
12 TMonitor.Exit(O);
13 end;
14end;
Použití je pak velmi jednoduché, uvedený kód je chráněn kritickou sekcí:
1procedure TMyObject.Process;
2begin
3 Obj.Lock(Self, procedure
4 begin
5
6 end);
7end;
Fakt prima.
původní článek
vložil Radek Červinka
29. ledna 2010 23:27
Nejen prací, živ je člověk (mimochodem takové články budou mít tag fun, tj. programování pro zábavu). Přiznám se, že mám strašně rád Nintendo Wii, takže proč to nespojit s Delphi? Pokud to nevíte, tak kromě her je Nintendo Wii unikátní bezdrátovým ovladačem se senzorem pohybu a integrovanou infra kamerou použitelnou jako pointing device (resp. nejen jako).
Pro neznalé - Wii remote (zkráceně wiimote) je bluetooth zařízení s překvapivě mnoha možnostmi (můj detailní popis Wiimote jinde), samotný ovladač stojí cca 1000Kč.Více...
vložil Radek Červinka
27. ledna 2010 23:41
Všichni známe a používáme VCL knihovnu. Ale kromě VCL existuje i alternativní a neoficiální knihovna komponent - KOL. Její hlavní výhodou je, že výsledné programy jsou opravdu prťavé - cca od 10KB a tudíž pokud Vám opravdu hodně záleží na výsledné velikosti třeba binárky pro službu, máte možnost ji vyzkoušet. Je to v podstatě v základu jen opravdu zapouzdření Win32 API bez různých vychytávek z VCL, ale pro určitou speciální oblast programů to může někomu stačit.
Na domovské stránce KOL je k dispozici spousta příkladů, takže nemá moc cenu zde nějaký prezentovat. Navíc je dostupná celkem obrovská dávka kódu, v hodně případech použitelného i pro VCL, které základní funkčnost rozšiřují např. o kompresi, šifrování, přístup k SQLLite nebo další tuny možností, včetně takových věcí jako je objekt umožňující kompilace assembleru do paměti a následného spuštění.
Podporovány jsou Delphi 2 - 2009, FreePascal compiler, Kylix.
vložil Radek Červinka
26. ledna 2010 23:15
Jen krátce: Vzniká nový opensource projekt - Delphi Spring Framework, který nabízí programátorům (hlavně) v Delphi 2010 podporu při jejich programování tím, že vytváří knihovnu často používaných funkcí, které nejsou ve VCL - tj. podobně jako JCL ale - tak jak to umožňují novější Delphi, v některých případech jen Delphi 2010, tj. např. za pomocí class a record helperů, anonymních metod, generik a hlavně za použití nového RTTI.
Nabízí mimo jiné podporu cryptování (DES, Triple-DES) včetně hash algoritmů (MD5, SHA-1/256/384/512), kontrolních součtů, návrhových vzorů, Live templates (Delphi 2006+) včetně použití RTTI pro reflection.
Předpokládám, že většina programátorů již potřebné rutiny má - třeba pro šifrování DCPCrypt, ale zde je to pěkně všechno uspořádané a autoři se prý drží pravidla KISS (Keep It Simple and Stupid).
Když už nic, tak je to skvělý studijní materiál, třeba Spring.Helpers.pas je pěkné použití class a record helper (něco o class helper jsem již také napsal).
vložil Radek Červinka
22. ledna 2010 22:27
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...
vložil Radek Červinka
21. ledna 2010 23:36
Mnoho lidí je konzervativních (v určitých oblastech třeba i já) a prostě nemůžou přenést přes srdce změnu IDE nových Delphi proti Delphi 7 a to zvláště ve dvou oblastech:
- nahrazení palety komponent za seznam (na to jsem si zvykl celkem rychle, zvláště díky rychlému hledání)
- "undocked" okna (to v případě více monitorů může být trochu problém)Více...
vložil Radek Červinka
20. ledna 2010 23:07
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...
vložil Radek Červinka
18. ledna 2010 21:35
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.
vložil Radek Červinka
13. ledna 2010 21:59
Titulek je lehce zavádějící, jelikož Delphi má OOP přístup k souborům odjakživa, ale nyní se jedná ještě o jiný přístup. Raději to ukáži na příkladu.
V jednotce jsou definovány tyto třídy (resp. jsou to spíše nové recordy - jak již víme tak Delphi od D2007 - nebo tak nějak - umožňují definovat u záznamů metody):
Tento objektový přístup je podobný jako v .NET.Více...
vložil Radek Červinka
11. ledna 2010 22:11
Jelikož se mi stále nechce napsat o problémech s migrací na unicode (je to na dost velký článek), tak aspoň nabídnu další možnost:
na blogu caryjensen.blogspot.com je dostupný volně ke stažení mnoha informacemi plný PDF o Delphi a unicode.
Mimochodem již dříve jsem upozornil na Delphi 2009 handbook, no a snad se k tomu někdy prokoušu i já.
vložil Radek Červinka
9. ledna 2010 23:49
Delphi umožňuje různé možnosti pro přístup k souborům (TFileStream, BlockRead, Read atd), ale ještě je možné použít vysoce efektivní přístup přes soubory mapované do paměti (Memory mapped files) za pomoci Windows.Více...
vložil Radek Červinka
8. ledna 2010 23:58
update: Již i verze pro Delphi 2007
Na webu se objevila neoficiální optimalizovaná verze RTL knihovny z Delphi 7, resp. z licenčních důvodů jen její diff. Autoři tvrdí, že ji používají v kritických projektech a podle popisu a používaných knihoven to vypadá zajímavě. Na zmiňované stránce je přehled změn.
Součástí je např. FastMM, některé části FastCode, části RTL optimalizované a opravené některé chyby ve Windows Vista, takže pokud používáte Delphi 7 tak to asi stojí aspoň za pohled.