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?

Delphi 12 Athens dostupné

Delphi 12 je dostupné.

Tato verze přináší mnoho novinek, ať už se jedná o změny v IDE, instalaci, RTL nebo knihovnách či samotném jazyku. Seznam úprav a vylepšení (jen veřejné) je impozantní.

Delphi 12

Více...

Datum: 2023-11-07 19:54:00 Tagy: Delphi 12

Novinky v Delphi

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

Delphi 10.3 Rio - Release 2

Během týdne vyšel druhý update pro Delphi Rio (10.3.2). Je to významný update nejen z hlediska platforem, kdy přináší macOS 64-bit a C++17 pro Windows 64-bit, ale i vzhledem k různým opravám.

Pro mne jsou důležité opravy ohledně IDE a jeho stability, ale z hlediska budoucnosti je nejdůležitější C++ LSP vylepšení (tj. to co jsem psal co se chystá pro Delphi - out of process napovídání a doplňování kódu). Dále např. Tools > Options > IDE > Compiling and Running > Enable unit directory cache, zrychlující přístup k souborům ve velkých projektech.

Přes GetIt je pro Enterprise+ dostupný FMXLinux.

docwiki, opravené chyby a nové věci

Na závěr: moje osobní třešnička - vylepšený TStrings Visualizer - dá se kopírovat text!

TStringsVisualizer

Více...

Datum: 2019-07-22 23:02:00 Tagy: Rio

Aktualizace Novinky Novinky v Delphi

VCL High DPI Image List

V Delphi Rio byla přidána podpora pro VCL multi resolution imagelisty.

V podstatě se jedná o dvě spolupracující komponenty:

  • TImageCollection - udržuje vlastní multi resolution bitmapy
  • TVirtualImageList - podle DPI zprostředkovává pohled na TImageCollection

Více...

Datum: 2019-02-28 11:57:00 Tagy: vcl

Novinky v Delphi

Windows 10 "Per Monitor v2" podpora a lepší podpora Hi-DPI

S verzi Delphi 10.3 Rio dochází k podpoře Windows 10 “Per Monitor v2”. Nové API řeší problém, kdy dříve nebylo možné získat informace o velikosti elementů pro různé monitory (jako třeba scrollbary), ale šlo to pouze pro primární monitor.

Co to znamená pro kompatibilitu?

Per Monitor Delphi

Více...

Datum: 2019-01-07 23:08:00 Tagy: Rio

Novinky v Delphi

Delphi 10.3 Rio je dostupné

Dnešním dnem je dostupná nová hlavní verze Delphi 10.3 Rio.

Jak již jsem avizoval v minulém článku, jedná se verzi s nejvýraznějšími změnami v kompilátoru za dlouhou dobu.

Feature matrix: rad-studio-feature-matrix.pdf, DocWiki, What's_New

Více...

Datum: 2018-11-21 20:27:00 Tagy: Rio, SOAP

Delphi Novinky Novinky v Delphi

První informace o nadcházející verzi Delphi 10.3 Rio

Pomalu začínají prosakovat informace o nové verzi Delphi 10.3 Rio. Podle mne se bude jednat o naprosto zásadní verzi. Posuďte sami z toho co je zatím zveřejněno.

Více...

Datum: 2018-11-05 21:26:00 Tagy: kompilátor, ARC, Android

Delphi Novinky Novinky v Delphi

Delphi 10.2 Tokyo / release 3 a změny v edici profesional

Dnes 13.3.2018 je dostupný release 3 Release notes pro Delphi, tj. Delphi 10.2.3 a zároveň se mění složení profesional SKU. Update je binárně kompatibilní se všemi 10.2.x .

download: web install

Základní věc je, že profesional verze od 10.2.3 bude obsahovat mobilní vývoj a to i pro stávající zákazníky na předplatném. Zároveň platí do konce měsíce amnestie i na staré verze.

Druhou věcí je, že nadále nebude nově prodávaný samostatný FireDAC rozšiřující balíček pro Profesional (FireDAC v PRO zůstává stejný tak jak byl), přičemž stávající majitelé na předplatném budou dále podporováni po dobu placení předplatného. Dnes naposledy ho lze koupit.

Více...

Datum: 2018-03-13 17:43:00 Tagy: FireDAC, FireMonkey

Aktualizace FireMonkey Novinky Novinky v Delphi

System.Hash a System.NetEncoding

Předpokládám, že ne všichni sledují všechny nové soubory v instalaci Delphi a tak bych rád upozornil na dvě jednotky z posledních verzí: System.Hash a System.NetEncoding a chtělo by se říct konečně.

Více...

Datum: 2017-06-05 23:17:00 Tagy: RTL

Novinky v Delphi

Delphi pro Linux

Delphi v enterprise verzi Tokyo přináší podporu pro Linux. Ukáži jak nastavit prostředí pro vývoj.

Delphi pro Linux je 64bit cross kompilátor s podporou ARC. Pro běh tedy potřebujete 64bit Linux - což je prakticky standard.

Pokud tedy máme OS, budeme potřebovat ještě Platform Assistant (dále jen PA), což je v podstatě vzdálený server, se kterým IDE komunikuje a tento server zprostředkovává ladění (tj. krokování, zjišťování stavu procesoru atd). PA najdeme v "c:\Program Files (x86)\Embarcadero\Studio\19.0\PAServer\LinuxPAServer19.0.tar.gz". Nějak ho dostaňte na Váš stroj a tam balík rozbalte.

Platform Assistant

Více...

Datum: 2017-05-17 23:28:00 Tagy: linux, delphi

Novinky v Delphi

Delphi a Windows Desktop App Converter

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

Datum: 2016-12-20 23:38:00 Tagy: Windows10

Novinky v Delphi Praxe

RAD Studio Berlin 10.1 Update 2 Anniversary Edition

Vyšel zásadní Update 2 pro Berlin. Hlavní novinkou je podpora Windows 10 Store Deployment s vytvářením APPX přímo z IDE a podporou posledních verzí operačních systémů.

Ale opět se ukazuje, že EMBT začalo výrazněji zase podporovat VCL, protože součástí jsou dvě nové VCL komponenty (TCalendarView a TCalendarPicker), které emulují Windows 10 kalendář i pro starší verze windows, což je ostatně již pravidlem (několik nových a složitých VCL komponent z posledních verzí jsou čisté VCL implementace moderních UI prvků běžících na rozumných windows). Komponenta je plně flexibilní a přizpůsobuje se vyhrazenému prostoru, kromě toho přechody mezi módy jsou animované, jak jsou uživatelé navyknutí z mobilních zařízení.

TCalendarViewTCalendarView

Více...

Datum: 2016-11-15 19:21:00 Tagy: Berlin

Aktualizace Novinky v Delphi

VCL TRelativePanel

Nenápadnou, ale velmi zajímavou VCL komponentou přidanou v Delphi Seattle je TRelativePanel.

Tento panel umožňuje všem komponentám na něm umístěným specifikovat relativní polohu vůči panelu nebo vůči jiným komponentám, což je něco co ve VCL chybělo (pokud nepočítám Margins). Jakákoliv přidaná komponenta na tento panel dostane řadu property, které tak mohou specifikovat polohu vůči jiným objektům.

Relative Panel

Více...

Datum: 2016-06-13 21:39:00 Tagy: VCL, komponenty

Novinky v Delphi

Novinky v IDE Delphi 10 Seattle

Pro zajímavost několik drobností z Delphi 10 Seattle IDE co jsem minule vynechal.

Více...

Datum: 2016-03-07 22:42:00 Tagy: D10

Novinky v Delphi

Změny v RTL z CodeRage X

John Kaster publikoval svoji prezentaci z CodeRage X ohledně změn a vylepšení v RTL Delphi.

Pokud tedy nemáte prohlédnutou originální prezentaci, tak si aspoň prohlédněte powerpoint.

CodeRageX - RTL Deep Dive - John Kaster.pptx.

Změn je fakt hodně (veskrze pozitivních), o některých jsem už psal.

Více...

Datum: 2015-10-20 19:06:00 Tagy: DX

Novinky v Delphi

Firemonkey platform Control pro Windows v DX

Nenápadným rozšíření Firemonkey v DX Seattle je možnost u některých ovládacích prvků na Window ve Firemonkey použít ovládací prvky přímo z Windows.

