16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:線のクラス"
この発言は #00256 凛 さんの線のクラス に対するコメントです
サンプル蔵#256 で紹介したTLineを具体的に使う例です。
サンプル蔵にあがっているTLine用のコードは別Unitに書いてusesするか、同じ
Unit内に書くかしてください。その上で、ボタン一つとTPaintBoxを一つフォー
ム上に配置して、それぞれ以下のようにイベントハンドラを書いてみて下さい。
//TLineを管理するListをcreateする List:TListはTForm1のPrivateででも
//宣言しておく
procedure TForm1.FormCreate(Sender: TObject);
begin
List:=TList.create;
end;
//最後に必ずTLineをfreeしておく
procedure TForm1.FormDestroy(Sender: TObject);
var
i:integer;
begin
for i:= 0 to List.count-1 do
begin
TLine(List[i]).free;
end;
List.free;
end;
//ランダムな色の線を放射状に作って描く
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
LIne:TLine;
begin
for i:= 0 to 100 do
begin
Line:=TLine.create(0,
0,
random(200),
random(200),
random(5),
random($FFFFFF));
Line.draw(paintBOx1.canvas,pmCopy);
List.add(Line);
end;
end;
//選択した線を反転させる。
procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button:
TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
i:integer;
begin
for i:=0 to List.count-1 do
begin
if TLine(List[i]).isOnLine(x,y) then
begin
TLine(List[i]).draw(paintBox1.canvas,pmNot);
end;
end;
end;
98/11/14(土) 00:17 凛(MXB01744)
Original document by 凛 氏 ID:(MXB01744)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|