C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 画面の処理を複数のファイルに分けたい


(過去ログ 43 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■22722 / inTopicNo.1)  画面の処理を複数のファイルに分けたい
  
□投稿者/ POPOI (1回)-(2008/07/30(Wed) 17:47:09)

分類:[C++/CLI] 

はじめまして。
POPOIといいます。

いろいろ調べてみましたが、行き詰ってしまいましたので
質問させていただきます。よろしくお願いします。

早速ですが、質問です。言語:VC++2005 C++/CLI(CLR)

画面作成についてです。
1つの画面に対するイベントを記述するだけで数が多い場合
半端なくゴチャゴチャしてしまいます。
1つのファイルにしか書くことができないのでしょうか?

そこで、画面のヘッダファイル内のソースを
Component登録部分とイベント処理部分という様に複数のファイルに
に分けて書きたい思っています。

C#でいうpartialクラスのような扱いにできたらなと今調べているところです。

解決策がありましたら、ご教授お願いします。


引用返信 編集キー/
■22724 / inTopicNo.2)  Re[1]: 画面の処理を複数のファイルに分けたい
□投稿者/ ま (90回)-(2008/07/30(Wed) 17:51:09)
No22722 (POPOI さん) に返信

#include <xxConponentLogic.cpp>
#include <xxEventLogic.cpp>
とか。

引用返信 編集キー/
■22725 / inTopicNo.3)  Re[2]: 画面の処理を複数のファイルに分けたい
□投稿者/ 渋木宏明(ひどり) (837回)-(2008/07/30(Wed) 18:07:05)
渋木宏明(ひどり) さんの Web サイト
> #include <xxConponentLogic.cpp>
> #include <xxEventLogic.cpp>
> とか。

.cpp はデフォルトでコンパイル対象なので、↑だと、#ifdef でもしとかないとコード重複になってコンパイラに怒られると思う。

単純に

・実装を複数の .cpp に分割
・それぞれの .cpp で適切なヘッダをインクルード
・↑をプロジェクトに登録

でよろしんじゃないかと。

引用返信 編集キー/
■22726 / inTopicNo.4)  Re[3]: 画面の処理を複数のファイルに分けたい
□投稿者/ POPOI (3回)-(2008/07/30(Wed) 18:20:50)
No22724 (ま さん) に返信
No22725 (渋木宏明(ひどり) さん) に返信


> #include <xxConponentLogic.cpp>
> #include <xxEventLogic.cpp>

> ・実装を複数の .cpp に分割
> ・それぞれの .cpp で適切なヘッダをインクルード
> ・↑をプロジェクトに登録

返信ありがとうございます。


今までのC++であればそのような書き方をしますね。
イベントだからLogicではなくViewかも^^;


例えば↓の4つの処理を宣言したクラスの中に書き込んでおかないと
イベント宣言とイベントの処理をファイルに記述しないとコンパイル時に
['XXXXXX::Form1' のメンバではありません。]と出てしまいます。
やり方が間違っているのかもしれませんが。。

Form1.h
namespace Main
{
public ref class Form1 : public System::Windows::Forms::Form
{
// コンポーネント宣言
private: System::Windows::Forms::Button ^ btnA;
// コンポーネント生成
this->btnA = (gcnew System::Windows::Forms::Button());
// イベント宣言
this->btnA->Click += gcnew System::EventHandler(this, &Form1::btn_TA_Click);
// イベント処理
System::Void btn_TA_Click(System::Object^ sender, System::EventArgs^ e) {
・・・
}
};
}

> ・実装を複数の .cpp に分割
> ・それぞれの .cpp で適切なヘッダをインクルード
> ・↑をプロジェクトに登録

試して見たのですがだめでした(涙
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -