![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Здравствуйте!
Такой вопрос возник..: Есть две формы, соответственно, 2 модуля.. В 1-м модуле описана переменная, которая должна использоваться и во 2-м.. Для 1-го модуля:
Для 2-го:
В результате - ошибка, переменная pass не найдена.. Объясните пожалуйста, как исправить это? |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
В header-файле для первого модуля опиши переменную, как внешнюю:
extern AnsiString pass;, тогда линкер ее найдет. |
18192123 |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
спасибо, получилось!
теперь схожая ситуация с использованием функции: имеется проект с одним модулем UnitMain к этому проекту через Add to project подключаю модуль (Unit2) из другого проекта. В Unit2 имеется процедура
которую нужно вызвать в UnitMain.. В UnitMain.h добавила
при запуске приложения ошибка: [Linker Error] Unresolved external '__fastcall ButEmcryptionClick(System::TObject *)' referenced from E:\3_2 \ОБЩЕЕ\PROJECT\UNITMAIN.OBJ Подскажите пожалуйста, как исправить ошибку? |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата В UnitMain.h добавила Не надо этого делать... Лучше добавь описание экземпляра класса (ну, или указателя на него), как extern. А то тип-то известен во втором файле, а название переменной - нет. |
18192123 |
![]()
Сообщение
#5
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Как ты собираешься вызывать TFormHem::ButEmcryptionClick, не зная как называется переменная типа TFormHem? Вот по умолчанию форма называется Form1, хотя класс, ее описывающий называется TForm1. Здесь Form1 - имя экземпляра, а TForm1 - имя типа... Обратиться к контролу на форме (или к какому-то обработчику) можно только по имени экземпляра, то есть, ты должна написать Form1->Edit1..., а не TForm1::Edit1. Поэтому обычно указатель на форму описывается в хидере как extern TForm1 *Form1, и при подключении к другому модулю этого хидера можно обращаться к Form1->{что-то}
Почему у тебя этого не произошло (т.е., почему обращение к ButEmcryptionClick по имени ФОРМЫ а не КЛАССА невозможно) - я не знаю... Приводи проект, будем разбираться... |
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 8:19 |