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 si všimněte mého pojednání ř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ů.
Uvažujete o vývoji pro mobilní zařízení? V tom případě navštivte sekci FireMonkey.

Pokud Vám nestačí náš přehled komponent, 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?


Příkaz with

vložil Radek Červinka 1. května 2013 01:56

S příchodem Delphi XE4 je with pro nové kompilátory (neoficiálně) deprecated. Zajímal by mne Váš názor v anketě (jako vždy vpravo nebo přes hlasov.at/l4ch.

Původně IMHO byl with koncipován jako hint kompilátoru, že by bylo vhodné být trošku efektivnější ohledně použití nějakého záznamu (později objektu). S tím, jak se jazyk rozšiřoval, začínalo docházet k riskantním situacím, viz. dále.

Více...

Tagy: ,

Jazyk

String a stream

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

Tagy:

Praxe | Začátečníci

Chyba pro dnešní den

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

Tagy: , ,

Praxe | Začátečníci

9x Delphi lekce v PDF pro začátečníky

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

Tagy: , ,

Začátečníci

Re: O konvencích - JaroB

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

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

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

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

Unit testing

vložil Radek Červinka 26. července 2011 23:09

Jedna z důležitých věcí je testování. Nevím jak vy, ale já nesnáším opakované testy. Tj. člověk udělá nějaké změny a následně by měl přetestovat úplně všechno. Ale všichni známe jak to dopadne …

A proto je vhodné použít unit testing, tj. nástroj, který za nás bude opakovaně provádět testy, které mu předepíšeme. Pro Delphi se jedná o DUnit, který je navíc součástí vyšších verzí Delphi (tj. od D2007 nebo možná i starších).Více...

Tagy: , , , , ,

Návody

Inno Setup

vložil Radek Červinka 1. července 2011 22:00

Miluji programy, které nemusím instalovat (a které mohu kdykoliv smazat).

Delphi je pro takové programy ideální, protože programy v něm napsané v podstatě nemusí mít žádné závislosti. Ale jsou situace, zvláště při komplikovanějších programech, kdy je pro korektní funkci vhodné provést instalaci např. protože potřebujete pro zápis někam administrátorské práva. Více...

Tagy: , ,

Nástroje

Lehce o balíčcích

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

Tagy: , , , ,

Návody | Praxe | Začátečníci

Něco o exceptions

vložil Radek Červinka 10. dubna 2011 23:49

Koncept výjimek v Delphi je dobře vymyšlen a dokonce jsem kdesi četl, že je částečně patentován, jelikož v době Delphi 1 byl naprosto převratný způsobem zpracování za běhu (nějak to souviselo s efektivním odvíjením zásobníku při výjimce, detaily si nepamatuji a snad se nepletu).

Mimochodem Windows podporují výjimky až od 32bit verzí, tj. Delphi 1, které bylo 16bit mělo výjimky vlastní a až Delphi 2 mapují část výjimek na výjimky Windows.

Od Delphi 1 je základem třída Exception, která byla v Delphi 2009 trochu rozšířena - přece jen je to už pár let. Více...

Tagy: , , ,

Novinky v Delphi

Něco o řetězcích a unicode

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

Tagy: , , , , ,

Praxe

Kódujeme, kódujete - TEncoding

vložil Radek Červinka 25. března 2011 00:09

Do doby než nás spasilo unicode kodování snad každý programátor potřeboval převádět mezi různými codepage. No ono je to někdy třeba i dnes. Většinou se u nás používala Synapse, ale s příchodem Delphi 2010 byla (konečně) RTL Delphi výrazně (a to dost šikovně) rozšířena o podporu převodu mezi různými kódováními.

Více...

Tagy: , , ,

Novinky v Delphi

TValueListEditor a TButtonedEdit

vložil Radek Červinka 16. března 2011 00:16

Součástí novějších Delphi jsou i dvě méně známé, ale zajímavé komponenty: TValueListEditor a TButtonedEdit. První slouží k zadávání nebo editaci dvojice klíč a hodnota, druhá komponenta je TEdit s volitelnou možností až dvou tlačítek (vpravo a vlevo).

TValueListEditor

Více...

Tagy: , ,

Komponenty

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

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

Neváhejte nás kontaktovat (i ohledně reklamy).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

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.

Poslední komentáře

Comment RSS

Dle měsíců