PaKo1407 napisał(a)
a co do pytania nr.2 to chodzi mi o to że liczbę graczy wpisuję w TForm2 a cała gra będzie w TForm1 więc jak tę liczbę graczy przechwycić ??
W Unit1.cpp dodaj :
#include "Unit2.h"
Lub odpowiednio jeśli masz zmienione nazwy plików ,aby wskaźnik do Form2 był widoczny dla kodu Form1 np:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage(Form2->Label1->Caption) ;
}
//---------------------------------------------------------------------------
To najprostsze rozwiązanie .
Można też zastosować oddzielne zmienne dostępne dla obu formularzy , tworząc plik cpp z def i .h z deklaracjami +
include do obu Unitów 1 i 2 .
Lub przez zmienne :
//---------------------------------------------------------------------------
//FORM 2
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
String a ; // <--- zmienna dostępna dla Form1
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
a = Label1->Caption ;
}
//---------------------------------------------------------------------------
Header Form1:
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
extern String a ; // <--- tylko deklaracja ! Zmienna definiowana w Form2 cpp
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Użycie:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage(a) ;
}
//---------------------------------------------------------------------------