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?
Veselé vánoce a štastný nový rok všem čtenářům.
P.S.: a aby to bylo i trochu technické, tak prompt byl "obrázek vánoční koule na větvičce stromku na které je znak helmy, kterou má Delphi ve znaku, koule je červená, helma otočená doprava, více LED žarovek bílé barvy" a zajímavé je, že pokud tam bylo slovo visící tak byl prompt zablokován jako nepovolený .
A při použítí slova baňka to pořád generovalo placatku na alkohol se znakem Delphi (a nás známou jako pleskačka).
Více...Datum: 2024-12-23 19:17:00 Tagy:
Minule jsem popisoval emulátor historického HW v Delphi pro více strojů, dnes ještě jednou emulace (a asi naposledy) ale jinak. Ukáži emulátor ve Firemonkey (Windows, MacOS, iOS a Android) a co to přinese.
Pravidelný čtenář je již poučen, že Firemonkey hodně dokáže využívat GPU na různých platformách a celkem efektivně umí efekty jak si ukážeme. Yase ZX Spectrum Emulator for Delphi Firemonkey.
Yase používá FMX filtry za pomocí shaderů pro opravdu realistický look - a to až tak, že mne rozbolela hlava a vzpomněl jsem si hodiny na CRT TV u ZX Spectra.
Datum: 2024-12-01 19:45:00 Tagy: open source, hardware, Firemonkey
Mám rád historické počítače a konsole. Na některých jsem začínal, jiné mám doma (pár historických konzolí a počítačů jsem v průběhu času koupil) ale u spousty mohu jen z dálky pokukovat.
Dlouhodobě se zajímám o emulaci a tak dnes chci představit open source, multi HW emulátor, kompletně v Delphi: DSP emulator.
Emulátor emuluje nespočet klasických arkádových automatů, několik konsolí (např. NES, GameBoy Color, Megadrive) a počítačů (ZX Spectrum včetně 128, Commodore 64, Amstrad CPC, Oric).
Ze seznamu je jasné, že zvládá emulaci několika různých CPU (kromě mé srdeční Z80 je to např. m68000 a další).
Datum: 2024-11-03 19:57:00 Tagy: fun, grafika, historie, hry, hardware
Embarcadero vydalo RAD Studio 12.2 Athens Inline Patch 1, což v podstatě značí nový D12.2 instaler, který nahrazuje původní. Tj. pokud stáhnete D12.2 dostane tuto novou verzi.
Patch obsahuje opravy několika chyb, ale hlavní důvod je podle mne nechtěná změna rozhraní jedné třídy, a proto BPL z 12.2 nemusí být kompatibilní s BPL z D12.1, což je velký problém pro autory komponent. Úprava vrací kompatibilitu, ale jelikož to zasáhlo nepřímo mnoho dcu, byla zvolena tato možnost a ne patch.
Druhou zásadní opravou je RSS-1840 TTextServiceAndroid Exception when moving caret to new line .
Seznam oprav a povídání: RAD Studio 12.2 Athens Inline Patch 1 Available.
Patch je dostupný přes GetIt nebo na my.embarcadero.com a funguje jako přeinstalace, zachovává nainstalované komponenty, tedy kromě těch z GetIt, ty se přeinstalují a rozšíření IDE - viz. nahoře.
Update: Postupně se aktualizují rozšíření Delphi - třeba CnPack (https://www.cnpack.org/downbuilds.php?lang=en), nebo MMX - https://www.mmx-delphi.de/downloads/download-info/mmx-setup/
Více...Datum: 2024-10-18 06:57:00 Tagy:
Narazil jsem na několik zajímavých věcí, a i když jsem většinu nezkoušel, třeba se někomu budou hodit.
Musím uznat, že TMS s jejich webcore do toho slušně šlape. Naposledy ukazují na videu databinding v designeru, tj. živá data přimo v designeru a to je celkem cool. Můžete hádat jaké zdrojové data pro prezentaci používají.
video: Live data in the web form designer in TMS WEB Core for Delphi.
Datum: 2024-10-04 07:55:00 Tagy: delphi, komponenty
Je dostupná nová verze Delphi 12.2. Verze je update D12 a nahrazuje D12, D12.1. Je binárně kompatibilní.
Oficiální texty: nové věci a opravené chyby, a více info: Delphi 12 Athens - Release2.
Nová verze přidává některé klíčové věci pro budoucnost a soustředí se na opravy chyb a vylepšení stávajícího stavu.
Kličové je, že nově existují i 64bit verze Win32 a Win64 kompilátoru (a tudíž i LSP) a jsou cca stejne rychlé / nejsou ale v PRO. Zapnutí je v Project Option - “Preferred tool architecture”, vlastní binárky jsou v \Studio\23.0\bin64, původní zůstávají v \Studio\23.0\bin, jmenují se stejně tj. dcc32.exe, dcc64.exe, dcc32290.dll, dcc64290.dll (pro verze volané z IDE) + DelphiLSP.Exe a rlink32.dll.
Pro zapnutí 64bit LSP stačí v tools menu zaškrtnout: Use the 64-bit version of the server
Datum: 2024-09-13 09:50:00 Tagy: aktualizace, D12
Delphi kontroluje kolikrát bylo instalováno - myslí se tím na nové počítače, nikoliv reinstalace beze změny např. názvu počítače. Tento limit je relativně nízko / přesně nevím/, ale pokud člověk platí maintenanci není problém online požádat o zvýšení. Pokud nemá maintenanci je doporučováno kontaktovat prodejce a domluvit se s ním.
Pokud ale člověk se chystá na nějakou velkou reinstalaci, může požádat o navýšení dopředu pokud si myslí, že už dosáhne limitu.
Nedávno jsem narazil na článek člena MVP Glenn Dufke, který popisuje jak zjistit, kolik registrací ještě máte. Více...
Datum: 2024-09-11 11:03:00 Tagy:
Je vedro tak to trošku okořeníme. Mějme následující kód a odhadněte bez krokování, kde a zda vůbec program spadne. Je to umělá ukázka reálné situace, kterou jsem ale trošku zamaskoval ať je to zábavnější.
Možnosti k přemýšlení: spadne to protože volám metodu na nil objektu, spadne to protože TButton v console, spadne to protože TButton má taky Click, spadne to protože se snažím vypsat Caption a to je řetezec, spadne to protože se snažím nastavit Caption a to teprve nemůže projít, spadne to protože mám lokální proměnnou v metodě u nil objektu, spadne to protože přiřazují do lokální proměnné, spadne to protože čtu lokální proměnnou nil objektu, spadne to náhodou a jen někdy.
Nebo to v klidu projde vše. Jako je to trošku vyšší level, ale zkuste.
program TestAV;
{$APPTYPE CONSOLE}
{$R *.res}
uses
WinApi.Windows, System.SysUtils, System.Classes, WinApi.Messages, Vcl.StdCtrls;
type
TTestButton = class(TButton)
public
procedure Click;
end;
procedure TTestButton.Click;
var
x: Integer;
begin
writeln('button.Click'); // Line A
writeln(Caption); // Line B
Caption := 'Button 23'; // Line C
x := ImageIndex; // Line D
writeln(IntToStr(x)); // Line E
end;
var
t: TTestButton;
begin
try
t:=nil;
t.Click; // Line F
t.Free; // line G
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
readln;
end.
Datum: 2024-06-27 15:02:00 Tagy: praxe
Narazil jsem na seřazený seznam open source komponent z posledních let dostupný na github. Je to podle let a stars + pár dalších perliček (třeba open source CAD nebo projekt, který je fork něčeho co jsem kdysi napsal). Pascal Pantheon.
A když už jsem u toho GitHub, tak sem tam přidám i něco na github.com/delphicz.
Datum: 2024-06-04 20:25:00 Tagy: vykriky
Jen taková krátká poznámka ze života.
Dělal jsem úkol, kde se spouštělo velké množství tasků, které nezávisejí na pořadí. Prostě jak přijde nový požadavek, tak se převezme a podle případu se vygeneruje x výstupů. Krásná úloha pro TTask a TThreadPool. Fungovalo to nádherně, jen si zákazník přál, aby si mohl regulovat kolik dostane program vláken.
Datum: 2024-05-24 13:34:00 Tagy: vlakna, paralel, Threading
Doplním starší příspěvek DMVC o jednohubku jako je ukázka jednoduchého předání dat a založení dat. Po přečtení první části doplníme náš REST server o POST, tj. vytvoření záznamu.
type
[MVCNameCase(ncLowerCase)]
TTown = class
private
FName: string;
FPostCode: string;
public
[MVCSwagJsonSchemaField('name', 'town name', True, False)]
property Name: string read FName write FName;
[MVCSwagJsonSchemaField('postcode', 'post code', True, False)]
property PostCode: string read FPostCode write FPostCode;
end;
[MVCPath('/town')]
[MVCSwagAuthentication(atJsonWebToken)]
TCtrlTown = class(TMVCController)
public
[MVCPath('/($Id)')]
[MVCHTTPMethod([httpGET])]
{$IFNDEF DEBUG} [MVCRequiresRole('role1')] {$ENDIF}
[MVCSwagSummary('Town section', 'Town by Id', 'GetTown')]
[MVCSwagParam(plPath, 'Id', 'Town id', ptInteger)]
[MVCSwagParam(plQuery, 'params', 'Params', ptString)]
[MVCSwagResponses(200, 'Success', TTown)]
[MVCSwagResponses(401, 'Unauthorized')]
[MVCSwagResponses(500, 'Internal Server Error')]
procedure GetTown(const Id: Integer);
{$IFNDEF DEBUG} [MVCRequiresRole('role1')] {$ENDIF}
[MVCDoc('create Town and return "201: Created"')]
[MVCPath('/')]
[MVCHTTPMethod([httpPOST])]
[MVCSwagSummary('Town section', 'Item create', 'CreateItem')]
[MVCSwagParam(plBody, 'town', 'TownObject object', TTown, ptNotDefined, True, ' { "name": "Zlín", "postcode":"76340" }')]
[MVCSwagResponses(201, 'Success, Data get new created ID')]
[MVCSwagResponses(405, 'Failed')]
[MVCSwagResponses(500, 'Internal Server Error')]
procedure CreateItem();
end;
Datum: 2024-05-21 20:31:00 Tagy: DMVC
Embarcadero na měsíc (do 31.5.2024) uvolňuje možnost upgrade ze starých verzích na aktuální. Od roku 2016 je to celkem unikátní situace. Podrobnosti u našeho zastoupení zde na stránce Amnestie upgrade.
A na podobnou notu: FastReport, který mám fakt rád, připravuje změnu způsobu licencování, kdy tak zamíchal edicemi, že nejen u mé edice (dříve FastReportVCL Pro, tedy se zdrojáky) zvedne ceny. Mělo by to nastat už 1.6. Přihřeju polívčičku a na odkazu nahoře ohledně amnestie je pro FastReport do konce května sleva 5% ještě na staré ceny.
Konec slevového okénka.
Více...Datum: 2024-05-03 07:14:00 Tagy:
Dlouhodobě používáme MiTeC System Information Component Suite, proto když Michal udělá novou major verzi je třeba ho podpořit. Jedná se podle mne o nejlepší komponenty ohledně HW pro Delphi, včetně zdrojů a life time licence.
Podrobněji jsem psal již o MiTeC System Information Component Suite dříve.
Datum: 2024-04-30 10:11:00 Tagy:
Scimark je klasický numerický benchmark a já si tak pro zajímavost jednou za čas pouštím jeho Delphi port variantu, abych si ověřil jak je na tom 32bit Delphi a 64bit v jednotlivých verzích. Nikdy jsem neskrýval, že obecně mám radši 32bit kompilátor.
Předem upozorňuji, že je to jeden a ten samý kód, jen překládaný různými verzemi jak 32bit, tak 64bit. Jedná se o lehce upravený původní Delphi port, moje verze je 64bit kompatibilní a je tady ke stažení scimark.zip (200 kb).
Takže ještě jednou: stejný kód, takže teoretické chyby jsou stejné. A jedná se o numerický benchmark, ne obecný. Berte to prosím jako zajímavost, jak s tím naložíte je na Vás.
Bechmark obsahuje pět "kernelů", tj. testů (podrobnosti na prvním odkazu, ve zkratce):
Fast Fourier Transform (FFT) provede jednorozměrnou dopřednou transformaci 4K komplexních čísel. Toto jádro procvičuje komplexní aritmetiku, promíchávání, nekonstantní odkazy na paměť a trigonometrické funkce.
Jacobi Successive Over-relaxation (SOR) na 100x100 mřížce cvičení typických přístupových vzorů v aplikacích s konečnými diferencemi, například řešení Laplaceovy rovnice ve 2D s Drichletovými okrajovými podmínkami.
Monte Carlo aproximuje hodnotu PI výpočtem integrálu čtvrtkruhu y = sqrt(1 - x^2).
Sparse matrix mutiply používá nestrukturovanou řídkou matici uloženou ve formátu komprimovaných řádků s předepsanou řídkou strukturou.
dense LU matrix factorization vypočítá LU faktorizaci husté matice 100x100 pomocí částečného otáčení. Procvičuje jádra lineární algebry (BLAS) a operace s hustými maticemi.
(pozn. popis algoritmu je přes deepl s minimem oprav) Více...
Datum: 2024-04-24 19:05:00 Tagy:
Ode dneška je dostupná první aktualizace D12 (neplést s přechozím patch). Aktualizace je binárně kompatibilní s D12, tj. balíčky komponent a rozšíření zůstavají. Při aktualizaci si nezapomeňte zálohovat Library path pro 64bit a ostatní platformy (stačí otevřít Options a zkopírovat příslušný řádek). Na začátku instalace se Vás to zeptá, zda chcete zachovat instalaci (Do you want remove all … - zvolte No).
Hlavním cílem aktualizace je vylepšení kvality, odstraňování problémů a opravy chyb a jen pár novinek. Ke stažení na my.embarcadero.com
Datum: 2024-04-05 09:30:00 Tagy: aktualizace
Jen pro připomenutí co se dá najít v GetIT v Delphi - Delphi header files generované přímo z Windows Metadata (WinMD) informací. Takže se jedná o fakt "fresh" konvertované soubory.
Více...Datum: 2024-02-16 14:31:00 Tagy:
Konečně je dostupný patch 1 pro Delphi 12, měl by být oznámen na welcome page v Delphi (nahoře). Instalace má 160M a je to patch, tj. nedojde k reinstalaci Delphi jako při update. Je to doporučeno všem s D12. Detaily, včetně oprav Patch 1.
Zároveň jsou přesunuty GetIt servery na GetIt AWS.
Pokud nemáte instalovány D12, je dostupný nový instalátor, který obsahuje přímo i patch 1 nová instalace D12. Pokud máte instalován patch, není třeba toto instalovat, vyjma přidávání platforem.
Více...Datum: 2024-02-13 10:41:00 Tagy: aktualizace
S příchodem Androidu 11 google zpřísnil přístup k souborům, které nejsou přímo vaše, ale jsou sdílené (třeba na SD kartě atd). Do verze Android 12 to šlo potlačit přes manifest a requestLegacyExternalStorage, ale s příchodem Androidu 13 se situace změnila.
Datum: 2024-01-24 18:30:00 Tagy: Android
Jen ve zkratce: 35% SLEVA na licence Delphi, C++Builder a RAD Studio 12 Athens Enterprise a Architect a 30% SLEVA na licence Professional. Nabídka končí 31. 12. 2023.
Více...Datum: 2023-12-29 10:21:00 Tagy:
Už to bude 11 let co jsem napsal článek o UniGui. Pořád si myslím, že je to jedna z nejzásadnější komponent pro Delphi. Pro mne třeba za minulý rok asi jedna ze 4 nejpoužívanějších věcí co nejsou součástí Delphi (další jsou FastReport, synapse, VirtualTreeView a DMVC framework).
Kam se tedy tedy unigui posunulo? A co za těch cca 16tis bez DPH za verzi Unigui Pro (schválně bez mobilních verze a řeknu proč) - pozor na webu unigui.com je cena taky bez daně, nově dostanete?
Aplikace napsaná v Unigui za jednotky hodin zobrazená na iPhone proti MS SQL databázi (upraveno pro účely prezentace).
Datum: 2023-12-17 13:36:00 Tagy: unigui
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í.
Datum: 2023-11-07 19:54:00 Tagy: Delphi 12
Jelikož není žádným tajemstvím, že Delphi 12 snad brzo bude - viz. náznaky beta blogování (taky snad něco brzy napíši pod explicitním povolením od Embarcadera), tak bych rád zdůraznil jednu opomíjenou vlastnost novějších verzí Delphi - je na to IMHO ideální čas.
Jako každý programátor jsem měl problémy s balíčky komponent a novými verzemi, kdy aby nedošlo k problémům se soubory (dependency hell), má vždy balíček pro danou verzi jiný název. Klasicky obsahuje číslo verze, viz. samotné Delphi - např. FireDAC280.bpl, vcl280.bpl atd. Pro mne tak byl vždy největší opruz dodělávat balíčky pro novou verzi, a to v případě kdy to neudělal vývojář.
Naštěstí už několik verzí (podle všeho od D10.4 - viz třeba balíčky VirtualTreeView) je tu řešení: automatické generování suffixu a teď je ideální čas se tím zabývat. Za ten ušetřený čas v budoucnu do stojí.
Datum: 2023-10-19 20:01:00 Tagy: IDE
Často píšu programy které běží dlouho a tak mne zajímá, zda se tam neděje něco co nechci. V takovém případě si do logu zapisuji stav programu (tedy kromě jiného samozřejmě). Sice existují knihovny, ale pro mé potřeby většinou stačí jednoduchá funkce.
Datum: 2023-08-11 15:12:00 Tagy:
Do 26. Července získají všichni zákazníci slevu 30% na libovolnou edici Delphi, C++Builderu, nebo RAD Studia 11.3 Alexandria. shop.codesecure.eu/embarcadero/
Více...Datum: 2023-07-14 11:11:00 Tagy:
Vždycky jsem UDP psal pomocí Synapse, ale chtěl jsem zkusit něco nového a chtěl jsem to pro Android za pomoci inhouse řešení - i když je Synapse pro Android je dostupná.
Server byl existující synapse UDP server (tady je sample public:howto:udpserver) pro windows, který na zaslaný řetezec <ident> vrátil název počítače, takže jsem během chvilky dostal seznam dostupných stanic i s IP adresou pro připojení z Androidího klienta.
Embarcadero uvedlo novou Community Edition (tj. free verze) postavené na bázi Delphi 11.3 Pro (to samé pro Builder) s integrovaným patchem z minulého týdne. To znamená vývoj pro iOS, Android, Windows a macOS. Jsem tomu opravdu rád.
Rovnou upozorňuji, že to je edice pro hobby, studenty, startup, neziskovky atd. s limitem zisku $5.000. Vážně ji nepoužívejte z firemní sítě a nejedná se o prodloužený Trial, licenční podmínky.
Adresa pro stažení: Download Delphi 11 CE
Více...Datum: 2023-04-27 07:20:00 Tagy: CEStarter XE
Po přestávce vynucené pandemií Covid-19 se vracíme do Městské knihovny v Praze. Přijďte získat novou inspiraci pro své programy, osobně se setkat s technickými konzultanty společností Embarcadero a TMS Software. Pro ukázky bude použita nově vydaná verze RAD Studia Alexandria 11.3, která přináší podporu posledních verzí cílových platforem a důležitá vylepšení subsystémů jako je LSP Server, editor kódu nebo knihoven VCL, FireMonkey a FireDAC.
Mimo samotné Delphi 11 mohu doporučit TMS a jejich TMS WEB Core.
Termín: 20.4.2023 od 9:00
Místo: kinosál Městské knihovny v Praze, Mariánské náměstí 1/98, Praha 1
registrace: lp.embarcadero.com/mk2023
Více...Datum: 2023-03-16 14:42:00 Tagy:
Je dostupná třetí aktualizace D11.3. Aktualizace je binárně kompatibilní se všemi verzemi D11, tzn. pokud při instalaci zvolíte zachovat nastavení, tak se Vám zachovají všechny nainstalované komponenty (kromě těch z GetIt, ty se musí instalovat znovu). Pozn.: je možné, že vám zmiznou cesty pro Library - win 64. Pro jejich zálohování otevřete Tools, Options, pak Language, Delphi, Library a vyberte Windows 64 a zkopírujte obsah edit boxu pro pozdější obnovu. Nebo nahoře ve vyhledávání napište Library a vyberte z nabídky.
Klasický seznam what is new in 11 Alexandria - Release 3 - doporučuji přečíst, resp. souhrn od Marca Cantu - https://blogs.embarcadero.com/announcing-the-availability-of-rad-studio-11-3-alexandria/, seznam FixList
Datum: 2023-02-27 18:13:00 Tagy: delphi, D11
Embarcadero má nyní po dlouhé době akci, kdy na starší verze Delphi máte možnost provést upgrade za nizší cenu než nová licence. viz. nabídka upgrade, platnost momentálně do 15.2, platí pro verze XE2 a starší. Součástí je i roční předplatné aktualizací a licence na některé starší verze jako u normální licence.
Připomínam Feature matrix, tj. co která verze obsahuje, tj. např. Prof edice má mobilní vývoj, ale nemá Linux, atd.
Více...Datum: 2023-02-08 09:55:00 Tagy:
Znělo to jednoduše: mám napsaný další program pro Android a zákazník si přál mít ještě možnost stáhnout a spustit PDF v externím prohlížeči.
Všechny aplikace pro Android ladím jako Win32 aplikace s pár IFDEF a pak to jen přeložím pro Android a upravím sem tam design a pár speciálních funkcí, velmi výrazně to zrychluje vývoj. A tak jsem na to šel i při zobrazení PDF.
A jako bonus se zmíníme o AndroidManifest.xml a AndroidManifest.template.xml .
Stáhnutí PDF bylo pár řádků díky THTTPClient a pro zobrazení na windows z VCL jsem věděl, že nejjednodušší je ShellExecute.
Datum: 2023-01-20 20:32:00 Tagy: FireMonkey, Android, PDF