メッセージボックスでしたら、
Application.MessageBox('AAA', 'BBB', MB_OK or MB_SYSTEMMODAL);
と書けば、他のアプリケーションより手前に表示させることができますが、
これと同じように、InputBoxを手前に表示させることはできないでしょうか?
ダンナ: 「おぃおぃ、そこのデシャバリ」
八兵衛: 「ん?あっしのことですかい?ダンナ」
ダンナ: 「そや、あんさんの他にはダレもおらんで」
八兵衛: 「ナンかご用ですかい、ダンナ」
ダンナ: 「ジャマや、ハヨゥひっこんでや」
八兵衛: 「そう言われも、ナニかがあっしのアシをおさえてるんで...」
ダンナ: 「つまらんダジャレ言うの、だじゃれ?」
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;
むりじいさん、ありがとうございました。
ばっちりでした。しかも、大変勉強になりました。
Screen.FormCount って知りませんでした^^;
PostMessage してから、InputBox を実行するのが
ミソなんですねぇ・・・
ツイート | ![]() |