掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
背景が透明な線を描画するには、どのようなアプローチが良いか? (ID:20617)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
「Mr.XRAY [HomePage] 2006/03/18(土) 20:40:44」で提示していただいたコードを実行し、確認できました。 > a)ラベルはPaintイベントがないので、フォームに隠れたときなど再描画できないから適さない と書きましたが、ご指摘のように、Paintメソッドを実装し、図形、文字列が描画されました。 多くの実装方法が考えられること、とてもよくわかりました! なお、今まで教えていただいた知識を元に、Paintメソッド内でグローバル変数を使わない方法も実現できました。 以下へ掲載させていただきます。 掲示板へ書き込む前の私には、いくつもの山があり、この形を導くことはできませんでした。 最初の書き込みはまだほんの5日前のことなのですよね。Mr.XRAYさんをはじめ、皆様のおかげです。 高度な技術を持った方々に直接の助言をいただけて、とても嬉しいです。 ----- //LabelにPaintメソッドを実装するサンプル //アドバイス:Mr.XRAY様 2006/03/18(土) 20:40:44 //それをもとに、グローバル変数を使わない形にできた unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TMyLabel =class(TLabel) protected { Protected 宣言 } procedure Paint; override; end; TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var ALabel: TMyLabel; begin ALabel:=TMyLabel.Create(Self); with ALabel do begin Parent:=Self; Left :=100; Top :=50; Width :=200; Height:=100; end; end; procedure TMyLabel.Paint; begin inherited; //メソッドの実装部分では,Self 識別子はそのメソッドが呼び出された //オブジェクトを参照します(ヘルプより) with Self do begin //←TMyLabel型のALabelのメソッドなのでSelfでよい Canvas.Pen.Width:=3; Canvas.Pen.Color:=clGreen; Canvas.MoveTo(0,0); Canvas.LineTo(200,100); Canvas.Font.Size:=20; Canvas.TextOut(20,30,'喫茶XRAY'); end; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.