• ベストアンサー

アプリケーションについて

私は、Borland C++Builder5の環境下で、アプリケーションを作りはじめたのですが、一つ質問があります。 アプリケーションには、初めからTForm1というクラスが設定されていて、そのクラス内ではPaintBoxやEditを使用できることは分かるのですが、新たに自分で作ったクラス内(例えば、class Sampleというものを作ったとして)でPaintBoxやEditを使うことは出来ないのでしょうか? やはり、TForm1というクラスの中にSampleを入れ、一つにまとめなければ出来ないのでしょうか? 是非、ご教授下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • KoHal
  • ベストアンサー率60% (110/181)
回答No.2

LocalSearch()やSol::~()が定義されているソースファイルにTFormのヘッダ(デフォルトなら多分Unit1.h)はインクルードされてますか? あと、Form1上のコンポーネントはForm1のプロパティなので、たとえば Form1->Edit1->... のように参照する必要があります。 この2点だと思うのですが、ダメならもう少し情報を下さい。

revolution_2005
質問者

お礼

有難う御座いました。Form1 -> という宣言をすれば良かったのですね。とても勉強になりました。

その他の回答 (1)

  • KoHal
  • ベストアンサー率60% (110/181)
回答No.1

>新たに自分で作ったクラス内(例えば、class Sampleというものを作ったとして)でPaintBoxやEditを使うことは出来ないのでしょうか? 使えます。 もし実際にコーディングする上で問題が発生しているなら、その内容(やろうとしていること、発生した問題)を具体的に提示して質問してください。 「使えるか?」と訊かれれば「使える」としか答えようがありません。

revolution_2005
質問者

補足

話が飛びすぎていてすいませんでした。補足させて頂くと、TSPのアプリケーションを作っています。 大まかな形を書くと class Sol{ ~ }; というクラスがあり、 void Sol::~{ ~ } などがあり、 void LocalSearch(Sol& A){ ~ } とあります。 そして、void __fastcall TForm1::Button2Click(TObject *Sender)の中で、 Sol Asol; ~ LocalSearch(Asol); ~ として、LocalSearchを実行しています。 そこで、LocalSearch(Sol& A)の内部やSol::~内などで、実行されていく途中経過を示したいのですが、EditやPaintBoxを使おうとしても、未定義のシンボルと出てしまいます。 これを、どう定義すればこれらの内部で使えるようになるのかを聞きたかったのです。 今のアプリケーションだと、処理前のランダム解と、処理後の改善解の状況しかPaintBoxで見ることが出来ないので、解が変わっていく状況を示したいのです。宜しく御願い致します。

