Savedialogのwindowを画面の中央に出るようにしたい。

解決


AS  2020-08-01 14:19:38  No: 148965

アプリを画面の下のほうに隠していて、つい「X」を押して、closeできなくなります。

これを避けるために、Savedialogのwindowを画面の中央に出るようにしたいのですが、

オブジェクトインスペクタを見てもよく分かりません。

どこを見らたいいのか、分かる人がいたら教えてください。

よろしくお願いします。


AAA  2020-08-04 21:16:13  No: 148972

どちらかかな

procedure TForm1.SaveDialog1FolderChange(Sender: TObject);
var
    H: HWND;
    R: TRECT;
    L,T: Integer;
begin
    H := FindWindow (nil,'名前を付けて保存');
    GetWindowRect(H,R);
    L := (Screen.Width  - R.Width ) div 2;
    T := (Screen.Height - R.Height) div 2;
    SetWindowPos (H,0,L,T,R.Width,R.Height,SW_SHOW);
end;

----------------------------------------------------------------

Timer1.Interval = 1

procedure TForm1.SaveDialog1Show(Sender: TObject);
begin
  Timer1.Enabled  := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
    H: HWND;
    R: TRECT;
    L,T: Integer;
begin
    H := FindWindow (nil,'名前を付けて保存');
    GetWindowRect(H,R);
    L := (Screen.Width  - R.Width ) div 2;
    T := (Screen.Height - R.Height) div 2;
    SetWindowPos (H,0,L,T,R.Width,R.Height,SW_SHOW);
    Timer1.Enabled := False;
end;


AS  2020-08-04 23:11:15  No: 148977

ありがとうございました。

時間がなくて見るのが遅くなりました。

また、よろしくお願いします。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加