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

Free Delphi Starter Edition download

Potřebujete Delphi školení na různá témata?


Delphi 10.2 Tokyo je dostupné

vložil Radek Červinka 23. března 2017 00:20

Embarcadero dnes (22.3.2017) vydalo další verzi Delphi a C++Builder s podtitulem Tokyo. Hlavní nosnou myšlenkou je přidání kompilace pro Linux 64 bit, bohužel jen pro Enterprise+ edice (nebudu se k tomu dále vyjadřovat).

Co je nového: What's_New, dále Feature matrix, seznam opravených chyb (některé velmi prehistorické).

Download: webinstaller, ISO, FastReport VCL.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: ,

Novinky | Praxe

Programovanie poslepu – dá sa to?

vložil Radek Červinka 6. února 2017 20:58

Narodil som sa v čase, keď počítače neboli bežnou súčasťou domácnosti a hoci na strednej škole sme už informatiku mali, veľmi mi to nepomohlo. V 11-tich rokoch som totiž prišiel o zrak a tak bolo nemysliteľné, aby som si sadol za počítač a niečo na ňom urobil. Až v druhej polovici 90-tych rokov sa začalo hovoriť o tom, že aj nevidiaci budú môcť používať počítač a to vďaka špeciálnym programom – čítačom obrazovky – screenreaderom – ktoré budú zabezpečovať komunikáciu počítača s nevidiacim. To som bol už na vysokej škole a ako technický typ som po tejto novinke hneď siahol a stal sa aktívnym užívateľom Windows. Čoskoro sa ale ukázalo, že nie všetko je tak, ako sa zdá.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy:

Praxe

TBCD v Delphi

vložil Radek Červinka 31. ledna 2017 00:03

Podle mne ne moc známá věc je implementace BCD v Delphi. BCD je způsob uložení čísel s fixní přesností. BCD je v Delphi reprezentován záznamem TBCD definovaným v jednotce Data.FmtBCD, případně FMTBcd (ve starších verzích, nejméně D2007).

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy:

Praxe

Delphi a Windows Desktop App Converter

vložil Radek Červinka 21. prosince 2016 00:38

Integrace podpory Windows Desktop Bridge

Název Desktop Bridge je poměrně nový, dřív nesl tento projekt název Centennial. Jde o jeden z projektů MS, které měly přivést pod křídla UWP (Universal Windows Platform) aplikace z jiných ekosystémů. Původně existovaly tři zásadní projekty pro převod z Win32, Android a iOS ale v průběhu času byl projekt pro převod Android aplikací ukončen. Aktuálně jsou tedy k dispozici dva hlavní (dle mého soudu) nástroje pro převod aplikací z iOS (iOS Bridge) a Windows (Desktop Bridge). Doplňují je nástroje pro převod mobilních aplikací v Silverlight z Windows Mobile 8.1 (Mobilize.Net’s Silverlight Bridge) a pro převod webových aplikací (Hosted Web Apps). Pokud vás zajímají podrobnosti nahlédněte přímo na stránky MS: developer.microsoft.com/en-us/windows/bridges.

Nás pochopitelně zásadně zajímá Desktop Bridge a protože byl uvolněn pro veřejnost v rámci Windows 10 Anniversary Update v srpnu letošního roku, můžeme ho začít využívat hned teď.

Existují dvě možnosti, jak z klasické Win32 aplikace vyrobit APPX balíček:

  • Automatická konverze z instalačního balíčku (EXE nebo MSI)
  • Ruční konverze EXE souboru aplikace.

V prvním případě jde o nástroj DesktopAppConverter.exe. Používá se v případě, že máme k dispozici instalátor aplikace (EXE nebo MSI) a v podstatě nejprve vytvoří virtuální instanci Windows 10, ve kterých pak následně spustí instalátor. Průběh instalace a její výsledek zaznamená a vytvoří APPX, který obsahuje obraz výsledku instalace. Po nainstalování vytvořeného APPX má zapouzdřený EXE k dispozici vlastní kopii registrů a souborů vytvořených či změněných v rámci sledované instalace při konverzi. Vše je oddělené od okolí sandboxem, ve kterém pak výsledná aplikace běží.

Jestliže již používáte nějaký nástroj typu InstallAware nebo InstallShield pro vytvoření instalačního balíčku, můžete tento způsob zkusit, pokud poběží vše bez problémů je nejjednodušší a nejméně pracná cesta.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy:

Novinky v Delphi | Praxe

DLL a WideString

vložil Radek Červinka 26. listopadu 2016 23:37

Myslím, že normální programátor používající DLL v Delphi obecně chápe, že předávat string jako parametr do DLL není možné bez použití berličky typu SimpleShareMem, která propojí memory manager v hlavní aplikaci s memory managerem v DLL. Což ovšem znemožňuje použití DLL z jiných jazyků a proto se musíme snížit na úroveň předávání přes PChar nebo PWideChar.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: , ,

Delphi | Praxe

Registration-free COM se souborem manifestu a Delphi

vložil Radek Červinka 18. října 2016 21:58

Nemám moc rád technologii COM, hlavně protože jinak k prakticky samostatnému EXE vygenerovaného Delphi (případně s dalšími DLL v adresáři programu) zavádí závislosti na něčem, co musí být registrované v systému, což je z mého pohledu zásadní problém a moc se to neslučuje s mojí filozofií programů.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy:

Praxe

Chyba dne

