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?

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

Zajímavé komponenty - TECNativeMap (VCL, FMX)

Pokračujeme v seznamu zajímavých komponent balíkem TECNativeMap. Nejedná se o žádný další wrapper nad prohlížečem k zobrazování map, ale plnohodný nativní zobrazovač map k různým datovým podkladům psaný celý v Delphi na bázi jak VCL tak FMX takže kompletně bez závislosti na nějakém prohlížeči.

Co ho odlišuje od nějakého obyčejného zobrazovače map? Jednak široká podpora mapových podkladů, dále si do něho můžete šáhnout a hlavně může být celý v módu OFFLINE a co byl můj případ, můžete mu v módu OwnerDraw šoupat svoje podklady (Tile) které nejsou veřejné např. z DB, nebo v mém případě číst z proprietárního formátu s neveřejnými daty.

A to celé bez nutnosti připojení k internetu nebo naopak pro online data to automaticky transparentně stahuje.

Zároveň komponenta umožňuje volitelně vytvářet na disku cache stažených obrázků, takže se příště nic nemusí stahovat. Všechno je to svižné a máte to pod kontrolou.

Více...

Datum: 2020-06-14 17:27:00 Tagy: Firemonkey, VCL, komponenty

Komponenty

Delphi trik 4: Disable Windows Ghosting

Na fóru Karel Horký sdílel pěkný tip řešící občasný problém s mizením modálního okna za hlavní formulář (např. při různých přepínání - nemyslím TForm.PopupMode) často ve Windows 10.

procedure DisableProcessWindowsGhosting;
var
  DisableProcessWindowsGhostingProc: procedure;
begin
  DisableProcessWindowsGhostingProc := GetProcAddress(
    GetModuleHandle('user32.dll'),
    'DisableProcessWindowsGhosting');
  if Assigned(DisableProcessWindowsGhostingProc) then begin
    DisableProcessWindowsGhostingProc;
  end;
end;

Karel Horký k tomu píše: Volá se to z Create hlavního okna aplikace.

Celé vlákno: forum.delphi.cz/index.php/topic,16907.msg107189.html#msg107189

Více...

Datum: 2020-03-01 21:34:00 Tagy: VCL

trik

Multiline ListView bez custom draw

Nedávno jsem narazil na prima háček jak udělat v určitých případech víceřádkové ListView položky bez vlastního kreslení.

Multi line listview

Ač zastánce VirtualTreeView, sem tam se hodí ListView v report módu a víceřádkový text s fixní výškou.

Více...

Datum: 2018-04-01 23:19:00 Tagy: VCL

Praxe

Delphi 10.2 Tokyo release 2 a VCL

V druhém update Tokyo jsou mimo jiné přidány čtyři nové VCL komponenty.

  • Date Picker Control
  • Time Picker Control
  • Card Panel
  • Stack Panel

První dvě jsou nové komponenty na zadávání data nebo času ve stylu Windows 10 s tím, že fungují i na Windows 7.

Více...

Datum: 2017-12-28 23:44:00 Tagy: VCL

Delphi

Konopka Signature VCL Controls

Jelikož jsou Konopka Signature VCL Controls bonusem pro uživatele Delphi (a mají být součástí Delphi i v budoucnu), zajímalo mne co je za komponenty.

Ray Konopka (tj. člověk za firmou Raize) je od prvních Delphi specialistou na psaní komponent a jeho kniha Developing Custom Components je podle mne spolu s Delphi Component Design elementární knihou pro vývoj komponent. Takže jsem byl opravdu zvědav na výsledek i vzhledem k tomu jakou skvělou pověst komponenty mají.

Více...

Datum: 2016-09-15 22:19:00 Tagy: VCL, komponenty

Komponenty

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

VCL TSplitView v DX Seattle

V Delphi 10 byla rozšířena VCL o několik zajímavých komponent. Nejzajímavější je možná TSplitView (FMX má podobnou komponentu pod názvem MultiView a tu jsem už popisoval). Ale toto je pro VCL.

