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...
6bba3f64-f9c9-40ce-95e7-f417e121b1c2|3|5.0
Tagy: hacky, VCL
Praxe
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...
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...
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...
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...
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...
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...
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...
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...
3b474efc-c7a4-4e05-9d14-e44548aad716|1|3.0
Tagy: delphi
Praxe
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...
8f9e6e00-abcb-42fe-8ded-2df0fa376423|1|5.0
Tagy: hacky, VCL
Praxe
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...
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...
cf573f5d-6d6f-43a1-86f1-ce8fc036da0a|1|5.0
Tagy: hacky
Praxe
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...
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
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...