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

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 Firemonkey ZX Spectrum emulátor

vložil Radek Červinka 1. prosince 2024 20:45

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.

yase

Více...

Tagy: , ,

Delphi a emulace historického HW - dsp-emulator

vložil Radek Červinka 3. listopadu 2024 20:57

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ší).

Console select

Více...

Tagy: , , , ,

RAD Studio 12.2 Athens Inline Patch 1

vložil Radek Červinka 18. října 2024 07:57

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/

Tagy:

Několik zajímavých technologií

vložil Radek Červinka 4. října 2024 08:55

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.

TMS WebCore a designer

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.

Více...

Tagy: ,

Komponenty

Delphi 12.2 dostupné

vložil Radek Červinka 13. září 2024 10:50

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

Více...

Tagy: ,

Aktualizace

Kontrola limitu registrací Delphi

vložil Radek Červinka 11. září 2024 12:03

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

Tagy:

trik

Případ očekávaného Access Violation

vložil Radek Červinka 27. června 2024 16:02

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.

Více...

Tagy:

Praxe

Náhodné výkřiky 58

vložil Radek Červinka 4. června 2024 21:25

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.

Více...

Tagy:

Případ TThreadPool a maximální počet vláken

vložil Radek Červinka 24. května 2024 14:34

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.

Více...

Tagy: , ,

Delphi DMVC framework - 2

vložil Radek Červinka 21. května 2024 21:31

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;

Více...

Tagy:

Dočasná amnestie na upgrade ze starších verzí

vložil Radek Červinka 3. května 2024 08:14

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.

Tagy:

ANN: MiTeC System Information Component Suite 15.0.0

vložil Radek Červinka 30. dubna 2024 11:11

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.

icon

Podrobněji jsem psal již o MiTeC System Information Component Suite dříve.

Mitec Více...

Tagy:

Aktualizace

Scimark numeric benchmark

vložil Radek Červinka 24. dubna 2024 20:05

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

Tagy:

Delphi 12.1 dostupné

vložil Radek Červinka 5. dubna 2024 10:30

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

Více...

Tagy:

Aktualizace

Windows API z WinMD

vložil Radek Červinka 16. února 2024 15:31

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.

WinMD

Tagy:

Nástroje

Naše nabídka

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

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

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.

Poslední komentáře

Comment RSS

Dle měsíců