Autor Beitrag
UWER
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79

SUSE 8.1, XP Home
D7 Prof. , Kylix 3
BeitragVerfasst: Di 18.03.03 09:27 
Hallo Leute,

ich muß auf MDIChildren zugreifen um allen Fenstern z.B. den Befehl zum Schließen zu geben oder ähnliches. Dabei habe ich damit zu kämpfen das ich bestimmte Fenster dabei in den Vordergrund holen muß und sich dadurch immer wieder meine Reihenfolge verschiebt. Kann man das irgendwie abschalten oder fällt irgendjemand eine andere Lösung ein wie ich Zugriff auf die Fenster habe.

Gruß
UweR
delphiDeveloper
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Di 18.03.03 13:56 
Titel: Probleme mit MDI Children
Ich hatte mal ein ähnliches problem und habe das wie folgt geloest.
////////////////////////////////////////////////////////////////////////////
procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Canclose := CloseQuery;
end;
/////////////////////////////////////////////////////////////////////////

function TFormMain.CloseQuery: boolean;
var
anz_mdi, i: integer;
begin

if MessageDlg('Programm beenden?',
mtConfirmation, [mbYes, mbNo], 0) <> mrYes then
exit;

anz_mdi := (FormMain.MDIChildCount - 1);
// Close verändert MDIChildCount, daher nicht in For-Schleifen-Kopf!!!

for i := anz_mdi downto 0 do
try
if FormMain.MDIChildren[i].CloseQuery then
begin
FormMain.MDIChildren[i].Close;
FormMain.MDIChildren[i].Free; // Sonst läuft MDIChildCount nicht sauber
result := true;
end;
except
result := false;

// evtl. hier Fehler in Seq.-Datei Protokollieren;
end;


end;
///////////////////////////////////////////////////////////////