Hallo!
Ich erzeuge zur Laufzeit mehrere Panels, da ich den Bildschirm mithilfe derer in verschiedene Bereiche A, B und C einteilen muss:
Code:
======================
= = B =
= A ===========
= = C =
======================
Panel A hat die Eigenschaft Align=left und eine bestimmte zugewiesene Breite (die Applikation wird an unterschiedlich großen Monitoren ausgestrahlt, und A muss immer eine bestimmte Breite aufweisen), B und C sollen den restlichen Bildschirm ausfüllen. Da align=top für B sich aber über A drüber legt, muss ich unterhalb von B und C zuerst ein temporäres Panel x mit align=client erzeugen. Diesem füge ich dann mit x.InsertControl die Panels B und C zu.
Das funktioniert auch einwandfrei! Das Programm startet, etc.... aber wenn ich das Programm beende, kommt die Fehlermeldung "Im Projekt ... ist eine
Exception der Klasse EInvalidPointer mit der Meldung 'Ungültige Zeigeroperation' aufgetreten".
Wo liegt hier der Fehler? Bitte um Hilfe!
Delphi-Quellcode:
A:=TPanel.Create(self);
A.Name:='A';
A.Parent:=Form1;
A.Align:=alLeft;
A.ParentBackground:=false;
A.ClientWidth:=Round(Screen.Width / 2);
A.Color:=clGreen;
x:=TPanel.Create(self);
x.Name:='x';
x.Parent:=Form1;
x.Align:=alClient;
x.ParentBackground:=false;
B:=TPanel.Create(self);
B.Name:='B';
B.Parent:=x;
B.Align:=alTop;
B.Height:=Round(Screen.Height / 2);
B.ParentBackground:=false;
B.Color:=clBlue;
C:=TPanel.Create(self);
C.Name:='C';
C.Parent:=x;
C.Align:=alClient;
C.ParentBackground:=false;
C.Color:=clBlue;
x.InsertControl(B);
x.InsertControl(C);
Man strahlt hier nicht in Wien,
denn bald strahlt es aus Temmelin