掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
空欄の部分を埋めていただけないでしょうか。 (ID:37264)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
procedure Circle(x, y, r, c: Integer); var X1, Y1, X2, Y2: Integer; begin with Form1.PaintBox1.Canvas do begin {c の値に応じて,ブラシとペンの色を定める; // ??? (例: if c=1 then "ブラシとペンを赤にする" else "ブラシとペンを青にする";)} if c=1 then begin Brush.Color := clRed; Pen.Color := clRed; end else begin Brush.Color := clBlue; Pen.Color := clBlue; end; {中心が (x,y) で半径が r の円をかく} X1 := x-r; Y1 := y-r; X2 := x+r; Y2 := y+r; Ellipse(X1,Y1,X2,Y2); // ??? end; end; procedure TForm1.Button1Click(Sender: TObject); begin with PaintBox1.Canvas do begin Brush.Color := clBlue; Rectangle(0,0,500,280); // 長方形 (500 X 280) Circle(250,140,20,1); // 円 (半径 20) end; end; procedure TForm1.Button2Click(Sender: TObject); var x1,y1,x2,y2,dx,i : integer; begin dx := 1; x1 := 250; y1 := 140; with PaintBox1.Canvas do begin i := 0; repeat {if (x1<=20) または (x1>=480)) ならば,dx を (-1) 倍する ;} // ??? 壁にぶつかったとき,進行方向を逆向きにする if (x1<=20) or (x1>=480) then dx := -1*dx; x2 := x1 + dx; y2 := y1; // (x1,y1) は古い位置,(x2,y2) は新しい位置 Circle(x1, y1, 20, 0); // ??? 前に描いた円を「消す」 Circle(x2, y2, 20, 1); // ??? 新たに赤い円を描く x1 := x2; y1 := y2; sleep(2); i := i+1; until i>=1000; end; end; end. https://www.petitmonte.com/bbs/answers?question_id=6770 どこぞの宿題?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.