TSplitView

Více...

Datum: 2015-09-17 23:08:00 Tagy: VCL, DX

Náhodné výkřiky 45

Ještě než se budu věnovat XE7, které snad brzo dorazí, je tu další hrst odkazů a tipů.

Více...

Datum: 2014-08-29 22:16:00 Tagy: fix, VCL, vykriky,

Akce Aktualizace Komponenty Praxe

Jak na TaskBar Progress jinak?

Na základě příspěvku Komponenta TTaskBar pro VCL jsem zkusil vytvořit jednoduché řízení za použití funkčnosti starší unity uWin7Taskbar.pas, pocházející z projektu LameXP (není nejnovější a po neunicode verze Delphi bude asi potřeba ověřit správnost všech GUID, pro unicode verze od Delphi 2010 a výš používá interface dodávané Embarcaderem v jednotce ShlObj).

Protože program může být spuštěn na jakémkoliv OS Windows, pokud nemá explicitně určeno, pro jaké verze OS smí být spuštěn.

Zkusil jsem vytvořit jednoduchý mostík (rozumějme jednotku), aby aplikace fungovala jak na Windows Vista (nebo i XP), tak bez úprav zároveň i na Windows 7 a vyšších. Více...

Datum: 2014-05-08 00:22:00 Tagy: VCL, komponenty

Praxe

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

Náhodné výkřiky 39

Delphi má velmi zajímavého nového člověka pro komunikaci s vývojáři, TFireMonkeyContainer, TDBF pro XE4, rychlý Android emulátor, LLVM pascal a tak vůbec. Je tu další díl mého občasníku. Více...

Datum: 2013-07-30 00:19:00 Tagy: vykriky, FireMonkey, VCL, Android

Delphi FireMonkey

StyleElements u VCL aplikací v XE3

Laskavý čtenář jistě ví, že od XE2 Delphi i pro VCL aplikace podporuje styly. Někteří uživatelé požadují větší kontrolu nad tím, co bude stylováno a proto v XE3 většina prvků dostává možnost volby, které části komponenty se budou stylovat.

Styly v XE4

Možnosti stylů v XE3(4) - StringGrid

Na ukázce je aplikován styl Carbon, přičemž pro dolní čtyři prvky typu TStringGrid jsou různě aplikována pravidla co se bude stylovat - levý horní je ekvivalent z XE2.

Více...

Datum: 2013-07-02 20:52:00 Tagy: XE3, XE4, Styly, VCL

Delphi

Modální story

Příběhů z praxe není nikdy dost. Narazil jsem na problém, že v některých případech kdy zobrazuji modální dialog z modálního dialogu a ještě do toho připletu jiný styl okna (WS_POPUP), někdy nastane problém, že Windows ztrácí informaci o pořadí modálních oken.

Více...

Datum: 2013-04-26 23:55:00 Tagy: VCL

Praxe

ListView

S překvapením pozoruji jak je přehlížena komponenta TListView. Přijde mi, že v některých případech by někomu usnadnila práci.

ListView

Více...

Datum: 2013-01-17 21:33:00 Tagy: komponenty, VCL

Komponenty

TWebBrowser.Document a rozhraní

Na fóru je pěkné pojednání o použití TWebBrowser.Document a mám svolení ho zde publikovat.

Na počátku všeho je reference interface (což je něco jako instance objektu akorát pro interface), pro tento případ v Delphi známý jako TWebBrowser.Document, v podání Microsoftu document DOM objekt. Tento interface pak podporuje spoustu věcí, ale jenom podle toho jakou verzí Internet Exploreru (resp. Windows) uživatel má.

Každá verze interface pak přináší nějaké rozšíření stávající funkcionality. Z hlediska samotné implementace se pak jedná stále o jednu a tutéž činnost (protože MSHTML interfacy vycházejí ze stále stejného základního IDispatch a dědičnost jako taková mezi nimi neexistuje). Tou činností je dotazování, zda daná reference podporuje požadovaný interface (v tomto případě zda TWebBrowser.Document podporuje např. IHTMLDocument3 interface). Více...

Datum: 2012-11-30 00:01:00 Tagy: VCL

Praxe

RAD Studio XE3 - Visual LiveBindings - základy

RAD Studio XE3 přidává novou vlastnost nazvanou Visual LiveBindings. Podle mne se jedná o nejzásadnější rozšíření od dob Delphi 1. I proto je to těžké vysvětlovat, protože se jedná o úplně novou oblast a musím od základů, navíc mnohem hůře se to popisuje než používá. Použití je jak pro VCL, tak pro FMX.

Visual LiveBindings

Více...

Datum: 2012-11-22 22:41:00 Tagy: XE3, LiveBinding, VCL, FireMonkey

Novinky v Delphi

Metropolis aplikace v XE3

Jak jsem již psal, XE3 obsahují podporu pro vytváření jakoby Modern UI (dříve Metro) aplikací. V Embarcaderu to nazývají Metropolis aplikace. Tyto aplikace mají charakteristické vlastnosti zmiňovaných aplikací, tj. grafický styl, Segoe UI fonty, běh ve full screen módu, podporu gest včetně FatFinger ovládání, zobrazovatelný aplikační toolbar (dole) a volitelnou podporu pro Live Tile (není to podle všeho úplně jednoduché).

Ve FireMonkey i zvláštní podporu pro speciální editační pole z Windows 8 a lepší vzhled.

Prosím vezměte na vědomí, že tento styl je Microsofština a prosazuje ho za každou cenu, viz. např. Visual Studio 2012 (jednobarevné slité ikony atd). Embarcadero se jen snaží nabídnout možnost, takže nemá moc cenu zde brečet.

Více...

Datum: 2012-09-20 00:38:00 Tagy: XE3, Windows8, VCL, FireMonkey

Novinky v Delphi

Náhodné výkřiky 28

Opět se mi nastřádalo pár odkazů. Takže dnes to bude obsluha http na low level úrovni, něco z minulosti Delphi, komponenta pro FireMonkey a další efektové.

Více...

Datum: 2012-07-02 16:49:00 Tagy: vykriky, JSON, embarcadero, delphi64, VCL, fix, ORM

Delphi

Výběr adresáře

V programu je bohužel často nutné dovolit, aby si uživatel mohl zvolit adresář (pro mladší čtenáře složku) na disku. Když budu ignorovat fakt, že jakákoliv svoboda volby uživatele zmate, dostáváme se k tomu, jak to jednoduše naprogramovat. Více...

Datum: 2012-06-25 22:40:00 Tagy: VCL, utrzky, praxe

Praxe

Vytváření dočasných komponent za běhu

Mějme klasický kód, tj. vytvoříme dynamicky za běhu formulář a modálně ho zobrazíme.

procedure TForm1.Button1Click(Sender: TObject);
begin
  with TForm2.Create(Application) do
  begin
    try
      ShowModal;
    finally
      Free;
    end;
  end;
end;

Nepovažuji se za nejostřejší nůž v šuplíku a tudíž se možná pletu, ale je zde malé ale. Více...

Datum: 2012-06-01 23:54:00 Tagy: praxe, VCL

Praxe

9x Delphi lekce v PDF pro začátečníky

Měl jsem v šuplíku několik krátkých textů (částečně to bylo pro cvičení z OOP) a přišlo mi škoda je tam nechat. Třeba to některého začátečníka něčemu naučí. Vhodně to doplňuje můj dřívější delší článek Object Pascal pro začátečníky, který je určen pro "znalejší" začátečníky.

Více...

Datum: 2012-02-09 23:46:00 Tagy: začátečníci, VCL, delphi

