AGB  ·  Datenschutz  ·  Impressum  







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

Methoden des anderen Child-Forms aufrufen

Ein Thema von aschne1 · begonnen am 27. Okt 2005 · letzter Beitrag vom 28. Okt 2005
Antwort Antwort
aschne1

Registriert seit: 18. Jul 2004
Ort: Davos
64 Beiträge
 
Delphi 2005 Professional
 
#1

Methoden des anderen Child-Forms aufrufen

  Alt 27. Okt 2005, 22:18
Hallo

Ich habe ein Hauptform mit zwei Panels (in Wirklichkeit sind es mehr Panels). In jedes Panel wird zur Laufzeit ein unterschiedliches Form erzeugt. Es existiert maximal 1 Instanz jedes Child-Forms.
Wenn ich nun per Code des einen Child-Formulars auf das andere Child-Formular zugreife (Methode oder Komponente) dann erzeugt mein Programm einen Runtime-Error.

Beispiel Aufruf aus ChildForm1:
ChildForm2.Label1.Caption := 'Hallo';
Wie greife ich richtig auf das andere Formular zu?


Gruss + Danke
Armin
aschne1
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Methoden des anderen Child-Forms aufrufen

  Alt 28. Okt 2005, 05:55
Vielleicht hast du ChildForm2 garnicht initialisiert...

Grüße vom marabu
  Mit Zitat antworten Zitat
aschne1

Registriert seit: 18. Jul 2004
Ort: Davos
64 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Methoden des anderen Child-Forms aufrufen

  Alt 28. Okt 2005, 07:19
@marabu

Alle drei Formulare (1*Main + 2*Child) sind sichtbar. ChildForm2 wird mit Create erzeugt und einem entsprchenden Parent zugewiesen.

Zudem wird das angesprochene ChildForm2 gesucht und bei Erfolg der entsprechende Code ausgeführt. Ich denke schon, dass dann ChildForm2 initialisiert ist, oder ?

Gruss
Angehängte Dateien
Dateityp: rar test_458.rar (17,8 KB, 6x aufgerufen)
Armin
aschne1
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Methoden des anderen Child-Forms aufrufen

  Alt 28. Okt 2005, 18:35
Moin moin,

habe dir auch schon per PN geschickt....
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
  i:Integer;
begin
  for i := 0 to Form1.ComponentCount-1 do // Alle Komponenten des Hauptformular durchsuchen
    if Form1.Components[i].ClassType = TForm3 then
       with TForm3(Form1.Components[i]) do // <-- Die Zeile hat dir gefehlt bzw. deine "fehlerhafte" Zeile mit
                                             // TForm3(Form1.Components[i]).Label1.Caption := 'Uhrzeit: '+ TimeToStr(now());
                                             // ersetzen, funktioniert auch
         Label1.Caption := 'Uhrzeit: '+ TimeToStr(now()); // Diese Anweisung erzeugt den Fehler

// Form3.Button1Click(Self); // Diese Anweisung erzeugt den Fehler
end;

// Hier wird das gleiche gemacht wie bei Btn1
procedure TForm2.Button2Click(Sender: TObject);
begin
   // Prüfen, ob Klasse von TForm3, falls Form3 noch nicht erzeugt wurde
   // gibt der Click auf den Button keinen Fehler aus...
   if Form1.FindComponent('Form3') is TForm3 then
   // Wenn ja, dann können wir Casten
      TForm3(Form1.FindComponent('Form3')).Label1.Caption := 'Huhu';
end;
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
aschne1

Registriert seit: 18. Jul 2004
Ort: Davos
64 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Methoden des anderen Child-Forms aufrufen

  Alt 28. Okt 2005, 21:18
Hallo Peter

Läuft prima!! Danke Dir.


Gruss
Armin
aschne1
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Methoden des anderen Child-Forms aufrufen

  Alt 28. Okt 2005, 23:10
anstelle von
if Form1.Components[i].ClassType = TForm3 then kann man auch
if Form1.Components[i] is TForm3 then verwenden.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 11:22 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