IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Видимость переменных, С++ Builder
18192123
сообщение 15.05.2009 20:54
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Здравствуйте!
Такой вопрос возник..:
Есть две формы, соответственно, 2 модуля..
В 1-м модуле описана переменная, которая должна использоваться и во 2-м..
Для 1-го модуля:

#include <vcl.h>
#pragma hdrstop

#include "UnitMain.h"
#include "UnitKey.h"
#include "wincrypt.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormMain *FormMain;

AnsiString pass;



Для 2-го:

#include <vcl.h>
#pragma hdrstop

#include "UnitKey.h"
#include "UnitMain.h"
#include "wincrypt.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormKey *FormKey;

void __fastcall TFormKey::ButOkClick(TObject *Sender)
{
pass=LabEdPas->Text;
}



В результате - ошибка, переменная pass не найдена..
Объясните пожалуйста, как исправить это?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 17.05.2009 1:31
Сообщение #2


Гость






Как ты собираешься вызывать TFormHem::ButEmcryptionClick, не зная как называется переменная типа TFormHem? Вот по умолчанию форма называется Form1, хотя класс, ее описывающий называется TForm1. Здесь Form1 - имя экземпляра, а TForm1 - имя типа... Обратиться к контролу на форме (или к какому-то обработчику) можно только по имени экземпляра, то есть, ты должна написать Form1->Edit1..., а не TForm1::Edit1. Поэтому обычно указатель на форму описывается в хидере как extern TForm1 *Form1, и при подключении к другому модулю этого хидера можно обращаться к Form1->{что-то}

Почему у тебя этого не произошло (т.е., почему обращение к ButEmcryptionClick по имени ФОРМЫ а не КЛАССА невозможно) - я не знаю... Приводи проект, будем разбираться...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 17:27
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"