Zatím se jedná o TEdit, TMemo a TPresentedScrollBox. Hlavní jsou ty první dva, protože to mimo jiné znamená např. podporu pro handikepované, Bidi atd. prostě to co umí normální TMemo a spol.

Více...

Datum: 2015-09-16 21:11:00 Tagy: FireMonkey, DX

FireMonkey Novinky v Delphi

Delphi 10 Seattle je nová verze Delphi

Následník Delphi XE8 je Delphi 10 Seattle aka DX Seattle.

Co je nového?

Více...

Datum: 2015-08-31 21:54:00 Tagy: Windows10, DX

Novinky v Delphi

Firemonkey ImageList

V Delphi XE8 byl konečně přidán do knihovny FireMonkey TImageList. Ale na druhou stranu to není až tak obyčejný imagelist jako ve VCL.

Firemonkey Image List

Více...

Datum: 2015-04-28 21:21:00 Tagy: Firemonkey, XE8

Novinky v Delphi

System.Net.httpclient - THTTPClient z XE8

No minule jsem byl k THTTPClient trošku nespravedlivý, ve skutečnosti toho umí více než se zdálo. Kromě https bez nutnosti dodání OpenSSL pro různé platformy to má zajímavé možnosti ohledně paralelního zpracování. Ukáži na malém příkladu.

Ukáži nejprve příklad na zamyšlení a pak vysvětlím co to vlastně dělá. Více...

Datum: 2015-04-19 22:59:00 Tagy: XE8, Indy, synapse, RTL, paralel

Novinky v Delphi

MultiDevice Preview

Minule jsem označil MultiDevice Preview jako jednu z nejzásadnějších novinek v XE8 a věřím, že to programátorům pomůže.

V podstatě k tomu není co více říct, je to jednoduché jako facka. Použijete volbu z menu View - MultiDevice Preview a tam si vyberete které náhledy chcete používat (základní jsou předdefinovány).

Options

Více...

Datum: 2015-04-14 21:14:00 Tagy: XE8, FireMonkey, mobil

Novinky v Delphi

Pár utržků kódu k XE8

Integrovaný HTTP(s) klient

Podle mne těžce inspirovaný .NET, https bez OpenSSL.

implementation
uses
  System.Net.httpclient,System.Net.URLClient;

{$R *.dfm}

procedure TForm7.Button1Click(Sender: TObject);
var
  o: THTTPClient;
  response: IHTTPResponse;
  r: TNameValuePair;
begin
  o := THTTPClient.Create;
  try
    response:=o.Get('https://www.google.com/');
    for r in response.Headers do
      memo1.Lines.Add(r.Name + '='+r.Value);
    Memo1.Lines.Add(response.ContentAsString);
  finally
    o.Free;
  end;
end;

No synapse to není, ale je to integrované v RTL a něco to umí. Více snad později.

Více...

Datum: 2015-04-09 21:29:00 Tagy: XE8, praxe

Novinky v Delphi Praxe

XE7 - IFuture druhé podání

Narazil jsem na pěkné vysvětlení IFuture s pěkným příkladem od Malcolma Grovese. Zásadní informace je, že IFuture není hodnota, kterou budete počítat v budoucnu, ale hodnota, kterou budete v budoucnu potřebovat. Tato jemná nuance je zásadní.

Krása použití paralelního programování v XE7 vynikne, až člověk změní myšlení. Přiznám se, že mi to trvá.

Více...

Datum: 2014-12-04 23:59:00 Tagy: XE7, paralel

Novinky v Delphi

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

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

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

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

Komponenta TTaskBar pro VCL

Pokud máte Windows 7 nebo vyšší můžete využít novou komponentu pro VCL, která zapouzdřuje relativně nové API pro práci s taskbarem Windows.

Jak to může vypadat za běhu (program má nastaven v tomto případě černý skin):

TaskBar

Všimněte si prosím jednak tlačítek v náhledu, druhak overlay ikony (srdce v taskbaru nad ikonou Delphi), třeťak progress baru pod ikonou (červená barva, jelikož je ve stavu Paused).

Více...

Datum: 2014-04-29 21:54:00 Tagy: XE6, VCL

Novinky v Delphi