掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Imageを大量に表示するには? (ID:2311)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
「Imageを大量に表示するには?」ちゅうタイトルやと、 車1台づつTImageつこうて…なん思うとるようやな。 300個も TImageつこうたら、そりゃメモリ足らんも当然や。 こないサンプルどうや。 Formに幅600、高さ50の TImage1個、ボタン1個、タイマー1個置いてな。 5000台くらいまでならいけるで。10000台やと、速いマシンないんと苦しい〜 ただし、衝突判定しとらんで事故続発やけんな(^^ゞ var aryX : array[0..2000]of Integer; aryY : array[0..2000]of Integer; dx : array[0..2000]of Integer; procedure TForm1.FormCreate(Sender: TObject); var i, x, y, w, h : Integer; begin w := Image1.Width * 2; h := Image1.Height * 2; for i:=0 to High(aryX) do begin aryX[i] := Random(w * 2) - w; aryY[i] := Random(h * 2) - h; dx[i] := Random(4) + 3; end; Timer1.Interval := 40; end; procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled := not Timer1.Enabled; end; procedure TForm1.Timer1Timer(Sender: TObject); var i, x, y : Integer; begin with Image1.Canvas do begin Brush.Color := clWhite; Rectangle(0,0,Image1.Width,Image1.Height); Brush.Color := clBlue; end; for i:=0 to High(aryX) do begin x := aryX[i] + dx[i]; y := aryY[i]; if x > Image1.Width then begin x := -Random(Image1.Width); dx[i] := Random(4) + 3; end; Image1.Canvas.FillRect(Rect(x, y, x+5, y+3)); aryX[i] := x; aryY[i] := y; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.