パネルのイメージをキャプチャする必要があります。コンボボックスでパネルのイメージを取得するには
私が取り組んでいる問題は、パネルにTComboboxが含まれているとテキストが表示されないということです。
procedure AssignPanelImageToPicture(Panel : TPanel;Image : TImage);
var
B : TBitmap;
begin
B := TBitmap.Create;
try
B.Width := Panel.Width;
B.Height := Panel.Height;
B.Canvas.Lock;
Panel.PaintTo(B.Canvas.Handle,0,0);
B.Canvas.Unlock;
Image1.Picture.Assign(B);
finally
B.Free;
end;
end;
このコードを使用して、TComboBoxを含むパネルをドロップします。次に、テキストプロパティに値を入力します。私はまた、次の2つのTImageをドロップします。次に、上記の コードを呼び出すためのボタンを追加します。ここで
は結果である:
は、パネルの真の画像をキャプチャするための良い方法はあります。
コンボボックスはWindowsによって描画されるため、リダイレクト手法(Panel.PaintTo、コントロールに別の場所にペイントするよう指示する)は機能しません。 FORM全体をビットマップとして取得できますが、1つのパネルで実行可能な手法はわかりません。多分これは助けます:http://www.bitwisemag.com/copy/delphi/delphi1.html –
TForm.GetFormImageは同じ問題に似ています。それはほぼ同じコードです。私は、画面全体をキャプチャし、その後、希望の矩形をコピーするが、あまりにも多くのオーバーヘッドのように思えます。画面キャプチャコードは次の場所にあります:http://code.google.com/p/robstechcorner/source/browse/trunk/Delphi/utils/SCapture.pas –