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.
MessageDlg ohne Fokus
-
- 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
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;