Rozcestník: Jste tu poprvé?
Pro začátečníky jsem napsal úvod do programování v Delphi.
Můžete si přečíst informace ohledně změn v jednotlivých verzích Delphi a
případně mezi jednotlivými edicemi Delphi.
Pokud přecházíte ze starších verzí tak řetezce a unicode.
Možná Vás bude zajímat spolupráce databáze a Delphi,
nebo se budete rozhodovat mezi různými druhy Delphi projektů.
Navštivte adresář nejpopulárnějších open source Delphi komponent
Platform status - podporované platformy v jednotlivých verzích
Free Delphi Starter Edition download
Potřebujete Delphi školení nebo konzultace na různá témata?
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.
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.
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.
Datum: 2012-01-18 18:11:00 Tagy: praxe, začátečníci
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.
Datum: 2012-01-12 19:50:00 Tagy: začátečníci, praxe
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).
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).
Datum: 2011-12-14 20:32:00 Tagy: praxe, VCL, začátečníci
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?
Datum: 2011-12-05 21:43:00 Tagy: komponenty, praxe, synapse, SSH, SFTP
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.
Jako obvykle pár připomínek z toho co mne zaujalo (THandle, Outlook, Fossil …) plus zamyšlení a info nakonec. Více...
Datum: 2011-11-23 20:15:00 Tagy: vykriky, nastroje, embarcadero, DelphiXE2, Delphi cz
Jen pro zajímavost pro začátečníky malé zamyšlení o řetezcích, Exception.CreateFmt a podobných funkcích. Více...
Datum: 2011-11-18 22:03:00 Tagy: začátečníci, praxe, optimalizace
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.
Datum: 2011-11-15 20:19:00 Tagy: praxe
Windows Vista přinášejí podporu Glass efektu. A Delphi VCL toto podporuje od verze 2007. Více...
Datum: 2011-11-13 22:50:00 Tagy: Delphi 2007, windows, Vista, VCL
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.
Datum: 2011-11-09 19:56:00 Tagy: DelphiXE2
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).
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...
Datum: 2011-09-23 19:57:00 Tagy: class helper, kompilátor
Jaroslav Beneš zaslal trochu zkušeností ohledně upgrade projektů ze starších verzí. Kromě jiného je autorem aktuální RxLib pro Delphi XE2 nebo udržuje DelphiX atd.
Jen dobrá rada (editora): než budete sami upgradovat cizí komponenty, podívejte se zda to neudělal někdo jiný. Většina populárních komponent je nejméně v unicode verzi (ne-li rovnou v XE2) a tam skok na XE2 nebo 64bitů není tak velký jako mezi Ansi - Unicode.
Abych ještě dokončil myšlenku. Takový HTTP server v aplikaci může být zajímavá věc. Pokud znáte utorrent tak ten kromě Windows GUI obsahuje i vlastní HTTP server, který pokud se povolí, umožňuje sledovat stav stahování vzdáleně. Více...
Ladění se zde věnuji často, ale jelikož se některé otázky stále opakují, zde je seznam aplikací, které mi pomáhají a které mohou pomoci i při řešení Vašich problémů.
Možná je to tím, jaký druh programů píši, ale na mém HDD nesmí chybět následující aplikace, které používám jako pomůcky při ladění:
No a když už jsem v tom tak i následující nástroje
a další Více...
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...
Datum: 2011-05-06 22:23:00 Tagy: začátečníci, delphi, dll, RTL, super,
Jelikož mi neustále chodí maily ohledně mého staršího článku ohledně RAD PHP XE, zkusím napsat návod i když na to nejsem opravdu odborník. Více...
Datum: 2011-04-26 21:03:00 Tagy: RadPHP
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:
Datum: 2011-03-30 21:17:00 Tagy: praxe, delphi, začátečníci, unicode, Object Pascal, super
Nedávno šel v konferenci problém ohledně různého DPI (nebo velikosti písma) při navrhování programu a za běhu. Sice jsem přispěl řešením, ale jelikož se jedná o jednoduché řešení, je škoda kdyby zapadlo.
Například následující okno:
Dostávám relativně často žádost o pomoc - a hodně často i pomůžu, zvláště pokud se jedná o zajímavý problém (nebo i z jiných důvodů).
Nedávno se mi ozval člověk, který spravuje komunitní stránky kolem jednoho staršího programu napsaného v Delphi 5. Program je celkem speciální a také unikátní, takže časem se rozšířil po světě mezi uživateli v astro komunitě. Více...
Datum: 2011-02-02 21:40:00 Tagy: nastroje
Opět přicházím s malým článkem pro využití komponent Indy.
Nyní přináším drobné základy pro komunikaci pomocí protokolu HTTP a nabízím alternativu k Synapse, které ve svém článku popsal Radek - viz. komunikace přes HTTP pomocí Synapse. Více...
Datum: 2011-01-24 19:43:00 Tagy: synapse, začátečníci, Indy
Celkem častým požadavkem (a dotazem) je stažení určitého souboru z webu. Osobně to např. používám pro download novinek, které mám uložené v RSS formátu na webu a zobrazení v aplikaci. Pokud používáte knihovnu Synapse, tak to není problém (věřím, že někdo následně ukáže i možnost v Indy). Více...
Často programátoři v Delphi používají pro přístup k jednotlivým položkám datasetu vyhledávání přes FieldByName. Takový kód je celkem čitelný, ale lehce může sklouznout k velkým časovým ztrátám. Více...
Datum: 2011-01-16 20:36:00 Tagy: utrzky, začátečníci, VCL, hacky
Narazil jsem na takovou debatu o velikosti EXE u prázdné VCL aplikace. A jelikož jsem si chtěl upřesnit, jak je to s tou velikostí u jednotlivých verzí Delphi, strávil jsem cca 45 minut vytvářením prázdných aplikací a porovnáváním pomocí JCL Project Analyzeru, který je součástí instalace JCL. Více...
V jednom minulém článku popsal Radek jak odeslat e-mail za pomocí Synapse.
Já dávám přednost Indy a proto zde připojuji jednoduchý návod jak Indy využít ke stejnému účelu. Více...
Datum: 2011-01-10 20:39:00 Tagy: komponenty, open source, synapse, začátečníci
Zhruba před rokem a půl jsme řešili vzrůstající počet požadavků uživatelů na vylepšení podpory x64 platformy v naší aplikaci Spyware Terminator. Aplikace je z valné části napsána v Delphi (aktuálně 2007) a tak jsme museli řešit i konverzi systémové služby pro 64bit platformu Více...
Datum: 2011-01-05 09:00:00 Tagy: