続・Modalにする際には?

解決


Moda  2003-02-10 19:55:48  No: 2872

つい先日にModalにする際に上手く実行されないということで質問させて
頂きました。
Bitmapの定義をあちこちにしていて、重なっていたのを修正し、エラー自体は出なくなったのですがBitmapが全く描かれない状態となっています。
単独のソースだけを用いて行ったときにはできるのですが、複数のソースを用いて行うと上手くいきません。
BitmapをCreateする際に Graphics.TBitmap.Createとするのがよいとアドバイスを頂き試してみたのですが上手くいきません。

procedure TTOPOGRAPHIC.LINE;
    var i,j:Integer;
    begin Bitmap3 := Graphics.TBitmap.Create;
          Bitmap3.Width := 600;
          Bitmap3.Height := 330;
          Bitmap3.Canvas.Pen.Color := clWhite;
          Bitmap3.Canvas.MoveTo(16,80);Bitmap3.Canvas.LineTo(616,80);
          Bitmap3.Canvas.MoveTo(616,80);Bitmap3.Canvas.LineT(616,410);
          Bitmap3.Canvas.MoveTo(16,80);Bitmap3.Canvas.LineTo(16,410);
          Bitmap3.Canvas.MoveTo(16,410);Bitmap3.Canvas.LineT(616,410);
          //途中省略  ほぼ同じ内容が続きます
          Canvas.Draw(0,0,Bitmap3);
          Bitmap3.Free;
    end;

このprocedureの宣言はprivateで行い、Bitmapはpublic宣言をしています。
他のソースでもBitmapの宣言をしていますが、いずれもpublic宣言です。


たかみちえ  URL  2003-02-10 20:26:13  No: 2873

ペンの色が背景色とかぶって、見えなくなっているということはないでしょうか?
  ペンで線を書く前に、FillRectで背景を別の色で塗りつぶす処理をしておいたらどうでしょう?
  それと、BitmapをSaveToFileで適当な場所に保存し、
どうなってるか調べるというのもいい方法だと思います。
  わたしはいつも、こまったときにはBMP.SaveToFile('C:\Bmp.bmp');とかやって調べてみてます。
  キャンバスへコピーするときにミスしただけとか、そういう理由もありますから。

  それから、おせっかいかもしれませんけど、
あんまりBitmap?といった、ぱっと見て用途がわからない変数は作らないほうがいいかと…。
  Forループのカウンタ専用変数とかは、iとかlとか、適当でいいと思いますけど、
  長いこと使うつもりの変数には、ある程度意味のある名前をつけておいたほうが、
わかりやすいと思いますよ。
(辞書を引いてまで…っていう必要はないですけど)
  長い名前でも、コード補完を使えば一発ですから♪


Moda  2003-02-10 22:27:00  No: 2874

たかちみえさんありがとうございます。
SaveToFileを試したところ大きさを指定しているのにも
かかわらず非常に小さいBitmapしか作成されていません。
背景色もなぜか黒になっていました。

変数名確かにBitmap?よりも意味ある名前を付けた方がいいですね。
アドバイスありがとうございます。


Bitter  2003-02-12 08:25:55  No: 2875

つじ「BitmapのHeightやWidthの指定したのとLineToの座標系の指定違ってるよね〜!」
かご「うんうん、HeightとWidthの範囲超えてるね〜!」
つじ「きちんと指定したものが合ってるか確認しないとね!」


Moda  2003-02-12 12:55:47  No: 2876

なるほど!Bitterさんどうもありがとうございました。
無事解決しました。


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

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






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