Hallo,
ich habe ein Problem mit dem Wechsel des Parents eines Panels, in dem sich eine ListView befindet. Wenn die ListView während des "Parentwechsels" auf visible False gesetzt ist, dann "verliert" sie alle ihre Items. Setzt man sie anschließend auf visible true, sind sie zwar alle wieder da, allerdings würde ich gerne wissen, ob man das vielleicht vorher schon abfangen kann. Mir ist klar, dass ich das Problem verhindern kann, indem ich die ListView auf visible true lasse, ich möchte aber wissen, warum dieses Problem in dieser Konstellation der Eigenschaften auftritt.
Hier ist der Beispiel Source Code (vereinfacht) - Delphi 7:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls;
type
TForm1 =
class(TForm)
Panel1: TPanel;
Panel2: TPanel;
ListView1: TListView;
Button1: TButton;
ListView2: TListView;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Counter: Integer;
begin
ListView1.Visible:=False;
Panel2.Parent:=Panel1;
For Counter:=0
To ListView1.Items.Count-1
Do
Begin
ListView2.Items.Add();
ListView2.Items[Counter]:=ListView1.Items[Counter];
end;
end;
end.
Kennt jemand von euch dieses Problem, ist es vielleicht ein Bug in der ListView-Komponente? Bei anderen Komponenten, wie TEdit oder TComboBox tritt dieser "Effekt" nicht auf.