Thema: Delphi Panel im Hintergrund

Einzelnen Beitrag anzeigen

machstuhl

Registriert seit: 17. Jul 2012
40 Beiträge
 
#6

AW: Panel im Hintergrund

  Alt 6. Jan 2014, 14:54
Der ist ein bisschen kompliziert. Aber ich versuchs mal.

So erstelle ich das Panel. Diese Prozedur befindet sich in meiner MDI-Form und soll in diversen Childs aufgerufen werden.
Delphi-Quellcode:
procedure Tfm_haupt.image_status_erstellen(myTop, myLeft : Integer; Besitzer: TComponent; Vater: TWinControl);
Var
  PNL : TPanel;
begin
  PNL := TPanel.create(Besitzer);
  PNL.top := myTop;
  PNL.left := myLeft;
  PNL.Height := 256;
  PNL.Width := 256;
  PNL.Name := 'pnl_status';
  PNL.Parent := Vater;
  PNL.BevelOuter := bvNone;
  PNL.Visible := true;
  PNL.Caption := 'TESTTESTETESTSTSET';
end
Im Child (fm_personen) habe ich folgenden Code:
Delphi-Quellcode:
procedure Tfm_personen.Button1Click(Sender: TObject);
VAR PNL : TPanel;
begin
  fm_haupt.image_status_erstellen(50, 25, fm_personen, pnl_Inhalt);
  PNL := pnl_inhalt.FindChildControl('pnl_status') as TPanel;
end;
Das interessante ist: Die MDI-Children werden alle von einem Formular (Tfm_vorlage) abgeleitet, welches ein pnl_Inhalt mit align := alClient beinhaltet.

Wenn ich was anderes als "pnl_Inhalt" als Parent übergebe (bspw. self, fm_personen oder fm_vorlage), erhalte ich exceptions beim erstellen.

Mir ist mittlerweile klar, dass die Editfelder das Panel überlagern, da die Parents nicht übereinstimmen. Allerdings kann ich auch nix anderes als Parent angeben.


edit: wenn ich self übergebe, geht es doch. hatte noch ne ehemals auskommentierte zeile vergessen.

Geändert von machstuhl ( 6. Jan 2014 um 15:03 Uhr)
  Mit Zitat antworten Zitat