Delphi XE a problém s generiky

vložil igor 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...

Tagy: ,

Praxe

Případ TinyDB a XE2

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

Tagy: , ,

Praxe

Re: O konvencích - JaroB

vložil jarob 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...

Tagy: ,

Praxe

O konvencích

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

Tagy: ,

Praxe

Stažení souboru za pomocí WinInet

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

Tagy: , ,

Praxe

TMenuItem a reference na objekty

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

Tagy: , ,

Praxe

Delphi a SFTP

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

Tagy: , , ,

Komponenty | Praxe

Ribbon control a styly

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

Tagy: , ,

Praxe

Náhodné výkřiky 17

vložil Radek Červinka 23. listopadu 2011 21:15

Jako obvykle pár připomínek z toho co mne zaujalo (THandle, Outlook, Fossil …) plus zamyšlení a info nakonec. Více...

Tagy: , , , ,

Praxe

Něco ohledně uvolňování řetezců

vložil Radek Červinka 18. listopadu 2011 23:03

Jen pro zajímavost pro začátečníky malé zamyšlení o řetezcích, Exception.CreateFmt a podobných funkcích. Více...

Tagy: , ,

Praxe

Spolupráce kódu Delphi a Java

vložil Karel 15. listopadu 2011 21:19

Použití Java Native Interface v Delphi

Při řešení jednoho projektu jsem byl postaven před úkol jak připojit k již existujícímu projektu napsanému v Javě další funkčnost a uživatelská rozhraní napsaná mými kolegy delphisty. Nativní kód byl vytvořen v Delphi 2007.

Tvůrci Javy, vědomi si toho, že v některých případech je použití nativního kódu nezbytné, vybavili Javu rozhraním pro spolupráci s nativními jazyky (měli tedy na mysli především C/C++) - rozhraním JNI (Java Native Interface). Toto řešení také otevřelo možnost v nových Java projektech využít i již existující a odladěný nativní kód.

Více...

Tagy:

Praxe

TGlassFrame pro Windows Vista

vložil Radek Červinka 13. listopadu 2011 23:50

Windows Vista přinášejí podporu Glass efektu. A Delphi VCL toto podporuje od verze 2007. Více...

Tagy: , , ,

Praxe

Delphi XE2 a problém s ModalResult v DFM

vložil Radek Červinka 9. listopadu 2011 20:56

Byla objevena celkem nešťastná chyba ve VCL v XE2, ale která zasáhne mizivé procento uživatelů. Jedná se o to, že během integrace FireMonkey do Delphi došlo chybou k přečíslování 4 konstant pro ModalResult. A jelikož tyto konstanty jsou ukládány v DFM jako čísla a ne názvy, dojde při otevření staršího projektu, který tyto konstanty používají, v Delphi XE2 ke změně jejich významu a vice versa.

Více...

Tagy:

Praxe

Chyba MDI v XE a XE2

vložil igor 18. října 2011 22:51

Igor Gottwald mi poslal popis řešení problému ohledně chyby knihovny Dialogs/Vcl.Dialogs při používání MDI.

Jedná se o problém, kdy vývojář do okna MDIChild umístí více editačních prvků a v některém z nich, při jeho opuštění (OnExit) zobrazí uživateli standardní hlášení (ShowMessage, MessageDlg nebo TaskMessageDlg).

Více...

Tagy: , ,

Praxe

Record helper

vložil jarob 23. září 2011 20:57

Class helper je známá věc, ale co třeba takový Record helper?

Poprvé se to objevilo jako mizerně dokumentovaná věc v BDS 2006 v Delphi for .NET. A teprve následně se to propagovalo do verze Win32. Tady měl Borland zpoždění - .NET verze byla vždycky o krok napřed. Více...

Tagy: ,

Praxe

Naše nabídka

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32 a Win64 (a Mac OSX, s výhledem na iPhone a Android díky FireMonkey) na současném trhu (včetně Windows 7).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý 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 novinky.

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

Anketa

Poslední komentáře

Comment RSS