Ich muss mich hier noch einmal melden
Jetzt stehe ich vor dem Problem das wenn ich die Form resizee bleiben die Buttons so in der Scrollbox wie sie auch erstellt wurden. Wie könnte ich es schaffen sie auszurichten ohne das sie ständig neu generiert werden müssen?
Wenn du deine visuellen Objekte in einer Objektliste verwaltest, mußt du doch nur die Objektliste durchgehen und die Position der Objekte neu berechnen. Ich mache das in meiner
HTML-Template-Verwaltung eigentlich ganz einfach:
Delphi-Quellcode:
Function TVorschau.ZeichneBilder : Boolean;
Var
x,y,
i,z : Integer;
Obj : TBild;
begin
x := Allg.Bild_Abstand;
y := Allg.Bild_Abstand;
z := BList.Count;
Try
IF z > 0 THEN
FOR i := 0 TO z-1 DO
BEGIN
Obj := BList[i];
Obj.Bild.Left := x;
Obj.Bild.Top := y;
Obj.Bild.Width := Allg.Bild_Breite;
Obj.Bild.Height := Allg.Bild_Hoehe;
Obj.Bild.Visible := True;
Obj.Titel.Font := VPanel.Font;
Obj.Titel.Color := Allg.BildTitel_Farbe;
Obj.Titel.Width := Allg.Bild_Breite;
Obj.Titel.Height := Allg.BildTitel_Hoehe;
Obj.Titel.Left := Obj.Bild.Left;
Obj.Titel.Top := Obj.Bild.Top + Allg.Bild_Hoehe;
Obj.Titel.ShowHint := True;
Obj.Titel.Visible := True;
x := x + Allg.Bild_Breite + Allg.Bild_Abstand;
IF x > (VPanel.ClientWidth - Allg.Bild_Breite - Allg.Bild_Abstand) THEN
BEGIN
x := Allg.Bild_Abstand;
y := y + Allg.Bild_Abstand + Allg.Bild_Hoehe + Allg.BildTitel_Hoehe;
IF VPanel.Height < (y + Allg.Bild_Abstand + Allg.Bild_Hoehe + Allg.BildTitel_Hoehe) THEN
VPanel.Height := VPanel.Height + Allg.Bild_Abstand + Allg.Bild_Hoehe + Allg.BildTitel_Hoehe;
END;
END;
Result := True;
Except
Result := False;
End;
end;
Das Ergebnis ist durchaus zufriedenstellend, wie das angehängte Bild zeigt: