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?

TListView ve Firemonkey

TListView ve FMX má celkem zajímavé možnosti, které nejsou na první pohled dostupné a některé si ukážeme.

TListView

Více...

Datum: 2022-12-07 18:17:00 Tagy: FireMonkey

Praxe

OAUTH2 u IMAP a SMTP proti office.com nebo GMail

Jak velké firmy poskytující email služby přitvrzují v bezpečnosti, vzrůstá požadavek na implementaci těchto pravidel i do našich aplikací. Poslední deadline od MS ohledně finálního odříznutí klasické autentizace u IMAP na office.com mne donutil implementovat "modern autentization" (což je klasicky OAuth2) i do našeho systému. Naštěstí jsem mohl vycházet z otevřeného řešení.

Více...

Datum: 2022-10-22 09:29:00 Tagy: Indy, synapse, IMAP, SMTP

Delphi 11.2 Alexandria dostupné

Je dostupný nový update 11.2 pro Delphi 11 (aktualizace je binárně kompatibilní s původní Delphi 11). Jak je zvykem Wiki Delphi 11.2, Novinky a opravy.

Aktualizace přináší podporu nových platforem, další sjednocení debuggeru u platforem, vylepšení IDE, nějaké optimalizace a opravy chyb. Jelikož každého zajímá něco jiného, tak bych jen vypíchnul to co považuji za důležité a(nebo) co mne zaujalo.

Více...

Datum: 2022-09-19 18:46:00 Tagy: aktualizace

Aktualizace

Nastavení verze aplikace pro všechny platformy najednou

Delphi od určité verze (Delphi XE2?) podporuje nastavení verze pro každý TARGET samostatně. Chápu, že to může mít někdy přínosné, ale osobně s tím bojuji, koncept All platforms mi moc nefunguje a spíše mne to otravuje. Takže jsem začal hledat nějaké řešení a výsledkem je používání DDevExtension, které napsal autor FixPacku a které nedávno uvolnil jako open source a psal jsem o tom i zde na serveru.

Version info

Více...

Datum: 2022-07-05 12:15:00 Tagy: DDEV

Praxe Rozšíření Delphi

Dvakrát tip pro debugger

Dlouho jsem nepsal o nějaké fintě pro ladění, tak jsem si vzpomněl na takové dvě drobnosti:

Zobrazení dat z memory stream

Samozřejmě se nejedná jen o memory stream jelikož se jedná o populární bázovou třídu tak to použijeme častěji. Pokud jste v místě, kde máte parametr TStream, není nic jednoduššího než přes volání .ClassName zjistit zda se jedná o potomka TMemoryStreamu, objekt přetypovat a použít následující trik (napadl mne, když jsem ladil volání SOAP a pořád jsem logoval stream do souboru abych ho zkontroloval).

Více...

Datum: 2022-06-27 22:58:00 Tagy: debugger

Praxe

TWinControl.LockDrawing a TWinControl.UnlockDrawing

Při představení Delphi 11 jsem prakticky vynechal přidání TWinControl.LockDrawing a TWinControl.UnlockDrawing, což ovlivňuje provádění windows zprávy WM_SETREDRAW.

Více...

Datum: 2022-04-06 09:31:00 Tagy: D11, vcl

Novinky v Delphi

Použítí synapse v THTTPRIO při volání SOAP

Pokud potřebujete používat SOAP, tj. web services, má Delphi léta pro to podporu přes THTTPRIO. Od verze 10.3 RIO je jako komunikační vrstva použit THTTPClient, což je ve většině případů optimální řešení, protože používá preferované řešení operačního systému (např. na Windows SChannel).

Ale: mohou nastat případy, kdy dané řešení nevyhovuje, a pak je tu možnost relativně jednoduše nahradit komunikaci za vlastní (v mém případě to bylo nutnost rychlé změny self signed klientských certifikátů na různých OS). Zvolil jsem synapse. Takže jdeme na to, není to nic hrozného.

Více...

Datum: 2022-03-30 07:48:00 Tagy: SOAP, synapse

Praxe

Delphi 11.1 Alexandria dostupné

Je dostupná aktualizace Delphi 11.1 . Aktualizace je binárně kompatibilní s D11, tj. dcu a komponenty z D11 se dají použít bez rekompilace.

Delphi 11.1

Musím říct, že jsem se na okamžik kdy bude nový update oficiálně dostupný těšil z prostého důvodu, že jeho testovací verze používám delší dobu a vím na co se těšit.

