Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> переменные в dll, переменные в dll 
V
    Опции темы
morpheyushka
  Дата 6.6.2008, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 3
Всего: 8



Народ, подскажите решение...такая проблема - у меня из dll присутствуют несколько юнитов, каждый из которых - формы. Вобщем как определить переменную в длл типа WideString, которая будет видна в каждом моём юните...пробовал передавать её вместе с функцией вызова формы, но передаётся пустая строка, а без этого никак smile 
Может я сильно туплю, но вы сильно не ругайтесь smile 
 smile 


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
morpheyushka
Дата 6.6.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 3
Всего: 8



Цитата(Albinos_x @ 6.6.2008,  13:12)
модуль ShareMem подключать пробовал?

в dll?


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
Albinos_x
Дата 6.6.2008, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



угу


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
aktuba
Дата 6.6.2008, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата(Albinos_x @  6.6.2008,  14:12 Найти цитируемый пост)
модуль ShareMem подключать пробовал? 

Для WideString ShareMem не нужен. Передается все без него отлично. Ищи ошибку в коде.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
morpheyushka
Дата 6.6.2008, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 3
Всего: 8



Да, модуль не дал результата...давайте я немного поподробней - есть длл, в неё включон модуль, в котором существует процедура, которая создаёт форму...всё классно работает, только, мне интересно, когда я этой процедуре передаю 3 WideStringa, которые заносятся в переменные, она создаёт новую форточку, всё отлично, вот только после выхода из процедуры переменные затираются. эти переменные затираются - почему?

вот код:
Код

...
var
  dbConnectionString: WideString = '';
  dbLogin: WideString = '';
  dbPasswd: WideString = '';

var
  BetMessage: TBetMessage;
  procedure BetMessageShow(AppHandle: THandle; Connect: WideString; Login: WideString; Passwd: WideString);
  procedure BetMessageClose;

implementation

uses CreateMessageU;
...
//Create form
procedure BetMessageShow(AppHandle: THandle; Connect: WideString; Login: WideString; Passwd: WideString);
begin
  Application.Handle := AppHandle;
  BetMessage := TBetMessage.Create(Application);
  BetMessage.Show;
  dbConnectionString := Connect;
  dbLogin := Login;
  dbPasswd := Passwd;
  ShowMessage(dbConnectionString + '|' + dbLogin + '|' + dbPasswd);
end;


ShowMessage(dbConnectionString + '|' + dbLogin + '|' + dbPasswd); - показывает, что после создание окна переменные получены

а вот при выходе из процедуры он их зачищает( smile 


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
morpheyushka
Дата 6.6.2008, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 3
Всего: 8



Может кто нибудь объяснит почему так происходит?
Может можно сделать общую переменную типа WideString в длл, которую будет видно в остальных модулях smile  Должно помочь по идеи)


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
morpheyushka
Дата 6.6.2008, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 3
Всего: 8



Цитата(Albinos_x @ 6.6.2008,  13:52)
а объявлять их как переменные, а не константы пробовал?
поэтому они у тебя изменения сделанные в них и не сохраняются...

да нет...эти переменные - AppHandle: THandle; Connect: WideString; Login: WideString; Passwd: WideString в процедуре как раз своё дело делают отлично...мне интересно почему этот кусок срабатывает:
Код

  dbConnectionString := Connect;
  dbLogin := Login;
  dbPasswd := Passwd;

всё отлично заносится, а вот после выхода из процедуры переменные dbConnectionString, dbLogin, dbPasswd сбрасываются


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
morpheyushka
  Дата 6.6.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 3
Всего: 8



Неужели я первый, кто с этим столкнулся?))))


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
morpheyushka
Дата 6.6.2008, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 3
Всего: 8



Вобщем разобрался сам...решил проблему путём определения всех свойств в процедуре, которая создаёт окно из длл - если кому то интересно - стучите в личку smile 


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
Rohoss
Дата 8.6.2008, 05:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: 4
Всего: 18



А почему var параметры не использовал?


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
Василий Жогарев
Дата 9.6.2008, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 7.6.2008

Репутация: нет
Всего: нет



Цитата(morpheyushka @ 6.6.2008,  10:59)
Народ, подскажите решение...такая проблема - у меня из dll присутствуют несколько юнитов, каждый из которых - формы. Вобщем как определить переменную в длл типа WideString, которая будет видна в каждом моём юните...пробовал передавать её вместе с функцией вызова формы, но передаётся пустая строка, а без этого никак smile 
Может я сильно туплю, но вы сильно не ругайтесь smile 
 smile

Сделай отдельный unit и храни там хоть кучу переменных...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0558 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.