Začátečníci

Náhodné výkřiky 18

Dnes to bude o různých komponentách, FireMonkey, hrách, překvapení od Allena Bauera a TForm. Více...

Datum: 2011-12-20 22:45:00 Tagy: vykriky, VCL, FireMonkey, komponenty

Komponenty

TMenuItem a reference na objekty

Poněkud zavádějící nadpis, ale jedná se o případ, kdy potřebujeme mít asociaci mezi položkou menu (nebo něčím podobným) a nějakou datovou strukturou.

Poslední dobou jsem potřeboval vytvářet dynamicky položky menu a zároveň k nim mít vazbu na nějakou datovou strukturu. Za začátku jsem to řešil jako odkaz přes Tag někam, případně v Tag jsem měl přímo objekt, ale to byl problém s uvolňováním a tak mne napadlo jiné řešení (předpokládám, že mi v komentářích všichni napíší že je to stará známá věc - ale mne to prostě předtím nenapadlo).

Více...

Datum: 2011-12-14 20:32:00 Tagy: praxe, VCL, začátečníci

Praxe

Ribbon control a styly

Pokud použijete VCL styly z Delphi XE2 a TRibbon control (resp. to asi souvisí s Glass window na Vista+) zjistíte několik problémů ohledně kreslení. Naštěstí existuje možnost jak upravit kreslení libovolného prvku a tak jsem tuto možnost využil a sprostě jsem kreslení obešel.

Více...

Datum: 2011-11-30 22:29:00 Tagy: DelphiXE2, fix, VCL

Praxe

TGlassFrame pro Windows Vista

Windows Vista přinášejí podporu Glass efektu. A Delphi VCL toto podporuje od verze 2007. Více...

Datum: 2011-11-13 22:50:00 Tagy: Delphi 2007, windows, Vista, VCL

Praxe

MonkeyMixer - míchání FMX a VCL

Lze zobrazit FMX formulář z VCL aplikace (prostě do VCL projektu přidáte FMX formulář a zobrazíte ho). Problém je, že proto abyste mohli vytvořit FMX formulář z VCL aplikace musíte oblafnout IDE buďto přepsáním typu projektu v dproj nebo z druhé instance IDE dáte uložit nový formulář z jiného FMX projektu.

Více...

Datum: 2011-10-19 21:36:00 Tagy: DelphiXE2, FireMonkey, VCL

FireMonkey

Chyba MDI v XE a XE2

Igor Gottwald mi poslal popis řešení problému ohledně chyby knihovny Dialogs/Vcl.Dialogs při používání MDI.

Jedná se o problém, kdy vývojář do okna MDIChild umístí více editačních prvků a v některém z nich, při jeho opuštění (OnExit) zobrazí uživateli standardní hlášení (ShowMessage, MessageDlg nebo TaskMessageDlg).

Více...

Datum: 2011-10-18 21:51:00 Tagy: delphi XE, DelphiXE2, VCL

Praxe

VCL styly v Delphi XE2

Popis novinek v XE2 začneme něčím atraktivním. Styly.

Jednou z hlavních změn ve VCL (tedy kromě toho, že je i pro 64bitů) je podpora stylů. Hned na začátek je nutno poznamenat, že styly VCL a FireMonkey nejsou kompatibilní (u druhého je všechno vektorové).

Součástí instalace je i samostatný designer a tester stylů na uživatelské úrovni, takže je možno styly vytvářet i neprogramátory.

Více...

Datum: 2011-09-01 21:12:00 Tagy: VCL, DelphiXE2

Novinky v Delphi

TButton a Windows Vista

I tak klasická komponenta jako je TButton se dá vylepšit. V novějších Delphi (nevím zda i v D2009, ale v D2010 ano) se TButton dočkal rozšíření.

TButton

Více...

Datum: 2011-07-10 23:48:00 Tagy: VCL

Novinky v Delphi