Die Unit "Dialogs" stellt verschiedene Varianten der Funktion "MessageDlg" zur Verfügung. Die würde ich gerne verwenden, um Benutzermeldungen auszugeben (also z.B. irgendwelche Infos oder Warnungen oder Meldungen). Dummerweise ist das erscheinenden Fenster aber nicht modal. D.h. der Benutzer klickt irgendwo ins aufrufende Fenster, somit verschwindet die Meldung, die Signalverarbeitung für das aufrufende Fenster ist aber trotzdem blockiert.
Wie kann ich das umgehen? Thanks!
MessageDlg modal?
-
- Beiträge: 22
- Registriert: Di 19. Okt 2010, 17:23
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Kaiserstuhl
MessageDlg modal?
Wer mehr denkt hat mehr vom Hirn...
Re: MessageDlg modal?
Ich kann das Verhalten nicht bestätigen. Unter Win7, Lazarus 1.0.12 wird das Fenster angezeigt und bekommt den Focus. Ein Klick auf die aufrufende Form funktioniert nicht, da diese inaktiv gesetzt ist:
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Das ist eine Message');
//oder
MessageDlg('Das ist eine Message', mtError, [mbYes], 0);
end;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: MessageDlg modal?
Ich kann das beschrieben Verhalten nicht reproduzieren mit
Lazarus 1.3 r43392M FPC 2.7.1 x86_64-linux-gtk 2
auf OpenSuse KDE.
Es funktioniert modal hier.
Lazarus 1.3 r43392M FPC 2.7.1 x86_64-linux-gtk 2
auf OpenSuse KDE.
Es funktioniert modal hier.