ヨネです。皆さん おはようございます
x1=0 x2=100 x3=150 x4=300 x5=850
x1=x1
x1=x2
x1=x3
x1=x4
x1=x5
x1の値をx1〜x5の値にfor 文{繰り返し文}を利用して出きるのでしょうか
方法があるのなら教えてくださいお願いします
配列を使います
var
Form1: TForm1;
a:array[0..3] of integer=(100,150,300,850);
・
中略
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to length(a)-1 do
ShowMessage(inttostr(a[i]));
end;
TtPIPICHさん
有難う御座います。
実話 線を描きたいのですが
X1=0 Y1=0 X2=0 Y2=1000
Line(X1,Y1,X2,Y2)
X1=X2 Y1=Y2 X2=500 Y2=1000
Line(X1,Y1,X2,Y2)
X1=X2 Y1=Y2 X2=500 Y2=0
Line(X1,Y1,X2,Y2)
この用に線を描きたいのですが
これを簡単にしたいのです
なだか Delphi じゃなくて BASIC の構文みたいな感じですね。
Delphi でそのようなことをするには、TCanvas の Polyline() メソッドを使います。横に 500 はともかく、縦に 1000 はスクリーンからはみ出しそうですけど。
procedure TForm1.Button1Click(Sender: TObject);
var
points:array[0..3] of TPoint;
begin
points[0] := Point(0,0);
points[1] := Point(0,1000);
points[2] := Point(500,1000);
points[3] := Point(500,0);
Canvas.Polyline(points);
end;
蛇足ですが、閉じた多角形の場合は
Canvas.Polygon(points);
を使います。内側は Brush で塗りつぶされます。Canvas.Brush.Style := bsClear;
にすると塗りつぶされません。
jok さん
有難う御座います。
Delphiで描くのでなく、他の物にデータを送るのです。
X1=0 ;
Y1=0 ;
X2=0 ;
Y2=1000 ;
Line(X1,Y1,X2,Y2) ;
X1=X2 ;
Y1=Y2 ;
X2=500 ;
Y2=1000 ;
Line(X1,Y1,X2,Y2) ;
X1=X2 ;
Y1=Y2 ;
X2=500 ;
Y2=0 ;
Line(X1,Y1,X2,Y2) ;
これを簡単にしたいのです
jokさんの言うとおり、BASICみたいですね。
やりたいことは、1つ前の終点が、次の始点になるってことですか?
procedure TForm1.Button1Click(Sender: TObject);
const
LineArray: array[0..3] of TPoint = ((X:0;Y:0),(X:0;Y:100),(X:50;Y:100),(X:50;Y:0));
Var
I: Integer;
begin
for i:=Low(LineArray) to High(LineArray) -1 do
begin
//始点
Form1.Canvas.PenPos := LineArray[I];
//終点
Form1.Canvas.LineTo(LineArray[I+1].X, LineArray[I+1].Y);
end;
end;
ツイート | ![]() |