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
17. dubna 2012 23:35
Přišel mi mail od čtenáře Jiří Milička a zkusím ho zde publikovat - třeba to někomu pomůže.
Ve zkratce tvrdí, že přišel na dvě chyby s TStringList:
Více...
14abf7ae-9792-429e-8c1e-ede298bd17a3|2|5.0
Tagy: praxe, RTL
Praxe
vložil Radek Červinka
28. března 2012 22:40
Pokud narazíte na problém, že na Vistách se Vám bude špatně formátovat datum (03/27/2012 místo 27.3.2012) vězte, že je to problém instalace Vista a dalších verzí, kdy je oddělovač data nastaven na dvouznakovou hodnotu. Problémem jsou zasaženy asi Delphi 7 a vyšší.
Více...
vložil Radek Červinka
27. března 2012 21:31
Snažím se udělat v RTF hyperlink, který má skrytou část adresy. Prostě klasický odkaz, který něco zobrazuje ale odkazovaná část je jiná (Delphi na webu), s tím že v programu odkazovanou část si odchytím a místo toho zobrazím úplně něco jiného.
aktualizováno
Více...
vložil Radek Červinka
20. února 2012 22:16
Pokud používáte Delphi 7 - Delphi 2007 (možná i starší) tak dejte pozor na možný problém s pravým tlačítkem ALT (aka ALTGr). Problém byl vyřešen v D2009.
Více...
vložil Radek Červinka
10. února 2012 21:40
Malý trik co fungoval v Delphi 1 a funguje i dnes.
Mějme na formuláři tlačítko, vybereme ho a za pomoci CTRL + X vyjmeme do schránky. Přepneme se do editoru kódu nebo do libovolného jiného editoru a dáme vložit.
V editoru se nám objeví (trošku komplikace s nabodeníčkem)
object Button2: TButton
Left = 48
Top = 96
Width = 75
Height = 25
Caption = 'tla'#269'idlo'
TabOrder = 1
end
Více...
2b24f44e-ec8a-4570-ae4f-6c9cfacff503|3|5.0
Tagy: IDE, praxe
Praxe
vložil Igor Gottwald
2. února 2012 20:46
Dnes bych se s našimi čtenáři rád podělil o jednu nepříjemnou zkušenost z Delphi XE, související s použitím generických struktur a tříd.
Dobrá zpráva je, že v Delphi XE2 Update 3 se tato chyba již neprojevuje. Problém se týká případů, kdy nadefinujete generickou strukturu s více jak dvěma typy (TMyStruct<A,B> = record … end), velikost implementace není větší než 4 byty a voláte funkci, která má tuto strukturu vrátit jako svůj výsledek.
Více...
vložil Radek Červinka
28. ledna 2012 22:55
Pod článkem s anketou ohledně nejvyšší používané verze jsou i dva komentáře stěžující si na problémy s XE2. Leoš si stěžoval na design mód a stabilitu ohledně IBX komponent a JaroB na problémy s portací TinyDB z XE do XE2. Bohužel Leoše v tom asi musím nechat, jelikož IBX komponenty a já se nemáme rádi, ale ohledně TinyDB jsem si řekl, že bych to mohl zkusit.
Výsledkem byl zajímavý možný problém ohledně TStream.
Více...
vložil Jaro Beneš
18. ledna 2012 19:11
JaroB postnul komentář, který je zajímavý, ale nečitelný díky formátování, takže jsem z něho udělal nový článek a komentář smazal. Ne ze vším sice na 100% souhlasím, ale většinou ano a je to zajímavé a inspirující (tedy až na tu část o CnPack a eventy, Frames a použití resource string - přístup k nim je výrazně pomalý). Jen se mi zdá, že konvence <> zásada dobrého návrhu aplikace.
Více...
vložil Radek Červinka
12. ledna 2012 20:50
Je mi jasné, že s následujícím nebude hodně lidí souhlasit, ale je to jen moje zkušenost a nemusíte samozřejmě souhlasit.
Dlouhým vývojem a ve spolupráci se spolupracovníky nyní používáme určité principy při pojmenovávání všeho možného. Zkusím je nastínit a vysvětlit proč mi to vyhovuje i když se to někdy odlišuje od oficiální konvenze Delphi. Jedná se o tři oblasti: komponenty, soubory a proměnné + metody.
Více...
vložil Radek Červinka
3. ledna 2012 00:40
Sem tam potřebuji stáhnout jednoduchý soubor z webu. Většinou to dělám za pomocí Synapse a nějaké procedury z jednotky httpsend. Člověk ale musí navíc dělat opičky kolem zjišťování proxy - buďto z registru (HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings) nebo za pomocí jednotky ze synapse SynaMisc a procedury GetIEProxy.
Ale zdá se mi, že v případě autokonfigurace proxy ani jeden ze způsobů nefunguje. Existuje ještě možnost stažení souboru přes WinInet, což je součást instalace IE (resp. nyní nejen IE) a používá to část IE a tak je velká šance že to projde přes různé filtry (teda doufám).
Více...
vložil Radek Červinka
14. prosince 2011 21:32
Poněkud zavádějící nadpis, ale jedná se o případ, kdy potřebujeme mít asociaci mezi položkou menu (nebo něčím podobným) a nějakou datovou strukturou.
Poslední dobou jsem potřeboval vytvářet dynamicky položky menu a zároveň k nim mít vazbu na nějakou datovou strukturu. Za začátku jsem to řešil jako
odkaz přes Tag někam, případně v Tag jsem měl přímo objekt, ale to byl problém s uvolňováním a tak mne napadlo jiné řešení (předpokládám, že mi v komentářích
všichni napíší že je to stará známá věc - ale mne to prostě předtím nenapadlo).
Více...
vložil Radek Červinka
5. prosince 2011 22:43
SFTP není FTP přes SSH, ale jiný protokol, který FTP čím dál více nahrazuje. Jaké komponenty můžeme v Delphi použít?
Více...
vložil Radek Červinka
30. listopadu 2011 23:29
Pokud použijete VCL styly z Delphi XE2 a TRibbon control (resp. to asi souvisí s Glass window na Vista+) zjistíte několik problémů ohledně kreslení. Naštěstí existuje možnost jak upravit kreslení libovolného prvku a tak jsem tuto možnost využil a sprostě jsem kreslení obešel.
Více...