vložil Radek Červinka
5. června 2014 00:08
Tento trik určitě většina programátorů zná, ale třeba to někomu pomůže a mimochodem to ukazuje genialitu návrhu Delphi.
Jistě je Vám známo co jsou to frames - jedná se o pseudo okna, která můžete v IDE designovat a pak je používat v jiných formulářích. Je to celkem slušné řešení,
ale není to úplně ono. Má to jisté omezení, sem tam IDE nefunguje 100% podle toho co si představuji atd. Postupně jsem přešel na méně RAD přístup, a to "injektování" formuláře do jiného controlu na jiném formuláři (já tomu říkám osobně dokování, ale dokování je v Delphi něco jiného).
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. prosince 2012 00:43
V současné době je ovládání programu čistě za pomoci klávesnice podceňované. Ale věřte, že existují uživatelé, kteří na tu krysu nebo touchpad (trackpoint) nešáhnou, jak je den dlouhý. Proto není vhodné podceňovat takové aspekty návrhu UI jako je i TabOrder.
Při zobrazení formuláře je vybrán (focus) prvek, který je povolený a má nejmenší TabOrder a povolený TabStop. Programově se dá focus změnit za pomoci volání metody SetFocus, kterou mají následníci TWinControl (což je předchůdce většiny vizuálních komponent).
Více...
vložil Radek Červinka
4. května 2012 00:07
Pokud potřebujeme zapisovat někam data, nebo jen předávat data do jiné části programu, je výhodné používat některý z následníků TStream. Převážná část knihovny Delphi nebo knihoven třetích stran podporuje práci se streamy. Často ale také potřebujeme jen v paměti vytvořit datový proud a ten později zpracovat.
Základní třídou je TMemoryStream. V podstatě představuje data uložená v paměti - jakoby soubor v paměti. Pro operace s ním jsou určité metody, ale přece jen by to chtělo něco čistějšího, zejména pokud pracujeme s textovými daty. Řešením je použití např. TStringWriter, TStreamWriter resp. přímo TStringStream (nebo TStringBuilder) atd.
Pro neunicode Delphi je TStringStream implementován v podstatě jen jako string, což mi přišlo pěkné. V Unicode Delphi se jedná o následníka TBytesStream (resp. TMemoryStream).
Více...
vložil Radek Červinka
19. dubna 2012 18:40
Je třeba to zveřejnit jako odstrašující případ (kód je trochu upraven)
const
ciTabBarInterval = 0;
ciTabBarDay = 1;
ciTabBarWeek = 2;
var
bIsInterval: Boolean;
…
bIsInterval:= not TabBar.SelectedTab.Index in [ciTabBarDay, ciTabBarWeek];
Problém byl, když byl TabBar.SelectedTab.Index = 0. Takto samostatně je to evidentní že?
Více...
vložil Radek Červinka
10. února 2012 00:46
Měl jsem v šuplíku několik krátkých textů (částečně to bylo pro cvičení z OOP) a přišlo mi škoda je tam nechat. Třeba to některého začátečníka něčemu naučí. Vhodně to doplňuje můj dřívější delší článek Object Pascal pro začátečníky, který je určen pro "znalejší" začátečníky.
Více...
vložil Radek Červinka
30. června 2011 22:52
Opět něco co mne cestou praštilo do nosu. Dnes to bude případ "Test na prázdný řetězec", jeden zajímavý inzerát a help update pro XE.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
6. května 2011 23:23
Delphi od nějaké verze 3 podporují balíčky (packages). Jedná se o speciální DLL, které podporují speciální vlastnosti Delphi a jejich RTL (tj. zachování objektového modelu, sdílení správce paměti, bezproblémové operace s řetězci a dynamickými poli atd.). Použití balíčků umožňuje velkou modularitu.
Více...
vložil Radek Červinka
21. června 2010 21:38
Sem tam se ke mně dostane na posouzení nějaký kód a v mnoha případech jsem překvapen, proč si autor trochu neusnadní práci. Konkrétně třeba za pomocí komponenty ActionList.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...