Delphi.cz

Český portál Delphi

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?

Hotfix pro XE5 - XE7 - iOS8

Embarcadero uvolnilo hotfix pro vkládání aplikací do Apple App Store. Souvisí to se změnou v iOS8, kdy takto zasaženy jsou všechny třetí strany a podle všeho navíc i uživatelé starších verzí XCode. Update (upravený linker) je pro XE5 až XE7.

cc.embarcadero.com/item/30022

Více...

Datum: 2014-10-16 10:47:00 Tagy: XE5, XE6, XE7, iOS, FireMonkey, fix

Aktualizace

Firemonkey animace 2

Když jsem v roce 2011 popisoval Animace ve FireMonkey tak už tehdy jsem tvrdil, že je tam velký potenciál. Momentálně si trošku hraji s portování jedné svoji starší hry do FireMonkey a tak jsem se díval na jiné hry psané v opičce. A našel jsem Jweled, FMX verzi Bejeweled, které napsal Joaquin Monedero z Embarcadera pro CodeRage 8.

Více...

Datum: 2014-10-08 20:14:00 Tagy: FireMonkey, utrzky

Delphi FireMonkey

Náhodné výkřiky 46

Dnes to bude převážně o nástrojích na které jsem nedávno narazil.

Více...

Datum: 2014-10-08 18:12:00 Tagy: vykriky, nastroje, Android, ladeni

Útržky - Trasování alokace a dealokace paměti

Znáte ten pocit, kdy Vás napadne podle Vás skvělá myšlenka, tu začnete implementovat a přijdete na to, že to v praxi nebude úplně přesně fungovat jak si člověk vymyslel, ale je Vám líto to vyhodit, protože jsou v tom určité myšlenky, které se někomu mohou hodit? Tak to je případ dnešního kódu.

Více...

Datum: 2014-10-05 23:18:00 Tagy: utrzky, FastMM

Praxe

Rozcestník - edice Delphi

Delphi je momentálně dostupné v několika edicích:

  • Starter
  • Profesional
  • Enterprise
  • Ultimate
  • Architect

Pro programátora je důležité vhodně zvolit edici, která mu bude stačit. Alternativně v případě vývoje jen na bázi FireMonkey (např. mobilní vývoj) zvažte AppMethod na bázi předplatného, kdy za relativně slušnou cenu máte neustále poslední verzi, což v případě mobilního vývoje je momentálně asi dost výhodné vzhledem k překotnému vývoji jak zařízení, tak i tím Firemonkey.

AppMethod je v podstatě Delphi nebo C++Builder bez VCL jen s FireMonkey + EMS aplikační platforma. EMS je sada služeb, v zásadě aplikační server, který se stará o řadu věcí: autentikace uživatelů, push notifications, šifrované úložiště dat, úložiště funkčnosti či procedur a rozhraní sdílených všemi uživateli, atd. Je k dispozici jako obecně dostupný runtime s logaritmicky klesající cenou podle počtu pořízených licencí (cena je vždy spíše předmětem dohody) a není vázán jen na Appmetod - je k dispozici i pro RAD Studio a tedy i Delphi.

Více...

Datum: 2014-10-02 22:23:00 Tagy: rozcestnik, delphi

rozcestnik

System.JSON v Delphi XE6 a XE7, pokračování

Pokud náhodou někdo hledá rozumnou dokumentaci k JSON implementaci v Delphi XE6 nebo XE7, tak spláče nad výdělkem. Nicméně knihovna doznala velkých rozšíření a rád bych jich pár představil:

Základní princip vychází z dědění vlastností od nejjednoduššího typu TJSONAncestor, který je maximálně obecný (a většina jeho metod je abstraktních), přes TJSONValue (základní jednotka, se kterou lze pracovat) dále pak konkrétní typy (TJSONNull, TJSONTrue, TJSONFalse, TJSONString a TJSONNumber) po implementaci objektů TJSONObject a polí TJSONArray.

Více...

Datum: 2014-10-01 21:22:00 Tagy: XE6, XE7, JSON

Novinky v Delphi

Castalia zdarma pro Delphi a RAD Studio XE7

Castalia zdarma pro Delphi a RAD Studio XE7. Castalia je rozšíření Delphi zaměřené na produktivitu. Osobně jsem ho nikdy nepoužíval jelikož je relativně drahé, ale nyní je dostupná free verze pro majitele XE7.

Castalia

Více...

Datum: 2014-09-22 22:47:00 Tagy: IDE

Nástroje

Report: RAD Studio XE7 Live World Tour

Městská knihovna Praha, 15. září 2014

