In meinem Projekt habe ich auch die Notwendigkeit, ein
MDI-Child unter Umständen mal modal anzuzeigen. Konkreter: Es ist ein Such-Fenster. Wenn ich normal suche ist es ein
MDI-Child, wenn ich für einen Wert einen Datensatz suche ist es ein modales Fenster.
Lösung bei mir:
Delphi-Quellcode:
procedure TvSucheAngebot.setModal(modal: boolean);
begin
inherited;
if modal then begin
formStyle := fsNormal;
caption := 'Angebot zuweisen';
BorderIcons := BorderIcons - [biSystemMenu];
visible := false;
end else begin
formStyle := fsMDIChild;
caption := 'Angebote suchen';
BorderIcons := BorderIcons + [biSystemMenu];
visible := true;
end;
end;
Und dann entsprechend vorher setModal aufrufen und entweder .show oder .showmodal
Das könnte man sicher noch eleganter lösen, aber so funktionierts bei mir.