Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перетаскиваю из экзешника форму(модальный диалог) в дэлэлэ. [D7, Win95/98]


Yttrium ©   (2003-02-06 01:38:00) 

Тут такие препятствия!!!
Надо чтоб тот диалог ссылался на TIniFile в главной форме.

Почему непрокатывает если функцию объявить примерно так(in DLL):

function DlgList(varINI:TIniFile): Boolean;
begin
with TFormList.Create(nil) do
begin
ini := varini; //ini - переменная в TFormList
Result := (ShowModal = 1);
free;
end;
end;


Точнее прокатывает но после тогого как несколько раз пощёлкаешь в TFormList по TListBox, в обработчике которого идёт обращение к TIniFile каждый Click, желаемый эффект пропадает! Вылетает ошибка "Access violation at address 00401E43 in module "MyINI.EXE". Write of address 02571574". Была бы это хотя бы предвиденная ошибка я бы кинулся отловить ёё, дело в том что всё работало в составе EXE лучше некуда.

Мож я непонемаю как правильно передать процедуре экземпляр класса!!!
Я незнаю как правильно передать процедуре экземпляр класса!!!

И ёщё диалог имеет свою кнопульку на ТаскБаре, как я нестарался - ну скрыл, при возврате из другого приложения ни в какую нехочет окно на передний план выползать.

Какже быть?
ЗЫ Где-то видел какойто креньдель конструктору подсунул Application, т.е. TFormXXXX.Create(Application), откуда он в DLL взял Application????


Yttrium   (2003-02-08 03:27:00) [1]

Здесь слово "перетаскиваю" означает не буквально физический захват мышью с последующим перемещением, а значит процесс модификации алгоритма, позволяющий вызвать конструктор формы, через экспортируемую функцию DLL, которой так же передаются некоторые параметры.


Nick_N_A   (2003-02-06 05:23:00) [2]

Несовсем понятна задача.
Перемещение окна:
ReleaseCapture;
SendMessage(Handle,WM_SYSCOMMAND,WM_MOVE+2,0);


Наверх

Титульная страница Поиск, карта сайта Написать письмо