InputBoxを手前に表示

解決


deldel  2005-08-30 01:50:14  No: 17297

メッセージボックスでしたら、
Application.MessageBox('AAA', 'BBB', MB_OK or MB_SYSTEMMODAL);
と書けば、他のアプリケーションより手前に表示させることができますが、
これと同じように、InputBoxを手前に表示させることはできないでしょうか?


むりじい  2005-08-30 17:43:51  No: 17298

ダンナ: 「おぃおぃ、そこのデシャバリ」
八兵衛: 「ん?あっしのことですかい?ダンナ」
ダンナ: 「そや、あんさんの他にはダレもおらんで」
八兵衛: 「ナンかご用ですかい、ダンナ」
ダンナ: 「ジャマや、ハヨゥひっこんでや」
八兵衛: 「そう言われも、ナニかがあっしのアシをおさえてるんで...」
ダンナ: 「つまらんダジャレ言うの、だじゃれ?」

  private
    procedure WMSpecial(var Msg: TMessage); Message WM_APP;

procedure TForm1.Button1Click(Sender: TObject);
begin
  PostMessage(Handle, WM_APP, 0, 0);
  InputBox('教えてぇな','あんさんの名前','奈々氏');
end;

procedure TForm1.WMSpecial(var Msg: TMessage);
var
  aDlg: TForm;
begin
  aDlg := nil;
  for i:=0 to Screen.FormCount-1 do begin
    if (Screen.Forms[i].ClassName = 'TForm')and
       (Screen.Forms[i].Caption = '教えてぇな') then aDlg := Screen.Forms[i];
  end;
  if Assigned(aDlg) then
    SetWindowPos(aDlg.Handle, HWND_TOPMOST, 0,0,0,0, SWP_NOSIZE or SWP_NOMOVE);
end;


deldel  2005-08-30 18:08:04  No: 17299

むりじいさん、ありがとうございました。
ばっちりでした。しかも、大変勉強になりました。
Screen.FormCount って知りませんでした^^;
PostMessage してから、InputBox を実行するのが
ミソなんですねぇ・・・


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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