Další malý háček

vložil Radek Červinka 19. srpna 2010 22:54

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

Tagy: ,

Praxe

Exception dialog

vložil Radek Červinka 2. srpna 2010 22:28

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

Tagy: , ,

Praxe

Zrychlení přepínaní mezi kódem a formulářem v Delphi 2010

vložil Radek Červinka 14. července 2010 23:24

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

Tagy: , ,

Praxe

DLL jako plugin

vložil Radek Červinka 11. července 2010 00:13

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

Tagy: , ,

Praxe

XML dokumentace a Help Insight

vložil Radek Červinka 9. června 2010 01:19

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

Tagy: ,

Praxe

TObject a jeho metody

vložil Radek Červinka 24. května 2010 23:38

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

Tagy: , , , ,

Praxe

DLL, Delphi a FastMM4

vložil Radek Červinka 7. května 2010 23:01

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

Tagy: , , ,

Praxe

Háček: nahrazení funkce nebo metody

vložil Radek Červinka 27. dubna 2010 00:51

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

Tagy: , ,

Praxe

O viru napadajícím instalaci Delphi

vložil Radek Červinka 20. dubna 2010 23:09

Existuje virus napadající starší instalace Delphi. Původně jsem se na to chtěl vykašlat, ale radši jen pro úplnost na to upozorním.

Na úvod: z Ruska pochází vir Virus.Win32.Induc.a, který jde na věc trošku jinak než je obvyklé.

Pokud se na počítač dostane infikovaný soubor, vir se pokusí nalézt instalaci některé starší verze Delphi (4, 5, 6 nebo 7) a pokud uspěje injektuje do SysConst.pas svůj kód a tento upravený soubor přeloží - vznikne v adresáři \Lib nový SysConst.dcu, přičemž původní je uložen pod SysConst.bak. Podle toho se dá taky napadená instalace nalézt.

Samozřejmě každý vývojový nástroj se dá takto zneužít, ale já budu mluvit o konkrétním problému - Win32.Induc.a. Více...

Tagy:

Praxe

Háček: nahrazení virtuální metody cizí třídy

vložil Radek Červinka 29. března 2010 21:37

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

Tagy: ,

Praxe

VCLFixPack, IDEFixPack a DelphiSpeedUp

vložil Radek Červinka 25. března 2010 22:03

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

Tagy: , , ,

Praxe | Rozšíření Delphi

Háček: přístup k private a protected polím cizí třídy

vložil Radek Červinka 20. března 2010 00:19

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

Tagy:

Praxe

Remote debugging v Delphi

vložil Radek Červinka 21. února 2010 23:24

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

Tagy: , , ,

Praxe

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

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

O Delphi.cz

Delphi for Win32 je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32 na současném trhu (včetně Windows 7).

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.

Burza delfínů nabízí pracovní možnosti pro programátory v Delphi.

Naše nabídka

Autor serveru delphi.cz nabízí placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj software na zakázku v naší firmě T-Develop.

Neváhejte nás kontaktovat.

Anketa