Delphi 2009で発生した問題をTImage.Canvas
、次の再現可能なケースに絞り込みました。
与えられた: フォーム、TImage
、TLabel
およびそのTButton
上。はTImage
4 つのエッジすべてに固定されているため、フォームのサイズを変更すると のサイズも変更されTImage
ます。私ができるようにしたいのはImage1
、サイズ変更後に利用できる最大の領域を描画することです。したがって、私のテストケースでは、ボタンのOnClick
ハンドラー
に次のコードがあります。
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:= IntToStr (Image1.Width)+' x '+IntToStr(Image1.Height);
Image1.Canvas.Pen.Color:= 0;
Image1.Canvas.Rectangle(0,0,Image1.Width, Image1.Height);
end;
Image1.Width
フォームのサイズを.Height
変更すると、期待どおりに変更される
ことがわかりますが、サイズ変更されたフォームが元のフォームよりも大きい場合に描画される四角形は不完全になり、以前と同じ領域にのみ描画されます。
サイズ変更された領域全体を使用するにはどうすればよいですか?
価値があるのは、私が遊んだ元の問題でImage1.Stretch
、サイズ変更時により多くの領域を使用できますが、図面が歪んでしまいます(望ましくありません)。も使用する場合はImage1.Proportional
、より良いですが、使用可能な領域をすべて使用することはできません。Image1.AutoSize
私にとっても何の役にも立たないようです。
どんな助けでも感謝します。