Einzelnen Beitrag anzeigen

Steve9825679

Registriert seit: 21. Jun 2005
Ort: Gmunden
24 Beiträge
 
Delphi 2010 Professional
 
#1

Fehler beim Programmende nach Erzeugung von Panels

  Alt 29. Aug 2010, 19:41
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
  Mit Zitat antworten Zitat