vložil Radek Červinka 27. srpna 2016 00:23

Při jedné konzultaci jsem našel zajímavou chybu v jedné části zákazníkova programu. Myslím, že je to pěkný příklad.

//LEAK !
var
  ads: TADOQuery;
begin
  ads := TADOQuery.Create(nil);
  ads.Connection := ADOConnection1;
  with ads, SQL do
  begin
    try
      Text := 'SELECT * FROM tCRM_Currency';
      Open;
      try
        while not Eof do
        begin
          //………..
          Next;
        end;
      finally
        Close;
      end;
    finally
      Free;
    end;
  end;
end;

Zkuste ji první najít samostatně. Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy:

Praxe

Delphi a EET

vložil Radek Červinka 16. srpna 2016 16:03

Jelikož to ministerstvo financí opravdu myslí vážně s EET (Elektronickou evidencí tržeb), vystává nutnost se tomu začít pomalu věnovat.

Pokud tedy hledáte pomoc, nebo naopak máte zkušenost, zkuste se podívat na naše fórum, kde se to již nějakou dobu řeší, a pokud můžete tak přispějte svojí troškou do mlýna.

Vlákno na fóru EET a Delphi.


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy:

Praxe

FastMM, UseReleaseStack a další

vložil Radek Červinka 29. května 2016 03:39

Před nedávnem Primoz Gabrijelcic přidal do nejnovější verze FastMM další option, který by měl vylepšit chování FastMM při mnoha vláknech. Od té doby se ozvalo několik lidí, že to s úspěchem používají na velmi zatížených serverech (např. Eric Grange na beginend.net se 180 vlákny). Původní oznámení je na googleplus - velmi zajímavé.

Pozadí: při uvolňování, resp. alokaci používá FastMM zámek, kterým chrání své struktury. Čím více je vláken, tím větší je šance, že na sebe narazí a budou soupeřit (resp. čekat na uvolnění). Primoz přišel s myšlenkou, že nejméně při uvolňování pokud se nepodaří uvolnění k vůli zámku, tak se takový blok odloží a zkusí se uvolnit při dalším volání, nebo ho uvolní nové čistící vláknou na pozadí.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy:

Praxe

Automatické vypnutí Active u následníka TDataset během nahrávání formuláře

vložil Radek Červinka 21. února 2016 22:10

Pokud používáte vkládání DB komponent přímo na formulář (třeba do DataModule), občas se může stát, že zapomenete nastaveno TDataSetxx.Active := True, což může velmi zpomalit start programu a mít další vedlejší efekty.

Když přejdu to, že si myslím, že je lepší vytvářet Db komponenty až za běhu (nebo aspoň mít vlastního následníka, v kterém úpravu provedeme) a ne v design modu, existuje možnost jak to vyřešit.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: ,

Praxe

Delphi REST server za pomoci open source knihovny Express

vložil Radek Červinka 17. ledna 2016 00:03

Nedávno jsem narazil na Express, jednoduchý REST framework pro Delphi jako rozšíření webbroker. Knihovna se skládá z pouhých tří souborů, ale výsledek je celkem flexibilní.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: , ,

Komponenty | Praxe

Spider - nový Delphi free profiler

vložil Radek Červinka 13. listopadu 2015 18:34

Když jsem potřeboval profilovat tak jsem většinou používal Sampling profiler. Nyní se ale objevil zajímavý program Spider a některé jeho parametry jsou velmi speciální. Např. to, že je to jak sampling, tak podle mne instrumentační profiler (ale bez zásahu do zdrojového kódu - pracuje přímo s EXE v paměti).

Další velmi zajímavou vlastností je podpora více vláken s tím, že se navíc zobrazuje jak jsou vlákna v akci.

Spider delphi profiler

Všimněte si, že profiler zobrazuje jména vláken (jedná se o demo z instalace Delphi - thrdemo), a zároveň je evidentní, že nejrychlejší byl TQuickSort což je velmi přehledně vidět z diagramu.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: , ,

Optimalizace | Praxe

NameThreadForDebugging v Delphi 2007

vložil Radek Červinka 9. září 2015 22:27

Většinou používám Delphi z řady XE, ale pro některé projekty stále mám D2007. A některé věci mi vyloženě chybí, např. NameThreadForDebugging, což jsem popisoval s dalšími fíčurkami v článku Několik typů pro ladění v Delphi. A až dneska jsem zjistil, že D2007 něco podobného má, jen ne tak přímočaře.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: ,

Praxe

SapMM - Efektivní Memory Manager pro multithreaded aplikace

vložil Radek Červinka 5. září 2015 01:27

FastMM4 je geniální. V podstatě ve většině instancí je nepřekonatelný - a že se o to stále někdo pokouší. Ale v případech brutálních vícevláknových (hodně vláken), paměťově intenzivních programů je možné, že FastMM přestane dobře škálovat díky tomu, že své interní struktury chrání spinlocky.

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: , ,

Optimalizace | Praxe

Použití TThread.Synchronize u ne GUI aplikací

vložil Radek Červinka 4. července 2015 01:26

V rámci prověřování jednoho nápadu jsem chtěl vyzkoušel jak se chová TThread.Queue a TThread.Synchronize (více o těchto volání z dřívějška) u ne GUI aplikací (resp. zkoušel jsem jen konzolové).

Více...


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: ,

Praxe

Naše nabídka

Partial English version.

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 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, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

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.

Anketa

Poslední komentáře

Comment RSS