• 締切済み

c++ builder6 PaintBoxについて

c++ builder6でpaintboxをつかって線などを書き込みましたが、クリアすることが出来ません。button1をクリックするたびに消したいのですがどうしたら良いのでしょうか? どなたか教えてください。

みんなの回答

  • jklm324
  • ベストアンサー率46% (137/292)
回答No.1

paintboxを使って線など書き込んだというのは、線でCanvas->MoveTo(x1, y1)で始点を定義し、Canvas->LineTo(x2, y2)で終点(x2, y2)に向かって線を引くなどということでしょうか。 Canvasは、上へ重ねて書くことしかできませんので、UNDOを行うは難しいと思います。もし、すべての描画した要素が重なることがなければ、背景色に戻すことで元に戻ります(線だったら、Pen->Colorを背景色にして、線を引きなおす)が、何かを描いた上に線が引いてあり、その線だけを消す場合には線を引く前の状態をコピーしておいて戻すことが必要になります。斜めの線の場合、かなり無駄な部分までコピーすることになるが矩形領域をコピーするか、面倒ですが線の通る周辺だけをコピーするかいずれかになると思います。サイズが分かりませんが、遅いマシンでは、このコピーの戻しに時間が掛かり画面の乱れが気になる場合もあるかもしれません。領域が大きい場合はかなり戻すのに時間が掛かる場合もあり、線が引かれる前の状態までゼロ(=背景色の設定)からやり直す方がいいかもしれません。 あまりお役に立てる回答ではないと思いますが、PaintBoxによる描画はこのようなものと私は理解しています。

nkonnkon
質問者

お礼

回答ありがとうございました。 結局 PaintBox1->Repaint(); と書くことでクリアできました。

関連するQ&A

  • Basicとbuilderについて

    いま、Visual Basic6.0とC++builder5.0でプログラムを書いてるんですが、この2つのプログラムを連動することはできないのでしょうか? つまり、BasicのFormにある"command1"をクリックすると、builderのFormにある"button1"のプログラムが実行される、みたいなことです。(もしくは、その逆) basicだけ(builderだけ)で書けばいいんじゃないか、と思われるかもしれませんが、このようにしたいのです。 どうかよろしくお願いします。

  • C++Builderで、他のソフトとの連携

    C++Builderのコンポーネントで、他のソフトウェアとの連携ができるようになるコンポーネントや方法はありますでしょうか? 例えば、 「Button1をクリックするとInternet Exproler(他ソフト)が立ち上がる」 といったような機能を作りたいんです。 何か方法があればよろしくお願いします。

  • C++Builder

    卒業研究で昨日からC++Builderを使うようになったのですが、まったくわかりません。 「慣れれば普通にプログラム作るより簡単だ」と教官はいいいますが… それで昨日課題が出ました。 C++Builderでサイコロを作成し、クリックすれば数字が変わる用にしろ との事。 ずっとやってるのですが…ランダムに数字を表示するのってどうゆうの使うんですか? …もぅ初歩的な質問ですいません… 穴があったら入りたい…

  • VC++又はC++Builderでもいいのですが

    VC++又はC++Builderでもいいのですが マウスをドラッグしながら移動すると 範囲を表示する線がでますが あれはどうやっているのでしょうか? わかりにくくてすいませんが よろしくお願いいたします

  • C++ Builderについて

    以前から、C言語、C++などをやっていて、最近になって、C++Builder(Version 5.0)を使ってみようと思いました。すこしいじってみたのですが、さまざまなことを簡単にできそうな気がしました。しかしながら、正直なところ分からないことだらけです。ネット上で初心者向けの本を購入したのですが、内容は薄く、自分が目的とするものに達するには十分ではありませんでした。探し方が悪いのか、本もさほど見つかりませんでした・・・・。 また、様々なサイトも見てみたのですが、やはりC++Builderの初歩的な使い方もいまいち分かっていないせいか、わけがわかりません。一応、購入した本で勉強しているのですが・・・・。 できることなら、初歩的なことから、詳しく様々なことが分かり易く載っている本等は無いでしょうか?C言語のときは、ぶ厚い本で勉強しました。そのような本もたくさんあったように思われます。C++Builderには無いのでしょうか?それともCやC++などをみっちりやらなければ、使えないって事なのでしょうか?

  • C++Builderの選択

     いつも勉強させていただいています。どうぞよろしくお願いします。  今手元にあるアプリ(C++Builder5.0のソースコード付き)をいじりたく、 これを機会に初めてC++の勉強をしたいのですが(経験のある言語は Fortran、VBです)、C++Builderのどれを購入するかで迷っております。  ポイントとしましては、 ・上のC++Builder5.0のコードがコンパイル可能なもの  (先日、無料のBorland C++Compiler5.5をダウンロードしてコンパイルを試みても  できませんでしたorz (vcl.hというファイルが足りないようです)が、  C++Builderであればバージョン違いでもコンパイルできるのでしょうか?) ・書籍が比較的多いもの。(調べているとC++Builder6は比較的多そうな?気がしたのですが。。。) ・今後も暫く使えそうなもの。(C++Builder5 Personalとかかなり安いようなのですが、  皆さんもっと新しいもので開発なされているという事でしょうか。。。?) ・¥は7~8万くらいまで?  PersonalとProfessionalの違いや制限もよく分からないので、 もしお詳しい方がいらっしゃいましたら、ぜひ教えていただければと思います。  どうぞよろしくお願いします。

  • C++ Builder6について

    c++ builder6でMemo1 などに入力した値をポインタに格納したいんですが、やり方がうまくいかず、いろいろ試してみても出来ません。どなたか方法を教えてくださいませんか?

  • VC++ と C++Builder

    C++の基本的な構造は理解していて、Win32APIを勉強しようとVC++でプログラミングを始めた者です。参考書は猫でもわかるWindowsプログラミングを見ながら勉強しています(難しくてあまり理解出来ていませんが)。 しかし、機能が多すぎたりと使いこなす自信がありません。 C++Builderに変えてみようかと思っているのですが、VC++とC++Builderの違いを教えて下さい。漠然としすぎていてアホっぽい質問ですが・・。 VC++とC++Builderのプログラムの書き方の大きな違いなどはあるのでしょうか? また、みっちり調べたつもりですが無償のBorlandC++Builderが見あたらないのですが・・・。

  • C++ Builder6 をふたたび動かしたい

    数年前まで C++ Builder6を使ってコマンドラインプログラムを作っていました。 久しぶりに使おうとすると、以下のエラーメッセージがでて新規プログラムが作れません。再インストールをしても同じです。 C++ 5.5 がフリーで出ているようなんですが、元のプログラムが複数あって、Builderの環境で使いたいと思うのです。 すでにボーランド社はありません。 どのようにすれば解決できるのかわかれば教えてください。よろしくお願いします。 C:\Program Files\Borland\CBuilder6\bin\bcb.$$$ から C:\Program Files\Borland\CBuilder6\bin\bcb.droに変更できません。

  • 個人でC++Builderを始めるには?

    質問に答えていたただいた方々、本当にありがとうございました。いろいろ考えてみたところ、C++Builderをやってみようかと思っています。 そこで、C++BuilderはPC屋さんに売ってあるのかという事と(昨日行ったらなかったもので…)、いくらくらいするものかということをお聞きしたく質問させてもらってます。またよろしくお願いします。