vložil Radek Červinka
27. srpna 2016 00:23
Při jedné konzultaci jsem našel zajímavou chybu v jedné části zákazníkova programu. Myslím, že je to pěkný příklad.
//LEAK !
var
ads: TADOQuery;
begin
ads := TADOQuery.Create(nil);
ads.Connection := ADOConnection1;
with ads, SQL do
begin
try
Text := 'SELECT * FROM tCRM_Currency';
Open;
try
while not Eof do
begin
//………..
Next;
end;
finally
Close;
end;
finally
Free;
end;
end;
end;
Zkuste ji první najít samostatně.
Více...
vložil Radek Červinka
5. května 2016 23:44
Pokud jste šťastným uživatelem FastReportu, možná ani nevíte, že FastReport obsahuje i FastScript a že se dá použít nezávisle bez generování reportů. Co je to FastScript? Je to knihovna pro provádění skriptů v různých jazycích (Pascal, JS, C++, VB). Skripty mohou být celé programy, ale i obyčejný výraz. FastScript vám dává do ruky opravdu mocný nástroj.
Více...
vložil Radek Červinka
10. srpna 2013 09:37
Přiznám se, že následující část možnosti property mi nebyla známou a nejsem si jist zda to není nějaká novinka. Jde o to, že kromě property typu pole, což je snad všeobecně známo a používáno, lze dodefinovat další property, které index do pole mají jako konstantu a jsou tak něco jako zkratka pro určité prvky pole. Z příkladu to bude jasnější:
Více...
vložil Radek Červinka
13. května 2011 21:39
I pokud je člověk začátečníkem, v Delphi narazí na objekty a třídy v podstatě hned - např. i formulář je objekt.
Jen pro úplnost: objekt je instancí třídy, ale to modří již vědí. Vytvoření objektu je provedeno voláním konstruktoru patřičné třídy. Následně objekt existuje v paměti dokud programátor neuzná za vhodné ho uvolnit (zjednodušeně).
Více...
vložil Radek Červinka
30. března 2011 22:17
Zkusím napsat něco typu string, unicode a příbuzných typech v návaznosti na minulý článek o TEncoding. Předem upozorňuji, že:
- většinou (cca 99%) si člověk vystačí s typem string a zde uvedený text ho nemusí moc trápit
- nebude to 100% výklad, ale třeba to někomu pomůže a popř. to někdo upřesní, kdybych něco popletl
- je to trochu hutnější text, tak snad to nebude zmatené
Více...
vložil Radek Červinka
1. prosince 2010 22:42
Asi jsem to minule špatně vysvětlil.
Implementace FormatSettings je provedena tak, že se jedná o záznam, který je pomocí direktivy absolute směrován na starší položky. Tj. např. FormatSettings.DecimalSeparator leží ve skutečnosti na stejné adrese jako DecimalSeparator, tj. při zápisu nebo čtení z obou proměnných se pracuje s jedním a tím konkrétním místem, jen s tím, že při použití DecimalSeparator je při kompilaci vypsán warning.Více...
vložil Radek Červinka
28. června 2010 21:25
Možná tyto dvě direktivy neznáte - obě dvě jsou totiž relativně nové. Direktiva deprecated byla přidána v Delphi 2009, Direktiva delayed v Delphi 2010.Více...
vložil Radek Červinka
27. května 2010 23:01
Předchůdcem anonymních metod z Delphi 2009 jsou vložené (nested) procedury. To ale neznamená, že by éra vložených procedur skončila. Osobně je rád používám na zpřehlednění kódu v případě trošku delší procedury nebo na lokální provedení opakované akce. Hlavní výhodou je možnost přístupu k lokálním proměnným dané procedury.Více...
vložil Radek Červinka
18. května 2010 00:15
Pořád cítím, že bych měl něco napsat i pro začátečníky, kde bych osvětlil některé věci ohledně Object Pascalu, když už se na jejich znalost spoléhám.
A tak jsem se podíval do svého archívu a spojil několik útržků textů, které jsem kdysi napsal z jiných důvodů a výsledek trošku upravil. Nejedná se o učebnici, ani o kompletní přehled, ale spíše takové základy a postřehy. Pro pochopení předpokládám aspoň základní znalosti Pascalu. Více...