Tipy a triky v Delphi, díl 83.

Už jste si zkoušeli vytvořit opravdu maličké okno? Dnes si povíme, jak na to.
Připadá vám úvodní otázka nesmyslná? No jen si to zkuste. Dejme tomu, že potřebujeme vytvořit nějakou speciální aplikaci a chceme zařídit, aby její okno mělo naprosto minimální rozměry, řekněme 50x50 pixelů. Ponechme teď stranou konkrétní praktický smysl takového okna (může obsahovat třeba jen jedno malé tlačítko) a zaměřme se čistě na problém jeho velikosti.

Chceme-li opravdu "klasické" okno, tedy včetně titulkového pruhu, narazíme v Delphi velmi brzy na jeden problém. Totiž dokonce i když vypneme zobrazování ikonek na zavření, minimalizaci a obnovení okna, nepodaří se nám horizontální rozměr okna dostat pod hranici 112 pixelů. Ve vertikálním směru tento problém není a rozměr okna lze zmenšit klidně na nulovou hodnotu (vidět tedy bude jen samotný titulkový pruh). V horizontálním směru se ale pod výše uvedenou hranici prostě nedostanete a to nejen při návrhu aplikace v Delphi IDE, ale i při pokusu vnutit rozměr okna změnou příslušného parametru za běhu aplikace.

Jak z toho ven? Budeme prostě muset systém "přemluvit" a vnutit mu vlastní konstanty pro minimální rozměr okna. A již vás zřejmě nepřekvapí, že i tentokrát k tomu použijeme zprávy systému, konkrétně WM_GETMINMAXINFO.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure GetMinMaxInfo(var Msg: TWMGETMINMAXINFO); message WM_GETMINMAXINFO;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.GetMinMaxInfo(var Msg: TWMGETMINMAXINFO);
begin
  inherited;
  with Msg.MinMaxInfo^ do
  begin
    ptMinTrackSize.X := 0;
    ptMinTrackSize.Y := 0;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  BorderIcons := BorderIcons - [biSystemMenu];
  Width := 50;
  Height := 50;
end;

end.

Zdrojový kód je myslím dostatečně jasný a není třeba moc vysvětlovat. V události OnCreate jsou pro ukázku nastaveny rozměry na slíbených 50x50 (a rovněž zařízeno vypnutí tlačítek na titulkovém pruhu).

Váš názor Další článek: Nové produkty na bázi VoIP od Kerio Technologies

Témata článku: Software, Windows, Programování, Private, Díl, Klasické okno, Okno, Trik, Praktický smysl


Určitě si přečtěte

Apple ukázal novinky: iPad Pro má překonat notebooky a vrací se Mac mini!

Apple ukázal novinky: iPad Pro má překonat notebooky a vrací se Mac mini!

** Apple v New Yorku představoval počítačové novinky ** iPad Pro prý zatočí s notebooky ** Dočkali jsme se také návratu Mac mini

Jakub Čížek | 81

Na čem běží Seznam.cz: Běžný standard už nestačí, přechází na vlastní cloud i servery

Na čem běží Seznam.cz: Běžný standard už nestačí, přechází na vlastní cloud i servery

** Seznam nám prozradil detaily k jeho nové platformě SCIF ** V rámci jednoho privátního cloudu sjednocuje většinu služeb ** Vedle softwaru vyvíjí i vlastní hardware

Karel Javůrek | 14

Modelářský zázrak: Maketa raketoplánu Columbia, která létá jako skutečná raketa

Modelářský zázrak: Maketa raketoplánu Columbia, která létá jako skutečná raketa

** Model raketoplánu Columbia od českého konstruktéra umí i létat ** Obdivuhodný model si vzal 1600 hodin práce ** Podívejte se na fotografie ze stavby a prvního letu

Karel Jeřábek | 20

Zapomeňte na kabely, vědci už mají prototyp 120kW bezdrátové nabíječky pro elektromobily

Zapomeňte na kabely, vědci už mají prototyp 120kW bezdrátové nabíječky pro elektromobily

** Vědci představili prototyp výkonné bezdrátové nabíječky pro elektromobily ** I přes vysoký výkon se pyšní vysokou efektivitou ** Bude budoucnost nabíjení elektromobilů bezdrátová?

Karel Javůrek | 56

Co pořídit k počítači: tipy na osvědčené klávesnice, sluchátka a další příslušenství

Co pořídit k počítači: tipy na osvědčené klávesnice, sluchátka a další příslušenství

** Toto jsou tipy Živě.cz na příslušenství k počítači, se kterým neuděláte chybu ** Klávesnice, myši, tiskárny, sluchátka... ** Vybíráme jak příslušenství na běžnou práci, tak na hraní her

David Polesný | 26