関連するQ&A

  • アプリケーションについて

    今晩は。早速ですがアプリケーションについて幾つか質問があります。よろしくお願いします。環境はBorland C++Builder5です。 普段のForm上の画面を青として、PaintBoxを白で表示させたとします。これは、別に何の問題もないんですが、Formを最小化したりすると出力した画面が消えてしまうんです。(PaintBox画面が消えて?元の青になってしまうということです)ただ、画面上は青になってしまいますが、PaintBoxに出力させた座標などのデータは残っているようです。web上にあるjavaのアプレットなどは、画面を最小化してもそのまま残っているのですが、C++BuilderのPaintBoxはFormを最小化したりすると消えてしまう仕様なのでしょうか? また、PaintBoxの座標をデータに合わせて縮小したり拡大したり出来ないのでしょうか?私の使っているパソコンの画面は15型なので、1000*1000程度の座標しか扱えません。 座標データが0~100程度のものもあれば0~10000といったものもたくさんあります。0~100程度の座標であればPaintBox上には座標がありますが、左端に小さくよっていて、非常に不細工です。また、0~10000の座標であれば画面に映りません。データに合わせて座標の幅を縮小したり拡大できないものでしょうか?矢張り、データ自体の方を縮小したり拡大したりといった作業をする必要があるのでしょうか?(そうすると、都市(点)が多くて座標が大きい場合、データを縮小すると点が重なり合って、非常に見辛いです。) あと、画面の大きさに合わせてPaintBoxやなどの大きさも大きくしたり小さくしたり出来ないのでしょうか?例えば、17型の画面で15型の画面で作ったものを動かしたら、当然ですが15型の画面が表示がされます。それを最大化するとFormだけが最大化されてPaintBoxなどはもとの15型のままです。Formの大きさに合わせてPaintBoxなども大きくしたり小さくしたりすることは可能でしょうか?

  • アプリケーションについて

    私はBorland C++Builder5を使っているのですが、Javaのように、PaintBoxに自分でマウスの左クリックをして点を打つことは可能でしょうか?また、可能ならばどのようにすれば良いのでしょうか?やり方が記載されているURLでも良いので教えてください。 ちなみに、http://www.nirarebakun.com/graph/notspcli.htmlのところのような、自分で点を打つものを作ってみたいのです。ランダムな点と、既存のデータだけでは面白みがないもので・・・。

  • フォームアプリケーションをmain関数に

    初めまして。プログラミングを始めて1ヶ月程度の超初心者です。 開発環境はBorland C++ Builder 6 です。 ボタンやエディットボックスを含むフォームアプリケーション(フォーム:Form1)、 Button1をクリックするとファイルオープンダイアログを開き、選択されたファイル名をEdit1に表示 Button2をクリックするとファイルセーブダイアログを開き、選択されたファイル名をEdit2に表示 Button3をクリックするとEdit1で指定されたファイルを開き、演算した結果をEdit2で指定したファイルに書き込み、保存する といったプログラムを作成しました。 これらを全て、「入力ファイル名」と「出力ファイル名」を引数とするmain関数に組み込もうとしているところで、Button1Click(Sender)などを使えばそのまま流用できるところまではわかったのですが、フォームを含め、これらのクラスのmain関数内での使い方がよくわかりません。 クラスの定義などはヘッダーファイル内でされているだけではmain関数内では使用できないのでしょうか? 定義や宣言の仕方について具体的にお教え願います。 よろしくお願いします。

  • あるアプリケーションを起動したら・・・

    WinXPでBorland社のC++Builderを立ち上げると ”\Borland\CBuilder6\Bin\bcb.$$$から\Borland\CBuilder6\Bin\bcb.dro に変更できません。” というエラーメッセージが表示され、うまく起動できないのです。 エクスプローラで見てみると、うまく起動できているPCのフォルダの中には ”bcb.$$$”という、$$$ファイルが存在しないのですが、削除してもまた起動の度に作成されてしまいます。 どうしたら、Builderを起動させることができるのでしょうか?

  • C-Builderで数値(数字)以外を入力出来ない様にしたい。

    C-Builder V5 で数値(数字)を入力すべきところで、実行時に文字等を入力すると、システムからエラーメッセージが表示されるので、これを防ぐ為にEditで入力時に数字以外をはじきたいのですが、可能でしょうか。 以前C-Builder V4で作った時は出来た様な気がしたのですが、どの様にやったか思い出せないでいます。 ネットではC-Builderのサンプルが見つからず、Delphiのサンプルでは昔の記憶と同じ処理を行っていましたが、これだと文字判定以前にEditの枠に既に文字が入ってしまっており、文字の排除が出来ませんでした。 どなたか数字以外をはじく方法ご存知の方、お教え下さい。 // Edit1->ImeMode = imDisable; // 初期化部分で実行 void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if(Key<48 || Key>57) { Key = 0; } }

  • Borland C++ Builder > Active-X をつくるには

    こんにちは。 今 Borland C++ Builder 6 (personal)をつかって Active X コントロールを作ろうと思っていますが、 VBのようにウィザードが無いので雛形が無くて 困っています。 この手の情報が少ないので、以下の点について 知っている方教えてください。 1)Borland C++ BuilderでのActiveX作成方法 2)C++ Builder でのサンプルソースがある場所 よろしくお願いします

  • アプリケーションの設定

    C++Builder6を使用しています。 プログラムを作成し、オプション→アプリケーションでアイコン等のアプリケーションの設定を行なおうと思ったのですが、 アプリケーションの設定欄に書き込むことができません。(Enable false状態) 書き込めるようにするにはどうすればよいのでしょうか? また、どういった場合に書き込めなくなるのでしょうか? よろしくお願いします。

  • ListView

    Borland C++Builderを使用しています。 ListViewにカラムを設定し,データをそれぞれ表示させたい のですが,やり方がわかりません。 ViewStyleはvsReportです。 何かサンプルプログラムを紹介したいただけませんか? よろしくお願いします。

  • VB.net 割り込みの禁止

    Borland C-Builder++の内容をVB.net 2010に書き換えて居る者です。 TextBox等の割り込みを一時的に禁止したいのですが、良い方法はありませんでしょうか。 無ければフラグを用いて、フラグが立っている時のみ処理をバイパスさせる事を考えて居ます。 Builder では ComboBox1->OnChange = NULL ; とコーディングする事により、 void __fastcall TForm1::ComboBox1Change(TObject *Sender) { Edit1->Text = ComboBox1->Text; } への割り込みを禁止出来、 ComboBox->OnChange = ComboBox1Change; とコーディングする事により割り込みを再開出来ました。 これを void __fastcall TForm1::ComboBoxChange(TObject *Sender) {     ComboBox1->OnChange = NULL ; Edit1->Text = ComboBox1->Text;     ComboBox->OnChange = ComboBox1Change; } とコーディングする事により、2重割り込みを防止していました。 VBでこの様にイベント割り込みを一時的に禁止にする方法はありますでしょうか。 宜しくご回答下さい。

  • Borland CからBuilderへのプロジェクト変換について

    Borland C++ 5.01で作成されたアプリケーションの開発環境をBorland C++Builder 6の開発環境に移し変えることになったのですがBCB6で新しくプロジェクトを作り、ソースファイルを1つずつ移行させていったのですがコンパイルエラーが山ほどでてきます。 C言語自体、あまり詳しくないのでうまく説明できませんがOWL?というコンポーネントが使われている為かと。。。 1つずつ潰していけばいいのですが、もっと簡単な方法がないものかと試行錯誤しております。 何かプロジェクト変換するツールやこのようにすれば?というような意見、情報などないでしょうか?