Verze Delphi 11.1 se soustředí na kvalitu a "štelování" toho co bylo zásadní pro Delphi 11, tj. např. LSP, High DPI IDE, Welcome page bez exploreru, ladění atd.

Platformy: oficiální podpora Windows 11, macOS 12 Monterey, iOS 15 a Android 12

Zkusím některé věci co mne zajímají vyzvihnout. Ale nejdříve nezbytnosti:

Více...

Datum: 2022-03-15 23:43:00 Tagy: D11, LSP

Aktualizace Delphi

Modifikace interního chování IDE programově - změna property ProjectTree

Kolega si mi dnes stěžoval, že ho štve chování IDE ve stromu projektů, kdy při dvojkliku mezi projekty, nebo i na unitě dojde k zabalení nebo rozbalení uzlu. Jelikož je to určitě varianta VirtualTreeView, že by stačilo vypustit z TreeOptions.MiscOptions hodnotu toToggleOnDblClick.

Vzpomněl jsem si, že jsem dříve ve starších Delphi použival háček, kdy jsem natvrdo změnil velikost fontu v ObjectInspektoru protože se zvětšilo rozlišení a zhoršil se zrak. Mimochodem Quick Delphi plugin to change font size in the Object Inspector (vytvořte si balíček a přidejte do něj tu jednotku).

Pokud se zavede balíček, volá se procedure Register a lze procházet objekty IDE a pokud znáte co chcete změnit, tak máte šanci.

Otazkou tedy zůstává jen jak najít to co je třeba změnit. A zde přichází ke slovu nástroje na procházení objektů IDE, třeba IDE Explorer (ale jsou i další).

Delphi IDE Explorer

IDE explorer - hlavní okno je AppBuilder Více...

Datum: 2022-01-18 17:54:00 Tagy: IDE, Virtual TreeView

Jednoduchá FireMonkey mobilní Android aplikace krok za krokem - aktualizováno

Recykluji starší článek (2016) a ukáži jak za pomoci Delphi a pár minut vytvoříte jednoduchou mobilní aplikaci pro Android s tím, že pokud máte Apple tak ji jen přeložíte pro iOS.

Veškerý vývoj bude probíhat na Windows jako Win32 aplikace a jen výsledek upravíme na zařízení. Naše aplikace umožní zadat IČO a z webu si dotáhne informace o firmě ve formě JSON, ten zpracujeme a zobrazíme.

Co budeme potřebovat

Více...

Datum: 2022-01-13 01:48:00 Tagy: FireMonkey, Android, web, JSON

FireMonkey Návody

Synapse pro Android s OpenSSL 1.1 (podruhé a lépe) krok za krokem

Upozornění: článek obsahuje různé věci obecně pro vývoj na Android, ne jen ohledně synapse.

Už je to nějakou dobu, kdy jsem portoval Synapsi pro iOS a Linux (2014). V té době mobilní kompilátory nemají AnsiString a proto jsem tam trošku kouzlil a jen část kódu (speciálně hlavně ssPosix.inc, což je implementace soketů společná pro všechny Embarcadero kompilátory mimo windows) se dostala do oficiálního SVN. I to stačilo pro desktopové kompilátory (Mac, Linux). Ale od té doby je už nějakou dobu Android součástí i Professional nebo Community verze, takže zde bude i více článků o něm, protože ho najdete v čemkoliv.

Více...

Datum: 2021-12-29 17:23:00 Tagy: synapse, Android

TLS via SChannel IOHandler pro Indy

Podpora TLS 1.3 je čím dál zásadnější věc. Minule zde byla Synapse a OpenSSL 1.1.1 s podporou TLS 1.3, předtím Indy OpenSSL 1.1.1 IO Handler s podporou TLS 1.3 (stále experimentální) a nyní jsem narazil na Indy SChannel IOHandler (i pro TLS 1.3). Více...

Datum: 2021-11-30 16:57:00 Tagy: Indy

Komponenty

Delphi MVC framework - 1

Je to už neuvěřitelných 7 let, kdy jsem se zmínil o Delphi MVC frameworku a musím říct, že když jsem tehdy říkal, že mi přijde jako nejprogresivnější tak jsem nelhal.

Od té doby zrobustněl, bylo přidáno spousta funkcí (jako podpora swaggeru, JWT autentizaci, JSON-RPC 2.0, Cors a desítky dalších), nebudu to tady vyjmenovávat, ale přímo odkáži na github.com/danieleteti/delphimvcframework. Součástí archívu je spousta dem. Výhodou je taky kompletní zdrojový kód.

Cílem dnešního článku je ukázat jak jednoduše vytvoříte základní službu (celý REST full je podobně jednoduchý) odpovídající na vaše pořadavky.

Více...

Datum: 2021-10-14 19:47:00 Tagy: DMVC

Komponenty Server

Delphi 11 Alexandria dostupné

Embarcadero uvolnilo novou řádovou verzi RAD Studio 11 Alexandria. Po delším čase se změnilo číslování i v reakci na Windows 11 a za mne správné rozhodnutí.

Na úvod Wiki What's New, Release Notes a Feature Matrix.

K instalaci: instálator je částečně paralelizován kde to jde, takže je to trošku rychlejší. A druhá věc, že offline instalace je možná i přes gof soubor, který přihrajete k setupu - viz. release notes. A poslední: při instalaci je konečně zvolit adresář pro Catalog repository, takže to nemusí být na C:

splash Delphi 11

Více...

Datum: 2021-09-13 23:27:00 Tagy: D11

Delphi

DEC - Delphi Encryption Compendium

DEC je zkratkou pro Delphi Encryption Compendium, což je knihovna Open Source šifrovacích, hashovacích, CRC a dalších kódů, primárně kompatibilní s unicode Delphi (Delphi 2009 - Delphi 10.4.2 Sydney). Je udržovaná, podporuje moderní šifry a hashe a je kvalitně napsaná.

Rozsáhlý seznam podporovaných šifer, hash a dalšího je na stránkách projektu.

github.com/MHumm/DelphiEncryptionCompendium

Více...

Datum: 2021-08-09 21:46:00 Tagy: komponenty

Komponenty

Synapse a OpenSSL 1.1.1 s podporou TLS 1.3 - aktualizováno

Aktualizace:

Hlavní autor synapse publikoval oficiální nový plugin pro OpenSSL 1.1.1 s názvem ssl_openssl11, tj. nyní je podpora součástí zdrojáků oficiálně. Synapse je na sourceforge.net/p/synalist/code/HEAD/tree/trunk/.

Původní:

Po minulém příspěvku ohledně TLS a OpenSSL 1.1.1 v Indy se mi ozval jeden člověk na fóru se svojí podpora OpenSSL 1.1.1 v Synapse, takže rád předávám: základní podpora pro TLS a OpenSSL 1.1.1 v knihovně Synapse update.pepak.net/far/filters/src, pokud se někdy objeví i v trunku synapse, tak link opravím.

Více...

Datum: 2021-05-27 18:06:00 Tagy: synapse

Debug visualizer pro TBytes, TMemoryStream, TStringStream atd

Lehce jsem to nakousl při uvedení verze 10.4.2, ale nechtěl bych aby to zapadlo.

Debug visualizer pro TBytes

A kromě oficiálních typů to funguje i pro RawByteString.

Více...

Datum: 2021-05-10 23:49:00 Tagy:

3x patch pro Delphi 10.4.2

Embarcadero uvolnilo tři malé patche řešící speciální problémy, z nichž nejzávažnější je podle mne řešení chyby F2046 out of memory RSP-32768, která u některých velkých projektů mohla nastat.

Každý patch by měl být dostupný přes welcome page nebo přes my.embarcadero.com.

Detaily na RAD Studio 10.4.2 General Patch and Delphi Compiler Patch

Jako ověření můžete zkontrolovat verzi "c:\Program Files (x86)\Embarcadero\Studio\21.0\bin\dcc32.exe", po aplikaci patche by měla být 27.0.41310.5003 nebo novější. Kontrolu proveďte zvláště pokud máte instalován GExpert, který někdy způsobuje problémy s instalací.

Více...

Datum: 2021-05-09 22:58:00 Tagy:

Aktualizace

Threads dialog

Málo známou vlastností Threads dialogu (View / debug windows / threads) je zobrazení Wait Chain. Asi jsem to nikdy nepopsal a moc se to asi nezdůrazňuje, ale je to užitečná vlastnost, kterou oceníte až ji potřebujete.

Wait Chain Delphi

Na obrázku jsou nějaké vlákna, některé jsou pojmenované (ale to jsem už popisoval v několik typů pro debugger), ale zajímavější je poslední sloupec, který říká čím je vlákno blokované.

Popravdě nevím v které verzi to bylo přidané, ale v Delphi XE to ještě není a v Delphi 10.2 to už je. Nic mezi tím nemám instalováno.

Více...

Datum: 2021-03-09 17:57:00 Tagy:

Delphi 10.4.2 vydáno

Nový update Delphi 10.4.2 byl uvolněn. Seznam novinek je celkem velký a velký je taky seznam chyb.

Ve zkratce: What’s New in RAD Studio 10.4.2 a na Wiki, bug list

A teď detailněji protože ta verze si to zaslouží:

Jedna z velkých oblastí se týká optimalizace, a to jak z hlediska rychlosti kompilace kde bylo převzato kolem 30 úprav dle IDEFixPack a to v důsledku znamená, že kompilátor je opravdu rychlý nebo i drobných optimalizací codegen (ano dívám se na tebe RSP-27375) nebo RTL. Jako přímé porovnání mám zkušenost, kdy jsem nedávno migroval jeden z menších projektů (cca 200 tisíc řádků) z D2007 právě na 10.4.2 a původní rychlost kompilace na mém Ryzenu byla přes msbuild 3.5s a po migraci 1.2s.

Jedna z klíčových oblastí, která se mne zatím netýká je Windows MSIX Support, dále byla vylepšena podpora TEdgeBrowser, která by měla použivat konečně finální verzi Edge.

Za to se mne ale týká Android 11 a podpora App Bundle, opravy v Paralelní knihovně, zrychlení TCameraComponent na Androidu a import SOAP (WSDL).

Některé z obrázků jsou z prezentace, kde je i po proběhnutí možnost zpětného prohlížení.

LSP

Na obrázku je vidět nové (volitelné) informace ohledně stavu řádku (chyba, warning …) a v kódu volitelně různě podtrhnutí. Reakce okamžitá díky LSP. Přiznám se, že se už hodně spoléhám na pohled do structure view, kde jsou okamžitě chyby a méně kompiluji. Navíc přibyla podpora pro CTRL+click na inherited, což mne dlouhodobě iritovalo.

Více...

Datum: 2021-02-25 22:35:00 Tagy: LSP, aktualizace, SOAP

Aktualizace

DDevExtensions source code a podpora 10.4

Andreas uvolnil zdrojové kódy pro DDevExtensions na GitHub a během pár hodin byla lidmi přidána podpora pro 10.4. I pokud DDevExtensions nepoužíváte, doporučuji k nahlédnutí a něčemu se přiučit.

Více...

Datum: 2021-02-04 22:41:00 Tagy: IDE, rozšíření, open source, DDEV

Rozšíření Delphi

Rozšíření IDE Project Magician

Uwe Raabe napsal užitečné rozšíření IDE (Delphi XE3 - XE 10.4) s názvem Project Magician, které řeší některé z palčivých problémů ohledně dproj souborů hlavně ohledně systémů pro správu verzí a udržování čísla verzí programu.

Project Magician

Více...

Datum: 2020-12-31 16:19:00 Tagy: rozšíření, IDE

Rozšíření Delphi

Indy OpenSSL 1.1.1 IO Handler s podporou TLS 1.3

Na github v projektu Indy se objevil PULL přidávající podporu OpenSSL 1.1.1 což mimo jiné znamená toužebně vyhlížené TLS 1.3, které bylo ještě před půl rokem v nedohlednu. Momentálně je ve stavu review, ale diskuze pod ním, a to co jsem zkoušel vypadá velmi funkčně - s podporou od D7, přes Lazarus až po Delphi 10.4.x (je to v komentářích uvedeno).

Více...

Datum: 2020-12-01 17:27:00 Tagy: Indy

Komponenty

Apple Platforms Patch pro RAD Studio 10.4.1

Embarcadero vydalo patch pro 10.4.1 přidávající podporu pro XCode 12, iOS 14 a macOS 11 Big Sur (Intel), tyto OS jsou dostupné až po vydání 10.4.1.

Podle autorů obsahují fix pro problém s Delphi Exception v macOS 11 na Intelu a hlavně upravují SDK import z XCode 12, kde tato verze pokud si pamatuji začala některé dylib virtualizovat a import vracel nulovou velikost. Dále je podporováno ladění na iOS 14.

Patch by měl být dostupný přes getIT nebo přes my.embarcadero.com

Více...

Datum: 2020-11-25 17:20:00 Tagy:

Aktualizace

Roadmap 2020/2021 a LSP patch pro 10.4.1

Embarcadero nedávno uvolnilo patch pro LSP, který zlepšuje rychlost kompilace při opakovaných kompilacích velkých projektů. Měl by být dostupný přímo z IDE, nebo z https://my.embarcadero.com . Detailnější povídání je Delphi Compiler And LSP Patch for RAD Studio 10.4.1.

