In den Eingenschaften des Bildschirms kann ja die Breite der Titelleiste eingestellt werden.
Diese Breite muß ausgelesen und um 4 Pixel (ist jetzt ein reine Schätzwert, also besser noch mal Testen, ob es auch stimmt) verringert werden. Das ergibt dann die Breite/Höhe des Buttons.
Dann muß noch die Schriftgröße (Button.Font.Height) angepasst werden, also das letzte Maß nochmal um 6-8 Pixel verringern.
z.B.:
Delphi-Quellcode:
Button.Height := Höhe_der_Titelleiste - 4;
Button.Width := Button.Height;
{Button.Font.Name := 'Marlett';}
Button.Font.Height := Max(Button.Height - 6, 1);
{Max ist zur Sicherheit, damit keine negative Schrifthöhe entstehen kann}
{Da die Titelleiste minimal 8 Pixel hoch sein kann, könnte so auch mal, mit den hier im Beispiel verwendeten Werten (-4 & -6), -2 für die Schrifthöhe entstehen}
Wie die Höhe der Titelleiste ausgelesen wird weiß ich jetzt nicht, bin aber sicher, dass es hier schon irgendwo in der
DP steht.
Ich hatte mir bis jetzt nicht die Mühe gemacht, es gibt ja auch "dreckige Methoden".
Delphi-Quellcode:
{Dafür braucht man nur ein Formular mit der entsprechenden Titelleiste und so}
Höhe_der_Titelleiste := {Form1.}Height - {Form1.}ClientHeight - ({Form1.}Width - {Form1.}ClientWidth) div 2
[add]
Es könnte auch sein, dass der Schriftsyle noch geändert werden muß.
z.B.:
Button.Font.Style := [fsBold];