Delphi 2010 - Class (aneb Static nebo Shared) constructory (a destructory)

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

Tagy: ,

Jazyk

STRINGCHECKS problem a unicode Delphi

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

Tagy: ,

Optimalizace

Delphi 2010 - formátovač kódu

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

Tagy: ,

Recenze | Rozšíření Delphi

Použití anonymních metod v Delphi

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      //kód chráněn kritickou sekcí
    6    end);
    7end;

Fakt prima.

původní článek

Tagy: ,

Praxe

Wii Remote a Delphi

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

Tagy: ,

Komponenty

KOL - Key Objects Library

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.

Tagy: ,

Komponenty

Delphi Spring Framework

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

Tagy:

Komponenty

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

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

Tagy: , ,

Praxe

Jak nastavit layout Delphi 7 v Delphi 2010

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

Tagy: , ,

Návody

Lehký úvod do Virtual TreeView

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

Tagy: , ,

Praxe

Dočasné řešení pro shell extensions v Delphi a Windows 64

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.

Tagy: ,

Praxe

OOP přístup k souborům v Delphi 2010

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):

  • TDirectory
  • TPath
  • TFile

Tento objektový přístup je podobný jako v .NET.Více...

Tagy: ,

Recenze

Migrace existujících Delphi aplikací na Unicode - PDF

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

Tagy: ,

Knihy

Memory mapped soubory v Delphi

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

Tagy: ,

Návody

Optimalizovaná RTL pro Delphi 7

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.

Tagy: , ,

Optimalizace

O Delphi.cz

Delphi for Win32 je jediný moderní nástroj podporující tvorbu nativních aplikací pro platformu Win32 na současném trhu.

V současnosti je světová komunita odhadována na 3 milióny vývojářů.

Delphi.cz je nezávislý komunitní portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat vývoj.