MessageDlg ohne Fokus

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

MessageDlg ohne Fokus

Beitrag von Scotty »

Gibt es einen fertigen Ja/Nein-Dialog, der nicht versehentlich per Space, Enter, Escape beendet werden kann, also keinen Fokus hat?

MessageDlg('1','2',mtConfirmation,[mbYes,mbNo],0,mbIgnore); und with CreateMessageDialog()... ActiveControl:=nil funktioniert offensichtlich deswegen nicht, weil irgendetwas den Fokus bekommen muss.

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: MessageDlg ohne Fokus

Beitrag von Scotty »

Mein wüster Hack als Zwischenlösung ;-)

Code: Alles auswählen

function MessageDlgNoFocus(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons):integer;
var
  aButton:TButton;
  aForm:TForm;
begin
  aForm:=CreateMessageDialog(Msg,DlgType,Buttons);
  with aForm do
  try
    aButton:=TButton.Create(aForm);
    aButton.Parent:=aForm;
    aButton.SetBounds(1000,0,0,0);
    ActiveControl:=aButton;
    CancelControl:=nil;
    Result:=ShowModal;
  finally
    aButton.free;
    aForm.Free;
  end;
end;

Antworten