Sobald eine Form der BorderStyle auf bsNone gestellt wird, lässt sich die Form (!) zur Laufzeit (!) nicht so einfach verschieben und vergrößern. Eine Lösungen findet ihr hier:
(Auf die Lösungen bin ich zum Teil durch
Mazel (
hier gekommen)
Lösung (Mit Form-Designer)
An allen Ränder der Form ein TImage positionieren (Align = alTop;alLeft;alRight;alBottom). (Das ganze kann man auch mit Labels machen, hier nur AutoSize auf false; Caption auf '' und transparent auf true)
Außerdem noch ein kleineres Image (bzw. Label), was auch alTop ist, aber höher als das 1. ist. (das ist der Rand zum Vergrößern, das andere ist die Titelzeile (falls benötigt)).
Die Dicke aller ungefähr auf 5 Pixel einstellen. Die Titelzeile natürlich breiter wählen.
Dann noch in alle Ecken ein Image (bzw. Label), welches quadratisch ist und nicht allzu groß (14x14).
(Diese Eck-Images müssen im
OnResize Ereignis noch in die Ecken gebracht werden!!
Delphi-Quellcode:
procedure TForm1.FormResize(Sender: TObject);
begin
Rechtsunten.Left := Form1.ClientWidth - Rechtsunten.Width;
Rechtsunten.Top := Form1.ClientHeight - Rechtsunten.Height;
RechtsOben.Left := Form1.ClientWidth - Rechtsoben.Width;
RechtsOben.Top := 0;
LinksUnten.Left := 0;
LinksUnten.Top := Form1.ClientHeight - LinksUnten.Height;
end;
)
Im Ereignis
OnMouseDown der Titelzeile:
Delphi-Quellcode:
//Fängt alle Mausereignisse ab
ReleaseCapture;
// mit TWinCotrol verschieben, $F012 verschiebt die Form
Form.Perform(WM_SYSCOMMAND, $F012, 0);
Beim linken Image in
OnMouseDown:
Delphi-Quellcode:
//Fängt alle Mausereignisse ab
ReleaseCapture;
Form1.Perform(WM_SYSCOMMAND, $F001, 0);
Die Weiteren Werte des zweiten Parameters erklärt
Mazel hier.
Zitat von
Mazel:
$F001 - ändert Größe nach Links
$F002 - ändert Größe nach Rechts
$F003 - ändert Größe nach Oben
$F006 - ändert Größe nach Unten
$F004 - ändert Größe nach Links, Oben
$F005 - ändert Größe nach Rechts, Oben
$F007 - ändert Größe nach Links, Unten
$F008 - ändert Größe nach Rechts, Unten
Somit die anderen Images das Ereignis
OnMouseDown abändern.
Das Optimale an den Images ist, das man gleich ein Bitmap für den Rand (Der Rand ist ja bei bsNone auch verschwunden) und den Maus-Cursor festlegen kann.