Jako jeden z účastníků semináře bych se s vámi rád podělil o dojmy z uvedení mové verze RAD Studia. Jedná se o verzi XE s pořadovým číslem 7, která přišla, jak je v posledních letech u Embarcadera již zvykem, opět ke konci třetího čtvrtletí roku.

Přednáškou nás provázel Paweł Głowacki z evropského zastoupení společnosti Embarcadero, který je zkušeným matadorem podobných akcí a podle toho měl celý průběh velmi profesionální úroveň. Jak jeho jméno napovídá, je Paweł původem z Polska, což se odráží i na jeho angličtině, která se našim slovanským uším skvěle poslouchá, a tak byl simultánní překlad pro češtiny nutný opravdu jen pro těch málo účastníků, kteří zůstali tímto jazykem zcela nepolíbeni.

Více...

Datum: 2014-09-22 21:34:00 Tagy: XE7, FireMonkey

Akce

Zvětšení dostupné paměti 32bit programů v Delphi

Jednoho krásného dne Váš program zjistí, že trpí nedostatkem paměti. Přirozeným krokem je přechod na 64bit aplikace, ale existuje i jiná možnost. U EXE (resp. PE souboru) se dá specifikovat flag IMAGE_FILE_LARGE_ADDRESS_AWARE. Tento flag byl původně určen pro speciální mód 32bit Windows, kdy místo normálních cca 2GB paměti pro 32bit proces nabízel celých úžasných 3GB volné paměti. Praktická využitelnost tedy nic moc, protože tento mód Windows se moc nepoužíval.

Situace se obrátila s příchodem 64bit Windows (jen aby nedošlo k nedorozumnění - dávejte pozor kdy mluvím o 32bit procesu, kdy o 32bit Windows a kdy o 64bit Windows).

Více...

Datum: 2014-09-19 22:09:00 Tagy: delphi, optimalizace, praxe, windows, FastMM

Praxe

XE7 - MultiView

Kromě zásadního FireUI návrháře přináší XE7 velmi zajímavou komponentu TMultiView. Tato nenápadná komponenta umožňuje zobrazit svůj obsah různým způsobem v závislosti na možnostech zařízení. Primárně je to určeno k zobrazování typu Master - Detail.

V návrhu (se vzhledem pro Android)

Multiview

Více...

Datum: 2014-09-18 21:59:00 Tagy: XE7, FireMonkey, mobil

XE7 prezentace v Praze

Rad Studio World tour 2014

Já jsem tam nebyl, ale z důvěrných informací jsem se dozvěděl o cca 130 lidech. Své dojmy a poznatky klidně napište do komentářů, budu rád.

Nemluvilo se tam náhodou i o quality.embarcadero.com?

Více...

Datum: 2014-09-17 21:30:00 Tagy: embarcadero, XE7

Delphi

XE7 - System.Threading - Task

V pokračování minulého článku ukáži pravděpodobně nejčastější použití System.Threading - použití TTask, přidání úlohy do poolu. Příklad jsem si vypůjčil z blogu Embarcadera.

implementation
uses
  System.Threading, System.SyncObjs;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 tasks: array of ITask;
 value: Integer;
begin
 Setlength (tasks, 2);
 value := 0;

 tasks[0] := TTask.Create (procedure ()
   begin
     sleep (3000); // 3 seconds
     TInterlocked.Add (value, 3000);
   end);
 tasks[0].Start;

 tasks[1] := TTask.Create (procedure ()
   begin
     sleep (5000); // 5 seconds
     TInterlocked.Add (value, 5000);
   end);
 tasks[1].Start;

 TTask.WaitForAll(tasks);
// TTask.WaitForAny(tasks);
 ShowMessage ('All done: ' + value.ToString);
end;

Více...

Datum: 2014-09-12 22:32:00 Tagy: XE7, Threading

Novinky v Delphi

XE7 - System.Threading - Future

XE7 přichází s novou jednotkou přímo v RTL a to System.Threading, která zjednodušuje paralelní programování. Jedná se o multiplatformní věc a mezi jinými umí ThreadPool, který podle zátěže přidává nebo odebírá další vlákna.

Více...

Datum: 2014-09-09 23:39:00 Tagy: XE7, RTL, Threading, paralel,

Novinky v Delphi

XE7 - multiplatformní designer - FireUI

IDE v XE7 příchází s multiplatformním designerem (pod názvem FireUI). Cílem je mít jeden formulář s aplikační logikou, a jen přepínat uspořádání pro jednotlivé platformy, tak jak je na nich zvykem. IDE zaručuje správu resource pro jednotlivé platformy. V předchozích verzích se automaticky přizpůsoboval jen vzhled prvků, většinou nikoliv jejich uspořádání na obrazovce. Nyní tak můžete mít např. pro Android menu nahoře, ale pro iOS 7 menu dole a iOS menu vpravo (příklad!), přičemž je vše součástí jednoho formuláře a preview vzhledu jednoduše přepínáte jedním comboboxem v IDE.

V praxi se vytvoří jeden "master form" a z něj se mohou dále odvozovat ostatní platformy.

FireUI

Více...

Datum: 2014-09-08 21:44:00 Tagy: XE7, FireMonkey

Novinky v Delphi

Náhodné výkřiky 45

Ještě než se budu věnovat XE7, které snad brzo dorazí, je tu další hrst odkazů a tipů.

Více...

Datum: 2014-08-29 22:16:00 Tagy: fix, VCL, vykriky,

Akce Aktualizace Komponenty Praxe

System.JSON v Delphi XE6

Od XE6 je součástí RTL Delphi podpora pro JSON. V předchozích verzích to byla součástí DataSnap, ale od XE6 je nově součástí přímo RTL v jednotce System.JSON.

Více...

Datum: 2014-08-19 23:51:00 Tagy: RTL, JSON

Novinky v Delphi

MS uvolnil update, který zablokuje starší verze Delphi

Podle toho co jsem četl se problem týká nejméně Delphi 2007 až Delphi 2010. IDE načítá externí font, což MS zablokoval. Podle všeho se jedná o KB2982791.

Pokud dostanete "Cannot create file C:\Users\Admin\AppData\Local\Temp\EditorLineEnds.ttr", tak se jedná o tento problém.

Řešení jsou dvě: odinstalovat uvedenou opravu, nebo použít IDEFixPack, který od verze 2.7 obsahuje patch, který zakazuje načítání externích fontů - andy.jgknet.de/blog/2014/08/editorlineends-ttr-idefixpack-users-are-not-affected.

via: stackoverflow

Více...

Datum: 2014-08-15 10:30:00 Tagy: Delphi 2007, Delphi 2009, Delphi 2010, fix

Praxe

FireDAC IBLite with Delphi XE6

Jelikož je ohlášeno IBLite i pro Desktop, můžete se připravit (video ukazuje mobilní verzi). IBLite je embedded verze InterBase bez omezení (ale na rozdíl od plné InterBase také nemá silné šifrování).

Pokud nic jiného, tak si aspoň všimněte, kam se pro Deploy dávají data na iOS a kam na Android. Ušetří vám to hodně nervů.

Více...

Datum: 2014-07-30 14:02:00 Tagy: IB, FireBird

Beyond Compare Lite

Od verze XE je součástí instalace Beyond Compare Lite, najdete ho v adresáři Delphi/bin/BCompareLite.exe . Pokud ho ještě neznáte - dejte mu šanci. Plnou verzi znám jen z doslechu (slučování ze tří zdrojů, synchronizace adresářů…), ale i v lite verzi je pro mne významné plus např. to, že program umí rozeznávat důležité změny (tj. rozdíl mezi změnou v poznámce, příkazu nebo např. v řetězci).

Beyond Compare Lite

Více...

Datum: 2014-07-23 23:15:00 Tagy: praxe

Nástroje

Synchronizace TThread za pomocí anonymních metod

Před několika verzemi byla metoda TThread.Synchronize rozšířena o několik možností volání, mezi jinými i anonymní metody. Nepřikládal jsem tomu moc význam, ale poslední dobou jsem to viděl v několika projektech a nabývám dojmu, že to má větší možnosti než jsem si myslel.

Více...

Datum: 2014-07-21 22:32:00 Tagy: RTL, delphi, anonymni metody

Praxe

DisposeOf, ARC, Free, WEAK a další

Laskavý čtenář mého blogu jistě už naznal, že Delphi neznamená jen Win32 (Win64, OSX) ale i kompilátory pro iOS a Android.

Tyto kompilátory (kromě kompilace do ARM) přinášejí i podporu ARC (Automatic Reference Counting) pro objekty (podobně jako k tomu došlo před nedávnem Apple). Princip není v Delphi v podstatě nový - Delphi odjakživa používají stejný mechanismus nejméně pro řetězce a interface.

V podstatě existují dvě možnosti automatického uvolňování paměti - ARC a Garbage Collector, kdy GC je ten nedeterministický (tj. problematický viz Android a nový runtime ART to taky řeší), ale to sem asi nepatří.

