MessageDlg modal?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
linus
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?

Beitrag von linus »

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!
Wer mehr denkt hat mehr vom Hirn...

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: MessageDlg modal?

Beitrag von Michl »

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;  

linus
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

Re: MessageDlg modal?

Beitrag von linus »

Sorry - BS ist Suse-Linux
Wer mehr denkt hat mehr vom Hirn...

Benutzeravatar
theo
Beiträge: 10861
Registriert: Mo 11. Sep 2006, 19:01

Re: MessageDlg modal?

Beitrag von theo »

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.

Antworten