Form zur Laufzeit, FormShow
Morgen :mrgreen: ,
Ich habe mir mit Neu=>Formular ein Form gemacht darauf ein parr Knöpfe usw platziert. Nun erstelle ich mit
Delphi-Quellcode:
Funktioniert auch soweit wunderbar.
var frm_open : Tfrm_meinForm;
begin frm_open := Tfrm_meinForm.Create(frm_main); frm_open.ShowModal; end; Jetzt wollte ich beim öffenen des Forms noch ein paar Komponenten ausrichten:
Delphi-Quellcode:
Kann mir jemand helfen und sagen woran das liegt?
procedure Tfrm_meinForm.FormShow(Sender: TObject);
begin tc_graphen.Height := frm_meinForm.Height - 40; //Bekomme hier schon eine Exception da frm_meinForm.Height nicht gelesen werden kann end; |
Re: Form zur Laufzeit, FormShow
Hai LoL,
Zitat:
Wenn tc_graphen so hoch wie die Form sein soll auf der dies liegt kannst Du es so mache:
Delphi-Quellcode:
procedure Tfrm_meinForm.FormShow(Sender: TObject);
begin tc_graphen.Height := self.Height - 40; end; |
Re: Form zur Laufzeit, FormShow
Um das mal zu erklären, was Sharky geschrieben hat:
Du könntest ja mehere Instanzen deiner Form haben(Stichwort MDI). Woher soll dann die Klasse deiner Form wissen, welche Instanz angesprochen wird und wie die heißt? Deshalb gibt es 'self'. self verweist immer auf das Objekt, in dem sich die Mthode 'befindet'. mfg Christian |
Re: Form zur Laufzeit, FormShow
Hai Christian,
das kommt noch dazu. Aber LoL hat ja ausserdem in seiner ersten Unit eine Variable frm_open für seine Tfrm_meinForm genommen ;-) Ich denke mal er hat versucht auf die automatisch erzeuge Variable frm_meinForm in der zweiten Unit zuzugreifen. Diese ist aber (wenn es bei den Projektoptionen ausgeschaltet ist) nie "erzeugt" worden. Darum auch meine Frage wo diese denn herkommt :stupid: |
Re: Form zur Laufzeit, FormShow
Zitat:
Ich erledige das solche Sachen immer zwischen dem Create und dem Show(modal), dann passieren solche Fehler nicht ...
Delphi-Quellcode:
:hi:
var frm_open : Tfrm_meinForm;
begin frm_open := Tfrm_meinForm.Create(frm_main); With frm_open do begin tc_graphen.Height := Height - 40; ShowModal; end; end; Gruß am Alle .. |
Re: Form zur Laufzeit, FormShow
Das is es auch :)
Danke für eure Erläuterungen :thumb: |
Re: Form zur Laufzeit, FormShow
Zitat:
mfg Christian P.S.: Und dem Fall, dass man die Form selbst erzeugt, sollte man noch den Pointer(in dem Fall frm_mainForm) löschen. Dann bekommt man auch gleich vom Compiler die Meldung: "Kenn ich nicht...!" mfg Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz