Eine "Idee von Pascal Enz" zu den "richtigen" Dialogen findest Du
hier
Zur mittigen Positionierung habe ich es so abgewandelt:
Delphi-Quellcode:
// OldProcfuerOpendialog1: Dword globale Variable
//Idee von Pascal Enz
function DialogProc(
Handle: HWND; Msg: DWORD; wParam, lParam: Integer):Integer;
stdcall;
const
W = 683;
H = 512;
begin
if MSG = WM_SHOWWINDOW
then Begin
SendMessage(
Handle, WM_COMMAND, $A004, 0);
SendMessage(
Handle, WM_COMMAND, $A004, 0);
SetWindowPos(
Handle, 0,
Form.Left + (Form.Width
div 2) - (W
div 2),
Form.Top + (Form.Height
div 2) - (H
div 2),
W,
H,
0);
End;
Result := CallWindowProc(Pointer(OldProcForOpenSaveDialog),
Handle, Msg, wParam, lParam);
end;
Zu den MessageDialogen habe ich keine Lösung gefunden - würde mich aber auch noch interessieren.
stahli