AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form zur Laufzeit, FormShow

Ein Thema von LoL · begonnen am 7. Sep 2005 · letzter Beitrag vom 7. Sep 2005
Antwort Antwort
LoL
(Gast)

n/a Beiträge
 
#1

Form zur Laufzeit, FormShow

  Alt 7. Sep 2005, 01:04
Morgen ,

Ich habe mir mit Neu=>Formular ein Form gemacht darauf ein parr Knöpfe usw platziert. Nun erstelle ich mit
Delphi-Quellcode:
var frm_open : Tfrm_meinForm;
begin
  frm_open := Tfrm_meinForm.Create(frm_main);
  frm_open.ShowModal;
end;
Funktioniert auch soweit wunderbar.
Jetzt wollte ich beim öffenen des Forms noch ein paar Komponenten ausrichten:
Delphi-Quellcode:
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;
Kann mir jemand helfen und sagen woran das liegt?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Form zur Laufzeit, FormShow

  Alt 7. Sep 2005, 08:04
Hai LoL,
Zitat von LoL:
Code:
procedure Tfrm_meinForm.FormShow(Sender: TObject);
begin
  tc_graphen.Height := [color=red]frm_meinForm[/color].Height - 40;
end;
wo kommt denn frm_meinForm her?

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;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#3

Re: Form zur Laufzeit, FormShow

  Alt 7. Sep 2005, 08:15
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'. Delphi-Referenz durchsuchenself verweist immer auf das Objekt, in dem sich die Mthode 'befindet'.

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Form zur Laufzeit, FormShow

  Alt 7. Sep 2005, 08:23
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
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#5

Re: Form zur Laufzeit, FormShow

  Alt 7. Sep 2005, 08:42
Zitat von Sharky:
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
Das wird wahrscheinlich die Ursache sein ...

Ich erledige das solche Sachen immer zwischen dem Create und dem Show(modal),
dann passieren solche Fehler nicht ...

Delphi-Quellcode:
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 ..
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#6

Re: Form zur Laufzeit, FormShow

  Alt 7. Sep 2005, 10:02
Das is es auch
Danke für eure Erläuterungen
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#7

Re: Form zur Laufzeit, FormShow

  Alt 7. Sep 2005, 12:06
Zitat von Sharky:
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
Könntest Recht haben, bzw. hast Recht, denn so interpretiere ich Lols Post. Ich kann mich aber relativ gut rausreden, wenn ich sage: Ich wollt nur Self erklären...

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
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 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