![]() |
Panel im Hintergrund
Hallo,
ich habe schon einige Zeit im Internet mit Suchen verbracht, aber leider nichts passendes gefunden. Ich erstelle ein Panel inkl. TImage zur Laufzeit. Sobald dieses Panel erstellt wird, liegt es allerdings unter den zur Designzeit platzierten Editfeldern. Das Panel wird nach den Edits erstellt (da es ja zur Laufzeit erstellt wird), "BringToFront" und "in den Hintergrund setzen" bringen nichts. Mir ist klar das ein TGraphicControl immer hinter einem TWinControl liegt, allerdings erstelle ich mit TPanel ja ein TWinControl. Wo liegt hier mein Fehler? Danke im vorraus |
AW: Panel im Hintergrund
Ich könnte mir nur vorstellen, dass beide nicht die gleichen Parents haben.
Evtl. liegen Deine Edits direkt auf dem Formular und Dein nachträglich erzeugtes Panel auf einem anderen Control (TabItem oder so)? Oder hast Du irgendwo doch ein SendToBack, das Du übersehen hast? |
AW: Panel im Hintergrund
Was wäre mit
![]() |
AW: Panel im Hintergrund
Zitat:
Aber danke für den Tipp. Bringt mich hoffentlich weiter :cyclops: |
AW: Panel im Hintergrund
Dashier überdeckt (unter Delphi 7) bei mir alles im Formular, was sich im Bereich des Panels befindet.
Delphi-Quellcode:
Als Ergebnis habe ich einen grünen Rahmen um ein Image.
procedure TForm1.Button1Click(Sender: TObject);
var pn : TPanel; im : TImage; begin pn := TPanel.Create(self); pn.Color := clGreen; pn.Width := 1000; pn.Height := 400; pn.Left := 100; pn.Top := 100; pn.Parent := Self; im := TImage.Create(Self); im.Top := 4; im.Left := 4; im.Height := pn.Height - 8; im.Width := pn.Width - 8; im.Parent := pn; im.Canvas.FloodFill(0,0,clRed,fsBorder); end; Wo und wann erhältst Du denn welche Exception? Zeig' doch bitte mal Deinen Quelltext, dann brauchen wir nicht so zu :glaskugel:. |
AW: Panel im Hintergrund
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:
Im Child (fm_personen) habe ich folgenden Code:
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
Delphi-Quellcode:
Das interessante ist: Die MDI-Children werden alle von einem Formular (Tfm_vorlage) abgeleitet, welches ein pnl_Inhalt mit align := alClient beinhaltet.
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; Wenn ich was anderes als "pnl_Inhalt" als Parent übergebe (bspw. self, fm_personen oder fm_vorlage:stupid:), 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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz