2012-05-24 17 views
6

高さが画面の垂直解像度よりも大きいTFormオブジェクトがあります。サイズが画面サイズよりも大きいフォームのスクリーンショット

何らかの理由で、Windowsはフォームの表示(クライアント?)領域が画面解像度を超えることを許可しないため、フォームに垂直スクロールバーが表示されます。

フォームのすべてのコンテンツが表示されるように、フォーム全体(スクロールバーとすべてのフォームコンポーネントが表示されます)のTBitmapイメージまたはスクリーンショットを取得するにはどうすればよいですか?

+0

['GetFormImage'](http://docwiki.embarcadero.com/Libraries/en/Vcl.Forms.TCustomForm.GetFormImage)メソッドを試しましたか? ; – RRUZ

+0

うん、 'GetFormImage'は私たちが現在使っているものです。 – ardnew

+0

たとえば、 'TForm'オブジェクトを作成し、多くの垂直方向のコンテンツを配置して、(有効な)垂直スクロールバーが自動的に表示されるようにします。コンテンツの高さの合計が垂直画面解像度を超える必要があります。 GetFormImageを呼び出すと、より低いコンテンツは破棄されます。 – ardnew

答えて

8

最初に、フォームにスクロールバーがないことを確認する必要があります。そのためには、FormConstrainedResizeのイベントハンドラを記述し、必要に応じてMaxWidthとMaxHeightを調整します。デザイン時にフォームサイズが制限されている場合は、FormCreateイベントの必要な幅と高さを目的の値に設定します。

これでGetFormImageを使用してスクリーンショットを取得できます。

+0

優秀、ありがとうございます。 – ardnew

関連する問題