- ベストアンサー
Delphiのウィンドウサイズ変更
Delphi 6でウィンドウサイズを変更(最大化)する方法で詰まっています。 直接WidthとHeightの値を指定する方法もあると思うのですが、画面の最大サイズが判っていないとならないため都度画面サイズを調べなければなりません。ウィンドウの最大化ボタンを押したときのように最大化する方法は無いのでしょうか。VC++にはあったのですが… 開発環境:WindowsXP、Delphi6 Personal
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Form1.Width:=Screen.Width; Form1.Height:=Screen.Height; で大丈夫のはずです。
その他の回答 (3)
- bob_n
- ベストアンサー率35% (610/1732)
...\Borland\Delphi6\Source\Rtl\Win にWindows.pasがあります。 ファイルから開くでWindows.pasを開けば出てくるので 検索で、Sendmessageをだせば、でてくるはずです。 ほかの、APIもだいたい、あるはずなので、同じように使えます。 screenだとタスクバーの分を引けるので、下の部分などが隠れなくなると思います。(経験談です)
お礼
おぉっ、確かにあります。 これならVC++での経験を活かせそうな気がします。 追加の質問にわざわざ回答していただいてありがとうございました。
- galoon
- ベストアンサー率28% (38/133)
WindowStateではない方法なのですね、失礼しました。 SendMessage()はそのままずばり関数が用意されていますので SendMessage(Form1.Handle, WM_****, パラメータ, パラメータ) で利用できます。 特殊なメッセージでなければ特にメッセージ処理を追加・修正する必要もないでしょう。 ※個人的に最大化動作後の期待しない動作っていうのが気になるw
お礼
こちらこそ本当に失礼しました。 SendMessage()の情報ありがとうございます。 ※最大後の動作に関してはもしかしたら僕の勘違いかもしれませんが直接サイズ指定と動作が若干異なるように思えるのです。
- galoon
- ベストアンサー率28% (38/133)
formのプロパティにある「WindowState」を、「wsMaximized」にすればまさしく最大化ボタン押下と同じ動作をします。 Form1.WindowState := wsMaximized;
お礼
galoonさん回答ありがとうございます。 wsMaxmizedはwebで調べて試しており最大化はするのですが、最大化後の動作がちょっと期待している動作と違っていたので方法からは外していました(この事は質問に書いておくべきでした、すみません)。
お礼
bob_nさん回答ありがとうございます。 Screenですか。こう言うオブジェクトがあったんですね。言われるとなるほど、なのですがなかなか気づきませんでした。 ちなみにwebで最大化をキーワードに調べると大抵「wsMaximized」が出てくるのですが、VC++のようにSendMessage()で最大化メッセージを送ることはできないのでしょうか?もしご存知でしたら教えてください。