掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
生成したTImageの幅と高さを設定するには? (ID:20677)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
この掲示板でいろいろ教えていただてプログラムを進めることができています。ありがとうございます。 現在、TImageを動的に生成して、そこに線を引くことにトライしています。 次のようなことをしたいと考えています。 1)TImageを動的に生成し、配置する 2)動的に生成したTImageのサイズを例えば400,400に指定する 3)(0,0)-(200,200)に線を引く ところが、(100,100)ぐらいまでしか線を引けません。 Width, Height を400,400にセットして、Stretch := True にすると、線がドット状の荒いものになってしまいます。 細い線を引きたいので、この方法はNGとわかりました。 ボーランドのサイトで調べてみると次のように書かれています。 ===== TImage の Width と Hight を変更してもサイズが変わらない -------------------------------------------------------------------------------- 該当するバージョン:Delphi 1.0、Delphi 2.0 Delphi 3.0/Delphi 3.1, Delphi 4 TImage コンポーネントを TPaintBox のように使用して描画を行っているのですが Width と Height の値を大きくしても,TPaintBox のようにサイズが変わらないのですがどうすればよいでしょうか? 基本的には TPaintBox を使用してください。TImage で行うには作成時に最大のサイズにしておき,必要なサイズに再指定して使用するような方法がありますが,最大のサイズが予想できない場合には適しません。 Image1 := TImage.Create(Form1) ; with Image1 do begin Parent := Form1 ; Width := Form1.Width ; Height := Form1.Height ; Canvas.MoveTo(0,0) ; Width := 200 ; Height := 200 ; end: ===== 作成時に大きなサイズにしておけば良さそうなので、やってみましたが、やはり変わらず(100,100)ぐらいしか線を引けません。 そこで、ソースを調べてみたところTImage.Createに次のコードがありました。 constructor TImage.Create(AOwner: TComponent); begin inherited Create(AOwner); ControlStyle := ControlStyle + [csReplicatable]; FPicture := TPicture.Create; FPicture.OnChange := PictureChanged; FPicture.OnProgress := Progress; Height := 105; Width := 105; end; この中でHeightとWidthを指定しているので、これが初期値になっているようです。 この部分を回避して、下位クラスでのサイズ指定を有効にするには、どのようにすればよいでしょうか? さらに上のTGraphicControl.Createを呼ぶ方法とか、あるのかもしれませんが、その場合もTImageのCreateコンストラクタのコードをどうするか?など疑問ばかりです。 どうぞ、適切な方向性をご指導ください。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.