質問
私のアプリケーション(メインフォームはTTntForm、C ++ Builder 2006):
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Caption=L"1st caption"; // This works.
Form1->Caption=L"2nd caption"; // But this doesn't work,
// Caption of the form remains "1st caption".
}
この問題の原因は何ですか?
編集済み: 回答ありがとうございます。バグを見つけました。プロジェクトファイルに2回フォームが作成されました:
Application->CreateForm(__classid(TForm1), &Form1);
Application->CreateForm(__classid(TForm1), &Form1);
解決 4
ご回答いただきありがとうございます。バグを見つけました。プロジェクトファイルに2回フォームが作成されました:
Application->CreateForm(__classid(TForm1), &Form1);
Application->CreateForm(__classid(TForm1), &Form1);
他のヒント
「これ」が本当に正しいか実際にはForm1ですか?
if (this != Form1)
ShowMessage("Whoops. Didn't expect that...");
フォームはどのように作成されますか? 「自動作成」がリストにあるかどうかプロジェクトオプションのフォーム、または手動でインスタンスを作成していますか?
Form1がメインフォームであると仮定すると、通常はメインのproject.cppファイルの関数WinMain()のコードによって作成されます。
Application->CreateForm(__classid(TForm1), &Form1);
これはC ++ Builderによって自動的に書き込まれるため、手動で変更する場合は注意してください。
試用
Self.Caption
これが機能する場合、Form1はTForm1のインスタンスではありません
またはデバッグしてタイプを表示
作業しているTForm1クラスフォームがForm1としてインスタンス化されていますか?
TForm1があなたが電話したことを知っているとは思わない
TForm1 * Form1=new TForm1(...);
いくらか。これはCBuilderでの最初の試みですか? TForm1 *ファイルの上部に生成されたForm1は、単なる宣言です。作成する必要もあります。 最初の実用的なソリューションが気に入らないのはなぜですか?クラス内でForm1を使用する必要はありません。または、本当に使用する必要がある場合は
this->Caption="...";
所属していません StackOverflow