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?


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

Delphi 12 Patch 1 dostupný

vložil Radek Červinka 13. února 2024 11:41

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.

Tagy:

Android 13 a práce se soubory

vložil Radek Červinka 24. ledna 2024 19:30

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.

Více...

Tagy:

FireMonkey | Praxe

Blesková sleva

vložil Radek Červinka 29. prosince 2023 11:21

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.

Zde detaily

Tagy:

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ů