AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Wie kann ich auf Proceduren eines MDIChild-Forms zugreifen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich auf Proceduren eines MDIChild-Forms zugreifen?

Ein Thema von NetSonic · begonnen am 15. Aug 2007 · letzter Beitrag vom 16. Aug 2007
Antwort Antwort
NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Wie kann ich auf Proceduren eines MDIChild-Forms zugreifen?

  Alt 15. Aug 2007, 11:27
Hallo zusammen.

Ich muss / will von einer MDI-Child-Form auf eine globale Procedure eines anderen MDI-Childs zugreifen. Wie mach ich das am besten.
Ein beliebiges MDI-Child schließe ich von der MDI-Form so...

Delphi-Quellcode:
procedure TfrmMain.CloseMDIChild(strChildName: String);
var
  i: Integer;
begin
     for i := 0 to frmMain.MDIChildCount - 1 do
     begin
          if (frmMain.MDIChildren[i].Name = strChildName) then
          begin
               frmMain.MDIChildren[i].Close;
               break;
          end;
     end;
end;
kann man das als Grundlage nehmen? Wenn ich es folgermaßen aufbaue...

Delphi-Quellcode:
procedure TfrmMain.MDIChildRunProcedure(strChildName: String);
var
  i: Integer;
begin
     for i := 0 to frmMain.MDIChildCount - 1 do
     begin
          if (frmMain.MDIChildren[i].Name = strChildName) then
          begin
               frmMain.MDIChildren[i].btnCancelProcedure(Self);
               break;
          end;
     end;
end;
kennt er natürlich diesen aufruf von "btnCancelProcedure" nicht, da das MDI-Child noch nicht erzeugt wurde...

wie kann man das am besten bewerkstelligen?

MfG
NetSonic
  Mit Zitat antworten Zitat
Cappuccino

Registriert seit: 25. Okt 2006
68 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Wie kann ich auf Proceduren eines MDIChild-Forms zugreif

  Alt 15. Aug 2007, 11:50
Hi,
ob das Objekt existiert kannst du immer abfragen mit

if Assigned(frmMain.MDIChildren[i])
then ..
else exit ..

Wenn ein Objekt / Form gelöscht wird, musst du dann präventiv auch die Variable auf nil setzen,
also nach dem Close dann
frmMain.MDIChildren[i] := nil setzen, um die Abfrage von oben wieder verwenden zu können.

Gruß
Tom
  Mit Zitat antworten Zitat
NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#3

Re: Wie kann ich auf Proceduren eines MDIChild-Forms zugreif

  Alt 15. Aug 2007, 12:15
Das ist ja soweit auch in ordnung...

aber im Quellcode kennt er frmMain.MDIChildren[i].btnCancelProcedure(Self); nicht, weil das Child-Formular nocht nicht existiert und erst zur Laufzeit erzeugt wird. Deswegen ich kann nicht compilieren. Ich möchte ja die dem MDI-Form nicht bekannte Procedure vom MDI-Child aufrufen...
  Mit Zitat antworten Zitat
Benutzerbild von bigg
bigg

Registriert seit: 1. Jul 2007
155 Beiträge
 
#4

Re: Wie kann ich auf Proceduren eines MDIChild-Forms zugreif

  Alt 15. Aug 2007, 12:38
Das was du suchst nennt sich TypeCasting. Um auf die Methoden zuzugreifen, musst du den Klassennamen voranstellen und einklammern.

Beispiel: TMDiChild(MainForm.MDiChildren[i]).Methode();
  Mit Zitat antworten Zitat
NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#5

Re: Wie kann ich auf Proceduren eines MDIChild-Forms zugreif

  Alt 16. Aug 2007, 08:02
Wunderbar! Mit TypeCasting funktioniert das ganze so, wie ich es haben wollte.
Danke für den Tip...
  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 17:05 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