Formをディスクトップ画面上のある位置に固定して移動不可にしたいです.
何か良い方法ありませんか.
FormをMaxにするとか,BorderStyleをbsNoneに指定する以外の方法です.
ちなみに今の設定は,
With Form1 do
begin
Width := 640;
Height := 480;
Left := 100;
Top := 100;
FormStyle := fsNormal;
BorderStyle := bsDialog;
end;
となっています.
こんなのどうでしょう。
DeleteMenu(GetSystemMenu(Self.Handle, False), SC_MOVE, MF_BYCOMMAND);
大きさ変更不可
procedure WMGETMINMAXINFO(var Msg: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;
procedure TForm1.WMGETMINMAXINFO(var Msg: TWMGetMinMaxInfo);
begin
inherited;
Msg.MinMaxInfo^.ptMinTrackSize.x := 640;
Msg.MinMaxInfo^.ptMaxTrackSize.x := 640;
Msg.MinMaxInfo^.ptMinTrackSize.y := 480;
Msg.MinMaxInfo^.ptMaxTrackSize.y := 480;
end;
>大きさ変更不可
FormのConstraintsプロパティでMaxとMinを同じにする事でも実現可能です。
deldelさん
大きさ変更不可ではなく,Formの移動不可ですね.
めじなさん
APIを利用すると簡単にいけますね.ありがとうございます.
可能でありましたら,MF_BYCOMMANDの意味を教えていただけますか.
検索しても良いページがなかなか引っかからないので...
> パラメータはアイテム ID
http://yokohama.cool.ne.jp/chokuto/urawaza/api/DeleteMenu.html
MSDN見て頂ければ分かりますよ。
こんなサイトもあります。
http://www.geocities.jp/asumaroyuumaro/program/winapi/menu.html#6
めじなさん,URLさん
貴重な情報ありがとうございます.解決です.
あらら、すみません。移動不可でしたか・・・
でも、サイズを変更していくと移動も行われますが、
それはいいのかな?
ツイート | ![]() |