![]() |
Wie kann ich auf Proceduren eines MDIChild-Forms zugreifen?
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:
kann man das als Grundlage nehmen? Wenn ich es folgermaßen aufbaue...
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;
Delphi-Quellcode:
kennt er natürlich diesen aufruf von "btnCancelProcedure" nicht, da das MDI-Child noch nicht erzeugt wurde...
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; wie kann man das am besten bewerkstelligen? MfG NetSonic |
Re: Wie kann ich auf Proceduren eines MDIChild-Forms zugreif
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 |
Re: Wie kann ich auf Proceduren eines MDIChild-Forms zugreif
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... |
Re: Wie kann ich auf Proceduren eines MDIChild-Forms zugreif
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(); |
Re: Wie kann ich auf Proceduren eines MDIChild-Forms zugreif
Wunderbar! Mit TypeCasting funktioniert das ganze so, wie ich es haben wollte.
Danke für den Tip... :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 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-2025 by Thomas Breitkreuz