Auch wenn ich das Problem mit einen kleinem Aufwand reparieren kann, ist es doch ärgerlich, weil es immer wieder passiert.
Es geht drum, dass wenn man eine mit Align ausgerichtete Komponente mit einem Splitter auf Null Breite oder Höhe zusammen drückt, die Komponente danach sozusagen verschwindet. Zieht man den Splitter wieder zurück, ist die Komponente weg.
Natürlich ist sie nicht weg, aber sie wechselt die Reihenfolge, d. h. sie wechselt auf die andere Seite vom Splitter und behält ihre Null Breite oder Höhe. Das passiert aber nur wenn davor eine andere Komponente ist. Ist davor keine Komponente, passiert das nicht.
Vielleicht ist das schwer zu verstehen, hier ein Beispiel. Beispiel erstellt vier links ausgerichtete Komponenten: Panel, ListBox, Splitter, Memo. Schiebt man den Splitter gegen das Panel, ist danach ListBox "weg".
Die Frage ist wie kann man das vermeiden?
Delphi-Quellcode:
uses
ExtCtrls, StdCtrls;
procedure TForm1.FormCreate(Sender: TObject);
begin
with TPanel.Create(Self) do
begin
Parent := Self;
Align := alLeft;
Width := 100;
Caption := 'Panel';
end;
with TListBox.Create(Self) do
begin
Parent := Self;
Align := alLeft;
Width := 100;
Left := 101;
Items.Add('ListBox');
end;
with TSplitter.Create(Self) do
begin
Parent := Self;
Align := alLeft;
Left := 201;
end;
with TMemo.Create(Self) do
begin
Parent := Self;
Align := alClient;
Lines.Add('Memo');
end;
end;