DrawPoint って使えますか?

解決


boon  2007-04-12 04:34:53  No: 25725

Delphi7 でヘルプを見ると、TCanvas に DrawPoint と DrawPoints というメソッドがあると書いてあるんですが、実際には使えません。
なにか使う方法があるのでしょうか?

また、Canvas上に等間隔のグリッド点を書きたいだけなので、
良い方法があったら教えて下さい。
よろしくお願いします。


にしの  2007-04-12 04:54:34  No: 25726

使えますよ。
CLXアプリですが。

VCLで等間隔のグリッドを書くのであれば、普通にForで回してやればよいかと思います。


みんみん  2007-04-12 07:21:24  No: 25727

グリッド点ってなんでしょう。
ドットの線で描いたグリッドですかね?
もしそうならこんな感じで。

procedure TForm1.Button1Click(Sender: TObject);
var
  col,row,W,H,i :integer;
begin
  col :=10; //列の数
  row :=5;  //行の数

  W :=50;   //セルの幅
  H :=20;   //セルの高さ

  Canvas.Pen.Style :=psDot; //グリッド点(?)

  for i :=0 to col do begin
    Canvas.MoveTo(W*i,0);
    Canvas.LineTo(W*i,H*row);
  end;

  for i :=0 to row do begin
    Canvas.MoveTo(0,H*i);
    Canvas.LineTo(W*col,H*i);
  end;
end;


boon  2007-04-12 20:08:33  No: 25728

>にしのさん
なるほどCLXアプリなんですね。
だから使えなかったですね・・・

for 使って回すのは分かりますが、
例えば1ピクセルの点を書くのにも LineTo で書かなければいけないですか?

>みんみんさん
ソースありがとうございます。
でも説明不足か、ちょっと言いたい事と違うようで・・・

例えば、100 x 100 キャンバスに、横10点、縦10点、計100のポイントを
書いて、グリッドにしたいという事なんですよ?
分かりますかねぇ??


にしの  2007-04-12 21:54:45  No: 25729

1ピクセルであれば、TCanvasのPixelsプロパティでできます。

こんな感じです。
    for x := 0 to 10 do
      for y := 0 to 10 do
        Canvas.Pixels[x * 10, y * 10] := clRed;


boon  2007-04-12 22:04:33  No: 25730

>にしのさん
なるほどピクセル使って色変えていくわけですね。
その方法使って見ます。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加