Hallo Volker,
danke für Deinen Tipp. Ich habe das ganze mal ausprobiert und Dein Ansatz war völlig richtig. Hier mein Endergebnis :
Delphi-Quellcode:
var
HalfClientWidth : Single;
LeftClientWidth : Single;
procedure TForm1.FormResize(Sender: TObject);
begin
HalfClientWidth := Round(self.ClientWidth / 2);
LeftClientWidth := 300;
end;
procedure TForm1.Panel2Resize(Sender: TObject);
begin
if LeftClientWidth > Panel2.Width then
Panel2.Width := LeftClientWidth
else
if Panel2.Width > HalfClientWidth then
Panel2.Width := HalfClientWidth - Splitter1.Width;
end;
Nun kann ich das Panel2 in der Breite nicht kleiner als 300 Pixel machen und das Panel 3 nicht kleiner als die Hälfte der Breite vom Fenster. Ich habe auch jetzt nichtmehr das Zittern des Splitters, wenn ich über die Grenze des Bereiches gehe. Damit bin ich wieder einen Schritt weiter.
Edit:
Ich habe auch einen entsprechenden Eintrag in meine
Code-Orakel Online Datenbank gemacht.