Obecně ale oba modely musí řešit cyklické reference. Takže ARC je moc pěkné, ale není vše tak sluníčkové jak by mohlo vypadat. V nejhorším ale jen nedojde k uvolnění, pokud se tomu chceme vyhnout, je nutno jít trochu hlouběji. Upozorňuji, že právě následující text jde v některých detailech hlouběji než je nutné pro normálního programátora.

Více...

Datum: 2014-07-11 21:28:00 Tagy: ARC, ARM, kompilátor, praxe, super, RTL

Jazyk Novinky v Delphi

Náhodné výkřiky 44

Dnes další dávka odkazů a tipů pro všechny delfíny.

Narazil jsem na stránky delphiarea.com. Obsahují celou řádku komponent, ale mne nejvíce zaujala free komponenta SimpleGraph.

simplegraph

Více...

Datum: 2014-07-07 23:44:00 Tagy: vykriky, Firemonkey, Android, grafika

FireMonkey Komponenty Praxe

Adobe Reader update 11.0.7 způsobuje crash ActiveX v AcroPDF.dll

Gratuluji Adobe, update 11.0.7 Vás zapsalo mezi dementy. Není přece možné, aby minoritní update provedl tak zásadní změnu, tj. zavést problematickou 64bit verzi bez možnosti volby a tím odříznout všechny starší aplikace, které používají vaše ActiveX - detaily PDF applications built with VB6 don't work with Acrobat 11.0.07 (doporučuji odkaz přečíst, je to legrace, hlavně pro ty co udržují starší programy ve VB6).

V Delphi je možnost řešení zmíněna na jejich foru (odkaz zveřejnil na netu Leoš Krejčí).

Více...

Datum: 2014-06-24 22:20:00 Tagy: delphi, PDF

Praxe

Rad studio 2014 dotazník

Vyplněním www.surveymonkey.com/s/2014RADStudioSurvey máte možnost ovlivnit vývoj Delphi. Je to tak na 20 minut, týká se to mimo jiné platforem včetně Linuxu.

Více...

Datum: 2014-06-23 22:27:00 Tagy: embarcadero

Delphi

XE6 update 1, AppMethod a BOGO

Dnes vyšel Update 1 pro XE6, oficiální verze AppMethod (tj. Delphi nebo Builderu bez VCL) a EMBT nabízí BOGO nabídku (něco koupíte a jiný produkt k tomu dostanete).

Více...

Datum: 2014-06-19 22:23:00 Tagy: AppMethod, XE6, embarcadero

Neoficiální Synapse pro iOS a Android

Pokud máte rádi Synapse, a potřebujete ji i na iOS nebo Android tak Vám nabízím svoji neoficiální verzi, která na nich funguje.

Archív obsahuje FMX demo. Verze je kompatibilní s unicode verzí Delphi. Nejméně sokety a HTTP funguje. Ostatní snad také.

Pokud najdete problém tak mi napište.

Download unofficial Synapse (Android, iOS): Synapse iOS a Android (400K)

New version github.com/TetrisSQC/SynapseTCP, including Delphi Linux

Více...

Datum: 2014-06-18 21:57:00 Tagy: synapse

Delphi FireMonkey

Nahrazení frames za vložené formuláře

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

Datum: 2014-06-04 23:08:00 Tagy: praxe

Začátečníci

DateUtils.TTimeZone

V XE byla výrazně rozšířena jednotka DateUtils přidáním podpory pro TTimeZone, doporučuji Vaší pozornosti, zvláště instanci TTimeZone.Local. Pokud potřebujete pracovat s časovými zónami tak tato třída Vám velmi ulehčí práci.

Více...

Datum: 2014-05-29 21:36:00 Tagy: RTL

Novinky

Dozvuky semináře z Brna

Jak bylo už předtím oznámeno: 27.5.2014 proběhla v Brně prezentace XE6.

Celkem se dostavilo 135 (ze 160 přihlášek) zájemců, což není špatné. Pawel byl opět velmi dobrý, osobně mne potěšilo, že o většině témat si zde laskavý čtenář už mohl něco přečíst (vyjma BaaS a Datasnap) včetně Box2D.

Brno

V závěrečné části padla otázka ohledně podpory Windows Phone, následována anketou o počtu uživatelů mobilních OS (Android x iOS x WP) mezi účastníky. Většina lidí měla Android, několik iOS a myslím 4 lidé WP, což potvrzuje i slova Pawla že není komerční zájem pro WP. Pro úplnost: iOS je mnohem více populární v USA.

Více...

Datum: 2014-05-28 21:39:00 Tagy: XE6

Akce