Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#9

AW: [FMX] Splitter in einem bestimmten Bereich verschieben

  Alt 10. Jul 2013, 08:30
Danke für Deinen Vorschlag Volker, aber der hat einen Nachteil. Bei jeder Größenänderung des Fensters springt der Splitter immer in die Mitte des Fensters. Dieses finde ich einen unschönen Effekt. Bei meiner Version bleibt der Splitter an der Stelle, wo ich ihn zuletzt abgesetzt habe.

So wäre es jetzt aus meiner Sicht perfekt :
Delphi-Quellcode:
var
  HalfClientWidth : Single;
  LeftClientWidth : Single;

procedure TForm1.FormResize(Sender: TObject);
begin
  HalfClientWidth := Round(self.ClientWidth / 2);
  LeftClientWidth := 300;
  Panel2Resize(nil);
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;
Bei dieser Version bleibt der Splitter immer an der gleichen Position stehen, wenn der Splitter innerhalb des Bereichs ist. Wenn der Splitter beim Verändern der Größe außerhalb des Bereichs ist, dann springt er immer in die Mitte des Fensters.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat