- 締切済み
フォームアプリケーションをmain関数に
初めまして。プログラミングを始めて1ヶ月程度の超初心者です。 開発環境はBorland C++ Builder 6 です。 ボタンやエディットボックスを含むフォームアプリケーション(フォーム:Form1)、 Button1をクリックするとファイルオープンダイアログを開き、選択されたファイル名をEdit1に表示 Button2をクリックするとファイルセーブダイアログを開き、選択されたファイル名をEdit2に表示 Button3をクリックするとEdit1で指定されたファイルを開き、演算した結果をEdit2で指定したファイルに書き込み、保存する といったプログラムを作成しました。 これらを全て、「入力ファイル名」と「出力ファイル名」を引数とするmain関数に組み込もうとしているところで、Button1Click(Sender)などを使えばそのまま流用できるところまではわかったのですが、フォームを含め、これらのクラスのmain関数内での使い方がよくわかりません。 クラスの定義などはヘッダーファイル内でされているだけではmain関数内では使用できないのでしょうか? 定義や宣言の仕方について具体的にお教え願います。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- KoHal
- ベストアンサー率60% (110/181)
最初に確認。 Windowsアプリケーションと、フォームは別のものです。 BCBでWindowsアプリケーションを作成すると、デフォルトでは、 Project1:Windowsアプリケーション名 そのソースはProject1.cpp TForm1:フォーム名 そのソースはUnit1.cpp となります。 今、コンソールアプリケーションから呼出したいのはフォームで良いのですね? 回答する方としては、呼出したいのがWindowsアプリケーションなのかフォームなのか最初からハッキリさせて欲しいわけです。 また、 >コンソールから実行したときに「ボタンを押す」、「エディットボックスに >テキストを入れる」といった処理をさせたい これは『コンソールアプリケーションからフォームを表示し、エンドユーザにフォーム上のボタンやエディットボックスを操作させる』という意味でしょうか? それとも『コンソールアプリケーションがフォーム上のボタンやエディットボックスを操作する』という意味でしょうか? 回答者としては質問者の意図がどちらなのか補足の文章を読んだだけでは判断がつきません。こういうところも誤解が生じないよう明確にして欲しいわけです。 あと、質問にある引数云々はどうするのでしょうか? このように質問の意図は未だによく分からないのですが、とりあえずコンソールアプリケーションからフォームを表示する手順。 1.コンソールアプリケーションのプロジェクトにフォームのソースを追加する。 2.コンソールアプリケーションのソースに使用するフォームのヘッダをインクルードする。 3.TForm1を呼出すとするとそのコードは、 TForm1* form = new TForm1(0); form->ShowModal(); delete form; 不明の点は補足から問い合わせてください。 その際は、できるだけ具体的かつ明確にお願いします。
- KoHal
- ベストアンサー率60% (110/181)
質問の意味がわかりません。 何がしたいのか具体的かつ明確に説明してください。 別に専門的な用語を使う必要はありません。自分のやりたいことを日常の言葉で、ただし自分以外の第三者でも明確に意味がわかるような表現で説明してください。 なお、 単に、「引数で指定された入力ファイルを開き演算した結果を同じく引数で指定された出力ファイルに書き込み保存する」 だけなら、そもそもフォームを作成する必要はありません。 main()関数内で引数を調べてファイルを開いて処理するだけです。 ただし、このプログラムはコンソールで実行することになりますが…。 それともコンソールアプリケーションからフォームを使いたいということなのでしょうか? 補足を願います。
補足
その通りです。フォームをせっかく完成させたので、これをそのままコンソールアプリケーションで使用するというのが目的です。コンソールから実行したときに「ボタンを押す」、「エディットボックスにテキストを入れる」といった処理をさせたいのですが、main()に書いてもクラスの定義?宣言?がうまくいかず困っています。