![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
Народ! Помогите НОВИЧКУ с такой вот проблемой:
Есть форма, хранящаяся в DLL, которая вызывается основной программой. Посли загрузки формы из DLL, выполнив некоторые операции ввода информации, необходимо при её закрытии (нажав на определённую кнопку) передать текст из Label в основную программу в ShortString виде. Как это реализовать? Если можно пришлите или опубликуйте пример. Заранее огромное спасибо! -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
В DLL:
-------------------- |
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
Спасибо за совет. Немного не понятно.
Вот так, приблизительно выглядит форма:
Форму из библиотеки вызываем модально, работаем с фреймами внутри неё, и в конце получаем эту самую форму с нужным нам текстом в Label. При нажатии на Наша кнопка , при определённом внутренней переменной (формы) типа integer, Форма должна закрыться, а текст из Label передаться переменной в основной программе. Хотелосьбы по подробней. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
У тебя не видно, как ты форму модальную используешь (создаешь, показываешь, закрываешь, удаляешь).
В тот момент, пока у тебя форма еще не освобождена, в DLL вполне можно использовать так, как тебе хочется, любые переменные, свойства формы. Т.е. схема такая: 1. Вызываем функцию для создания формы. 2. Вызываем функцию для показа формы. 3. Закрываем форму. 4. Вызываем фуекцию для получения нужных свойств. 5. Уничтожаем форму. -------------------- |
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
Сделал по твоему совету. В результате форма из DLL открывается копирует из Label текст в главную форму и закрывается.
Вот текст формы из DLL:
Что не так? Это сообщение отредактировал(а) Girder - 3.3.2006, 10:55 -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Правильно, и будет закрываться. Ты же сразу ее уничтожаешь!!!
Лучше так:
Все будет работать замечательно. Это сообщение отредактировал(а) Guedda - 2.3.2006, 19:37 -------------------- Ll 2 |
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
Всё хорошо, но копирование текста из формы в DLL происходит при её открытии, а нужно, чтобы при нажатии на кнопку формы (в DLL) после ряда операций с фрэймами (типа теста), расположенными на ней.
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Непонятна технология работы.
Есть основной модуль; Есть DLL, из в которой создается форма, которая затем вызывается модально из основного модуля(?) Или как? -------------------- |
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
1) Есть основной модуль.
2) При нажатии на кнопку в основном модуле, происходит вызов модальной формы из DLL. 3) После загрузки формы из DLL, на ней выполняются операции с фрэймами, чекбоксами и радиобатонами, в результате чего формируется строковое выражение, которое записывается в Label (в DLL), расположенном на последнем фрэйме. 4) После нажатия на кнопку, расположенную на последнем фрэйме, форма должна закрыться и передать текст из Label переменной из основного модуля. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| Демо |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Вот пример:
DLL:
Форма из DLL:
Вызывающая программа:
Обрати внимание на процедуру
Здесь не Form1.Show, а Form1.ShowModal Вот полностью весь готовый тестовый проект: Это сообщение отредактировал(а) Демо - 2.3.2006, 23:16 Присоединённый файл ( Кол-во скачиваний: 8 )
TestProj.zip 9,95 Kb-------------------- |
||||||||
|
|||||||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
Спасибо. Всё работает замечательно.
А возможен ли вариант динамической загрузки из библиотетки? Если да, то как это сделать? -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| Демо |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Вот простой пример:
DLL:
Вызывающий модуль
-------------------- |
||||
|
|||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
Спасибо за помощь. Всё работает.
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |