Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 44
Благодарности: 7

Профиль | Отправить PM | Цитировать


Забавно.

Все оказалось гораздо проще. Нужно было всего лишь в Unit1.cpp добавить
Код: Выделить весь код
#include "Unit2.h"
Тогда без проблем можно обращаться к Form2.

Подробней
читать дальше »
В проекте есть две формы Form1 и Form2.
Их описание находятся в Unit1.cpp, Unit1.h и в Unit2.cpp, Unit2.h соответственно.
Также еще есть Project1.cpp и Project1.h, в этом файле находиться главная функция WinMain, которая срабатывает первой при запуске программы.
Важно чтобы в Project1.cpp были определенны обе формы
Код: Выделить весь код
USEFORM("Unit1.cpp", Form1);
USEFORM("Unit2.cpp", Form2);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        try
        {
                 Application->Initialize();
                 Application->CreateForm(__classid(TForm1), &Form1);
                 Application->CreateForm(__classid(TForm2), &Form2);
                 Application->Run();
        }
............
Изначально обращаться к формам можно только из них самих. Чтобы это исправить нужно просто в .cpp файл формы 1, из которой мы хотим обращаться к другой форме, включить .h файл формы 2.
Т.е. если мы хотим из Form1 обращаться к Form2, нужно в Unit1.cpp добавить
Код: Выделить весь код
#include "Unit2.h"
После этого, в обраточике событий Form1 можно использоваться вызов Form2, к примеру так:
Код: Выделить весь код
 void __fastcall TForm1::Button1Click(TObject *Sender)
{
   Form2->Visible=true;
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:58, 05-11-2008 | #6