farik |
Отправлено: 18.06.2005, 12:24 |
|
Не зарегистрирован
|
В форме Form2 задан массив int D[n] (в файле Unit2.h),
CODE |
#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <jpeg.hpp>
//---------------------------------------------------------------------------
class TForm2 : public TForm
{
__published: // IDE-managed Components
TImage *Image1;
TEdit *d0;
TEdit *d1;
TEdit *d2;
TEdit *d3;
TEdit *d4;
TEdit *d5;
TEdit *d6;
TButton *Button1;
TEdit *d7;
TButton *Button2;
void __fastcall Button1Click(TObject *Sender);
void __fastcall d7Change(TObject *Sender);
void __fastcall d6Change(TObject *Sender);
void __fastcall d5Change(TObject *Sender);
void __fastcall d4Change(TObject *Sender);
void __fastcall d3Change(TObject *Sender);
void __fastcall d1Change(TObject *Sender);
void __fastcall d2Change(TObject *Sender);
void __fastcall d0Change(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
private: // User declarations
public: // User declarations
enum
{n=8};
int D[n];
bool isSet;
__fastcall TForm2(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
//---------------------------------------------------------------------------
#endif
|
из формы Form13 пытаюсь получить доступ к массиву:
Form2->D[0];
но в ответ 0
делаю Label1->Caption = IntToStr(Form2->D[0]);
на Label1 выводиться 0 (но это не совпадает с тем что в массиве).
Никаких ошибок не выдается.
,
хотя массив был до этого задан (числа там должны быть):
в Unit2.cpp в ф-ии обработчике события нажатия на кнопку ОК
CODE |
D[0] = StrToInt(Form2->d0->Text);
D[1] = StrToInt(Form2->d1->Text);
D[2] = StrToInt(Form2->d2->Text);
D[3] = StrToInt(Form2->d3->Text);
D[4] = StrToInt(Form2->d4->Text);
D[5] = StrToInt(Form2->d5->Text);
D[6] = StrToInt(Form2->d6->Text);
D[7] = StrToInt(Form2->d7->Text);
Form2->Hide();
| .
include "unit2.h" присутствует в unit13.cpp:
CODE |
#include <vcl.h>
#pragma hdrstop
#include "Unit13.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm13 *Form13;
int x = 1, r = 2;
double d = 1;
//---------------------------------------------------------------------------
__fastcall TForm13::TForm13(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm13::FormCreate(TObject *Sender)
{
Label1->Caption=IntToStr(Form2->D[0]);
....
|
|
|
xTrim |
Отправлено: 20.06.2005, 07:47 |
|
Машинист паровоза
Группа: Участник
Сообщений: 208
|
TForm13::FormCreate — происходит видимо при инициализации приложения когда Form2->D[0]==0. Попробуй сделать что-то типа:
Unit2.cpp
CODE |
...
D[6] = StrToInt(Form2->d6->Text);
D[7] = StrToInt(Form2->d7->Text);
Form2->Hide();
Form13->UpdateNum();
...
|
Unit13.cpp
CODE |
...
void TForm13::UpdateNum()
{
Label1->Caption=IntToStr(Form2->D[0]);
...
|
или в TForm13::OnShow.
|
|