Za druhé byla dnes ukázána roadmap budoucího vývoje Delphi.

Delphi roadmap

Více...

Datum: 2020-11-17 22:26:00 Tagy:

MiTeC Project Maker

MiTeC vydal nástroj na automatický build Delphi projektů. Osobně ho používám už nějakou dobu během beta verze.

Nástroj umožňuje definovat sadu tasků, což jsou v podstatě Delphi projekty, pro každý task vlastní konfiguraci (včetně kompilátoru, nastavení kompilátoru, nastavení verze, code signing, spouštění skriptů a cizích programu, až po drobností jako nastavení afinity procesoru během kompilace). Navíc lze tasky vkládat do profilů a mezi nimi jednoduše přepínat pro jinou konfiguraci.

Domovská stránka: Project Maker

Project maker

Více...

Datum: 2020-10-19 23:03:00 Tagy: nastroje

Custom VCL Title Bar v Delphi 10.4

Od Delphi 10.4 je součástí VCL možnost jednoduše implementovat svůj titulek okna s vlastními prvky tak jak to má Chrome, Delphi IDE nebo jiné aplikace.

TitleBar_VCL

Více...

Datum: 2020-09-27 14:58:00 Tagy: VCL

Delphi 10.4.1 vydáno

Je dostupný update Delphi 10.4.1. Tato aktualizace se zaměřuje na opravy a vylepšení verze 10.4.

Hlavní oblasti:

  • IDE
  • Delphi Code Insight (LSP)
  • SOAP
  • RTL
  • Firemonkey
  • Optimalizace a zrychlení kompilátoru

Release notes s detailním popisem jednotlivých významných oblastí - doporučuji přečíst, nemá to cenu opakovat. Fix list

Za mne jen poznámku, že došlo k úpravám ohledně SOAP, což byla dlouho ignorovaná oblast k vůli preferenci REST. Jinak si případně přečtěte v release notes tu část ohledně float designeru, pokud se Vás to týka.

Update je binárně kompatibilní s existujícími komponentami (vždy např. v rámci 10.4.x), instalátor provede odinstalaci a pokud zaškrtnete, že chcete nechat v registrech informace, tak Vám zůstanou komponenty a další (asi vyjma GetIt). POZOR: pokud provedete manuálně odinstalaci sami, tak to neplatí!

Více...

Datum: 2020-09-02 22:37:00 Tagy: delphi, SOAP,

Aktualizace

Speciální akce

Embarcadero nabízí do 25. 9. 2020 speciální akci, kdy kromě výrazné slevy přidá k vybraným produktům velmi zajímavé komponenty. Slevy jsou slušných 35%, což embt prezentuje jako cenu za dřívější upgrade.

Mně ale zaujal přídavek ve formě komponent pro Ent+, kde je několik pro mne zajímavých věcí (kompletní seznam). Z těch co mne zaujalo

1) DelphiParser - nástroj na analýzu a migraci zdrojových kódů s důrazem na konverzi BDE aplikací. Dále umožňuje optimalizaci databázových dotazů, přechod na Unicode, přechod na 64bit, převod z VCL do UniGUI, vyčištění a refaktoring kódu, nebo i přenesení C/S aplikací do prostředí RAD Serveru. Osobně jsem nezkoušel.

2) Winsoft Component Library - Rozsáhlá sada komponent pro řešení typických požadavků týkajících se PDF, OCR, USB, XML, JSON, NFC, Barcode, komunikačních portů a mnoha dalších. Zdravím Erika do Košic. Některé věci jsem během času použil.

3) SecureBridge od DevArt - osobně jsem použil

4) Gnostice Document Studio

5) /n Software WebSocket Pack pro Delphi a C++Builder

6) Steema: TeeGrid pro VCL a FMX

Kompletní podmínky v sekci Akční nabídky na jejich webu.

P.S.: Nevím zda jsou komponenty včetně zdrojových kódů.

Více...

Datum: 2020-08-24 23:13:00 Tagy:

Akce

FastMM4 AVX, FastMM5

Už je to nějakou dobu, co jsem psal o FastMM4 naposledy a mezitím se něco změnilo. Vývoj FastMM4 byl nahrazen za FastMM5 s možnou komerční licencí a objevil se fork FastMM4-AVX. Fork mají na svědomí autoři známého emailového klienta Bat!, což není špatná vizitka. Více...

Datum: 2020-08-13 15:21:00 Tagy: FastMM

Komponenty Praxe