掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TPaintBoxで図形を拡大/縮小表示するには (ID:29626)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ペイントツールではなく, 単に,図形を描いて,それを拡大縮小表示するのであれば,メタファイルを利用 する方法もあります.メタファイルは拡大縮小してもギザギザになりません. 参考までに. 新規プロジェクトに以下を配置 TButton 1つ TImage 1つ 動作確認環境 WindowsXP(SP2) + Delphi 7 Pro //============================================================================= // メタファイルに文字列と四角形を描き,それをImage1に表示 //============================================================================= procedure TForm1.Button1Click(Sender: TObject); var AMetaFile : TMetafile; ACanvas : TMetaFileCanvas; AWidth : Integer; AHeight : Integer; begin Self.VertScrollBar.Visible := False; Self.HorzScrollBar.Visible := False; Image1.Stretch := True; Image1.Picture.Assign(nil); AMetaFile:=TMetafile.Create; AMetaFile.Width := Image1.Width; AMetaFile.Height := Image1.Height; try ACanvas:=TMetafileCanvas.Create(AMetaFile,0); try //Canvasの全領域を塗潰す ACanvas.Brush.Color := clSilver; ACanvas.FillRect(ACanvas.ClipRect); //指定サイズの文字サイズで文字を描く ACanvas.Font.Size := 50; ACanvas.Brush.Style:=bsClear; ACanvas.TextOut(0,0,'Delphi'); //四角形を描画 ACanvas.Pen.Width := 6; ACanvas.Pen.Color := clGreen; ACanvas.Rectangle(30,10,130,70); finally ACanvas.Free; end; Image1.Picture.Assign(AMetaFile); finally AMetaFile.Free; end; end; //============================================================================= // Image1のサイズを変更する // Stretch=TrueでPicture.Assignしているのでメタファイルも拡大縮小表示 // メタファイの元サイズには変更なし //============================================================================= procedure TForm1.Button2Click(Sender: TObject); var ASize : Double; begin ASize := 1.2; Image1.Width := Trunc(Image1.Width * ASize); Image1.Height := Trunc(Image1.Height * ASize); end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.