• ベストアンサー

Delphiのウィンドウサイズ変更

Delphi 6でウィンドウサイズを変更(最大化)する方法で詰まっています。 直接WidthとHeightの値を指定する方法もあると思うのですが、画面の最大サイズが判っていないとならないため都度画面サイズを調べなければなりません。ウィンドウの最大化ボタンを押したときのように最大化する方法は無いのでしょうか。VC++にはあったのですが… 開発環境:WindowsXP、Delphi6 Personal

質問者が選んだベストアンサー

  • ベストアンサー
  • bob_n
  • ベストアンサー率35% (610/1732)
回答No.1

Form1.Width:=Screen.Width; Form1.Height:=Screen.Height; で大丈夫のはずです。

hello_world
質問者

お礼

bob_nさん回答ありがとうございます。 Screenですか。こう言うオブジェクトがあったんですね。言われるとなるほど、なのですがなかなか気づきませんでした。 ちなみにwebで最大化をキーワードに調べると大抵「wsMaximized」が出てくるのですが、VC++のようにSendMessage()で最大化メッセージを送ることはできないのでしょうか?もしご存知でしたら教えてください。

その他の回答 (3)

  • bob_n
  • ベストアンサー率35% (610/1732)
回答No.4

...\Borland\Delphi6\Source\Rtl\Win にWindows.pasがあります。 ファイルから開くでWindows.pasを開けば出てくるので 検索で、Sendmessageをだせば、でてくるはずです。 ほかの、APIもだいたい、あるはずなので、同じように使えます。 screenだとタスクバーの分を引けるので、下の部分などが隠れなくなると思います。(経験談です)

hello_world
質問者

お礼

おぉっ、確かにあります。 これならVC++での経験を活かせそうな気がします。 追加の質問にわざわざ回答していただいてありがとうございました。

  • galoon
  • ベストアンサー率28% (38/133)
回答No.3

WindowStateではない方法なのですね、失礼しました。 SendMessage()はそのままずばり関数が用意されていますので SendMessage(Form1.Handle, WM_****, パラメータ, パラメータ) で利用できます。 特殊なメッセージでなければ特にメッセージ処理を追加・修正する必要もないでしょう。 ※個人的に最大化動作後の期待しない動作っていうのが気になるw

hello_world
質問者

お礼

こちらこそ本当に失礼しました。 SendMessage()の情報ありがとうございます。 ※最大後の動作に関してはもしかしたら僕の勘違いかもしれませんが直接サイズ指定と動作が若干異なるように思えるのです。

  • galoon
  • ベストアンサー率28% (38/133)
回答No.2

formのプロパティにある「WindowState」を、「wsMaximized」にすればまさしく最大化ボタン押下と同じ動作をします。 Form1.WindowState := wsMaximized;

hello_world
質問者

お礼

galoonさん回答ありがとうございます。 wsMaxmizedはwebで調べて試しており最大化はするのですが、最大化後の動作がちょっと期待している動作と違っていたので方法からは外していました(この事は質問に書いておくべきでした、すみません)。

関連するQ&A