![]() |
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'. ![]() 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 17:29 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