![]() |
Komponente dauerhaft nil
Guten Tag,
Haben ein Prolbem mit einer Komponente im Projekt. Und zwar wird das Create einer Form aufgerufen und hierbei wird eine Eigenschaft eines Panels, welches auf der Form sitzt gesetzt. Panel3.Visible := TRUE; Panel3 ist jedoch immer NIL. Wird die Zeile aufgerufen kommt es natürlich zu einer Zugriffsverletzung. Habt Ihr vieleicht eine Idee wonach ich noch suchen kann um dieses Problem zu beseitigen? Vielen Dank im Voraus. |
AW: Komponente dauerhaft nil
Existiert dieses Panel3 auch in der DFM (auf der Form)?
Nur weil eine Variable / ein Feld mit diesem Namen existiert, muß nicht von der VCL darin eine Komponente angelegt/verlinkt werden. |
AW: Komponente dauerhaft nil
Ja, scheint alles OK zu sein in der DFM. Hier der Ausschnitt. In den Panels sind noch Labels und Edits drinne. Die sind zur Laufzeit auch nil.
Code:
object Panel3: TPanel
Left = 128 Top = 272 Width = 185 Height = 65 TabOrder = 26 object Label44: TLabel Left = 8 Top = 16 Width = 74 Height = 16 Caption = 'konvertiert' Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -13 Font.Name = 'MS Sans Serif' Font.Style = [fsBold] ParentFont = False end object Label45: TLabel Left = 8 Top = 32 Width = 26 Height = 16 Caption = 'von' Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -13 Font.Name = 'MS Sans Serif' Font.Style = [fsBold] ParentFont = False end object Edit11: TEdit Left = 112 Top = 8 Width = 60 Height = 21 TabOrder = 0 Text = 'Edit11' end object Edit12: TEdit Left = 112 Top = 32 Width = 60 Height = 21 TabOrder = 1 Text = 'Edit12' end end |
AW: Komponente dauerhaft nil
Reden wir hier eigentlich vom OnCreate-Ereignis der Form oder von Constructor und Co.?
|
AW: Komponente dauerhaft nil
Es handelt sich um das Create.
procedure TFRMmw.FormCreate(Sender: TObject); Haben eben auch nochmal probiert eine neue Komponente hinzuzufügen und die Eigenschaften aufzurufen. Hier ist der Fehler ebenfalls. Auch wieder nil. |
AW: Komponente dauerhaft nil
Dann ist klar was da schief läuft. Create() wird VOR dem Erstellen aller automatischer Komponenten ausgeführt, das Ereignis OnCreate() danach, quasi als letzter zum Erzeugen gehörender Schritt.
Edit: Wobei ich mir auf ein mal nicht mehr 100%ig sicher bin. *hust* Aber einen Versuch isses wert :) |
AW: Komponente dauerhaft nil
Im Contructor werden die Komponenten schon geladen, aber man muß dieses auch erstmal zulassen.
Wann/wo wird Inherited aufgerufen? |
AW: Komponente dauerhaft nil
Zeig doch mal den Kompletten Code deines FormCreate-Eventhandler.
(@himitsu, Medium): Das ist nicht der Konstruktor sondern der Eventhandler für OnCreate. |
AW: Komponente dauerhaft nil
Zitat:
Im Create sind auch noch andere Komponenten mit denen ich keine Problem habe (Timer, usw.). Ich benutze hier das OnCreate Ereignis, keinen Constructor. |
AW: Komponente dauerhaft nil
Hier nochmal der Code.
Delphi-Quellcode:
PS: Das ist nicht mein Projekt, sondern von einem Kollegen, der einen Schlaganfall hatte. Leider kann ich diesen dazu nicht mehr befragen.
procedure TFRMmw.FormCreate(Sender: TObject);
VAR Hilf : Integer; begin Timer1.Interval := 0; Timer1.Enabled := False; Datenzeigenret := DAtenzeigen; FTyp_IDRet := Ftyp_ID; Panel2.Visible := FALSE; Panel3.visible := False; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:48 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-2025 by Thomas Breitkreuz