Hallo marabu,
danke erst einmal für deine Antwort. Das war natürlich prinzipiell ein guter Tipp das ganze einmal ausserhalb der eigenen (möglicherweise fehlerhaften) Anwendung zu testen.
Ich habe also auch bei mir das Beispiel zu
MDI-Anwendungen geöffnet (C:\Programme\Borland\Delphi5\Objrepos\Mdiapp\mdia pp.dpr) und im Kindfenster für das OnClick-Ereignis der Memo-Komponente den Menüpunkt Edit1 des Hauptformulars deaktiviert. Und siehe da, dass X (Close) des Systemmenüs wird grau.
Delphi-Quellcode:
procedure TMDIChild.Memo1Click(Sender: TObject);
begin
MainForm.Edit1.Enabled := not MainForm.Edit1.Enabled;
end;
Wichtig ist, dass das Kindfenster
maximiert ist. Im Normalen Fensterzustand tritt das ganze nicht auf.
Sieht also doch so aus, als wenn es sich um einen generellen Bug handelt?
Aber selbst wenn es ein genereller Bug ist. Wie könnte ich es verhindern bzw. das Close Menü wieder aktivieren. Ich habe es mit folgendem Code versucht:
Delphi-Quellcode:
procedure TMDIChild.Button1Click(Sender: TObject);
var
MenuHandle: HMenu;
begin
MenuHandle := GetSystemMenu(Self.Handle,False);
EnableMenuItem(MenuHandle,SC_CLOSE,MF_BYCOMMAND and not MF_GRAYED);
end;
Aber der scheint keine Auswirkungen auf das Systemmenü des Kindfensters zu haben.
Viele Grüße
Ronald