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?
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.
Více...Datum: 2014-10-16 10:47:00 Tagy: XE5, XE6, XE7, iOS, FireMonkey, fix
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.
Datum: 2014-10-08 20:14:00 Tagy: FireMonkey, utrzky
Dnes to bude převážně o nástrojích na které jsem nedávno narazil.
Datum: 2014-10-08 18:12:00 Tagy: vykriky, nastroje, Android, ladeni
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.
Delphi je momentálně dostupné v několika edicích:
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.
Datum: 2014-10-02 22:23:00 Tagy: rozcestnik, delphi
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.
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.
Více...Datum: 2014-09-22 22:47:00 Tagy: IDE
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.
Datum: 2014-09-22 21:34:00 Tagy: XE7, FireMonkey
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).
Datum: 2014-09-19 22:09:00 Tagy: delphi, optimalizace, praxe, windows, FastMM
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)
Datum: 2014-09-18 21:59:00 Tagy: XE7, FireMonkey, mobil
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
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;
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.
Datum: 2014-09-09 23:39:00 Tagy: XE7, RTL, Threading, paralel,
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.
Datum: 2014-09-08 21:44:00 Tagy: XE7, FireMonkey
delphi-feature-matrix a docwiki.embarcadero.com/RADStudio/XE7/en/Main_Page
Na něco určitě zapomenu, ale vyzvedl bych : Více...
Datum: 2014-09-02 10:02:00 Tagy: XE7
Ještě než se budu věnovat XE7, které snad brzo dorazí, je tu další hrst odkazů a tipů.
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.
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
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
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).
Datum: 2014-07-23 23:15:00 Tagy: praxe
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.
Datum: 2014-07-21 22:32:00 Tagy: RTL, delphi, anonymni metody
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.
Datum: 2014-07-11 21:28:00 Tagy: ARC, ARM, kompilátor, praxe, super, RTL
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.
Datum: 2014-07-07 23:44:00 Tagy: vykriky, Firemonkey, Android, grafika
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čí).
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
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).
Datum: 2014-06-19 22:23:00 Tagy: AppMethod, XE6, embarcadero
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
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).
Datum: 2014-06-04 23:08:00 Tagy: praxe
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.
Datum: 2014-05-29 21:36:00 Tagy: RTL
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.
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.
Datum: 2014-05-28 21:39:00 Tagy: XE6