Also ich löse das bei mir folgendermassen:
Delphi-Quellcode:
function MessageDialog(const Msg: string;
DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons;
const HelpFileName: String;
HelpCtx: Longint;
Default: String): Integer;
var
ActForm : TCustomForm;
begin
with CreateMessageDialog(Msg, DlgType, Buttons) do
try
Font.Name := 'MS Shell Dlg';
HelpContext := HelpCtx;
HelpFile := HelpFileName;
ActForm := Screen.ActiveForm;
If ActForm = nil then
begin
Position := poMainFormCenter;
end
else
begin
Left := Round (ActForm.Left + ((ActForm.Width div 2) - (Width div 2)));
Top := Round (ActForm.Top + ((ActForm.Height div 2) - (Height div 2)));
end;
ActiveControl := TButton(FindComponent(Default));
Result := ShowModal;
finally
Free;
end;
end;
Dadurch zentriert sich die Hinweisbox immer auf dem Fenster meiner Anwendung. Und ich kann einen bestimmten Button als Default deklarieren.