![]() |
Bestimmtes MDI-Child finden... ?!?
Hallo zusammen!
Folgendes Problem: Ich habe eine MDI Applikation, in der mehrere MDI-Childs offen sind, davon ist logischer weise nur eins aktiv... von diesem möchte ich nach einem bestimmten Child namens "Hugo" suchen, die Form "Hugo" kann aber mehrfach offen sein, also bräuchte ich noch die "z-Order" von den offenen MDI-Childs, so das ich quasi den zu letzt geöffenten "Hugo" finde! Hat das von Euch schon mal jemand gemacht?!? Wäre Euch echt dankbar, wenn Ihr mir helfen könntet! Gruss lorrey |
Re: Bestimmtes MDI-Child finden... ?!?
Hi lorrey,
Delphi-Quellcode:
MfG
for i := Pred(MDIChildCount) downto 0 do
if MDIChildren[i].ClassName = 'Hugo' then begin ShowMessage('Hugo gefunden!'); Break; end; Stevie |
Re: Bestimmtes MDI-Child finden... ?!?
Hi Stevie!
Danke für die schnelle Hilfe! Ich musste nur die Schleife rum drehen dann ging es... !!! (Wenn man runter zählt, gibt er leider nicht den letzten aktiven aus)
Code:
So geht es auf jeden Fall - vielen DANK!
for i := 0 to MDIChildCount -1 do
|
Re: Bestimmtes MDI-Child finden... ?!?
Oh, ich dachte, er fügt das letzte immer hinten an... :oops:
|
Re: Bestimmtes MDI-Child finden... ?!?
Hi,
das zuletzt erstellte kannst du finden, indem du so vorgehst:
Delphi-Quellcode:
Viel Spaß,
// THugoForm ist deine Formklasse und braucht eine public-eigenschaft CreateTime:TDateTime;
function TForm1.FindLastChild:THugoForm; var times:array of TDateTime; c:integer; begin ins:=1; for c:=0 to (MDIChildCount-1) do if (MDIChildren[c] is THugoForm) then Inc(ins); SetLength(times,ins); for c:=0 to (MDIChildCount-1) do if (MDIChildren[c] is THugoForm) then times[c]:=THugoForm(MDIChildren[c]).CreateTime; // Damit ich nicht alles vorkaue, darfst du die Liste selbst sortieren lassen ;) // Das letzte oder erste Item, je nachdem wie du sortierst übergibst du dann als Ergebnis if (length(times) > 0) then result:=nil else result:=times[0]; end; // Aufgerufen wird die Funktion mit: procedure TForm1.Test; var letzteform:THugoForm; begin letzteform:=FindLastChild; // irgendwas mit letzteform machen end; cu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:41 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