Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: VCL Ersatz für GetSystemMetrics(SM_CYSIZE) bitte

  Alt 7. Apr 2018, 11:38
Also, unter WinApi, wenn ich da ein Fenster generiere, da muss ich Wissen wie groß alles ist.
Delphi.Narium Du hast Recht mit der Aussage "Die Titelleiste des Formulars ist immer so, wie vom System vorgegeben.", aber unter WinApi muss ich eben genau diese Größe berücksichtigen da sonst das Fenster was erstellt wird zu groß/klein ist (falls DPI <> 96).
WinApi behandelt ein Window anders als ein TForm, WinApi ist da eher steif und stur.
Ein Aufruf von "GetSystemMetrics(SM_CYSIZE)" gibt mir die OS-Information wieviel Höhe die Caption aktuell haben sollte/braucht.
Du kannst ja gerne mal GetSystemMetrics(SM_CYSIZE) testen, der Aufruf ist nicht gefährlich, ist ein Integerwert der rauskommt, wenn dein Beispiel korrekt funktioniert sollte das Ergebniss idealerweise identisch sein. Wenn nicht haut was mit Border-Thickness nicht hin.


@Uwe Raab: Ich schrieb doch das ich das Zentrieren bereits hinbekommen habe, aber Danke nochmals dafür.
Ich bin da etwas grob rangegangen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Left := (Screen.Width-Width) div 2;
  Top := (Screen.Height-Height) div 2;
end;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat