Zitat von
DKamps:
ShowModal geht nur, wenn das Formular nicht bereits mit Show geöffnet ist.
Wir haben etwas ananeinander vorbei gemailt, Formx.ShowModal soll Formx.Show ersetzen und nicht die Ereignisprozedur beim Anzeigen des Formulars FormShow.
ursprünglicher Code :
Code:
procedure TLiefStamm.Button2Click(Sender: TObject);
begin
IF NOT LiefModul.LiefDS.IsEmpty THEN BEGIN
IF LiefModul.LiefDS.Modified THEN BEGIN
if MessageDlg('Soll der Datensatz gespeichert werden ?',
mtInformation, [mbYes, mbNo, mbCancel], 0) = mrYes then begin
LiefModul.LiefDS.post;
LiefModul.TransAction.Commit;
END
ELSE
LiefModul.Transaction.Rollback;
END
ELSE
LiefModul.Transaction.Rollback;
END;
// showmessage ('1Ä');
LiefStamm.FormShow (Sender);
end;
Ergebnis : Trotz FormShow wird Programm einfach beendet, ohne Fehlermeldung
Code:
ELSE
LiefModul.Transaction.Rollback;
END
ELSE
LiefModul.Transaction.Rollback;
END;
showmessage ('1Ä');
LiefStamm.FormShow (Sender);
end;
Ergebnis: Alles klappt, Unterschied : Showmessage vor FormShow nicht auskommentiert!
Code:
ELSE
LiefModul.Transaction.Rollback;
END
ELSE
LiefModul.Transaction.Rollback;
END;
LiefStamm.ShowModal;
end;
Ergebnis : "Cannot make a visible window modal". Anfang der Prozedur, siehe oben, jeweils gleich.
Gruß
Hansa