Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#1

Nach TSplitter Nutzung verschwindet die Komponente

  Alt 7. Nov 2013, 22:00
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;
  Mit Zitat antworten Zitat