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

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

Форма и DLL. Архиваторный плагин [Delphi, Windows]


Моторокер ©   (2007-01-27 11:58:00) 

Пишу архиваторный плагин для Total Commander на Delphi
С VCL разобрался, теперь пытаюсь уменьшить размер плагина с помощью KOL&MCK

Форма вызывается как модальная, но программа работает дальше сразу после ShowModal.

Код самой формы в модуле Setup.pas

// настройка плагина
function ConfigurePacker(Parent: HWND; DLLinstance: integer): integer; stdcall;
var
 fm: PfmSetup;
begin
 NewfmSetup(fm, nil);
 MsgOK('Run...');
 {Run(fm.Form);
 MsgOK('Показать форму...');}
 fm.Form.ShowModalEx;
 MsgOK('Удалить форму...');
 fm.Form.Free;
 fm:= nil;
 Result:= E_SUCCESS; // Выполнено успешно
end;


Исходник:
http://motorocker.nm.ru/download/pluginsimple5.rar(23 Kb)

Анализ примеров ничего не дал.


Моторокер   (2007-02-28 22:09:00) [1]

Нашёл – надо писать fm.Form.ShowModalEx вместо fm.Form.ShowModal;


Моторокер   (2007-02-20 22:17:00) [2]

Всё работает как надо, но форма не модальная – Total Commander может получить фокус.


Моторокер   (2007-02-06 15:01:00) [3]

м-да вместо Build ptoject сделал Build all ptojects

заработало! спасибо! буду разбираться дальше


AlexM   (2007-02-01 09:10:00) [4]

TKolApplet можно и не ложить. Без него ,у меня работает тоже.


AlexM   (2007-02-01 08:03:00) [5]

Я открыл твой плагин, сделал как в [4],сохранил,нажал Close All,опять открыл,нажал build all projects и заработало( "удалить форму"  появляется когда нажимаю кнопку на форме)


Моторокер   (2007-01-31 08:40:00) [6]

...и так пробовал и так тоже. Попробую ещё.


AlexM   (2007-01-28 09:09:00) [7]

На форму положи TKOLApplet,
а в Main.pas:

function ConfigurePacker(Parent: HWND; DLLinstance: integer): integer; stdcall;
var
 fm: PfmSetup;
begin
 NewfmSetup(fm, Applet);


Моторокер   (2007-01-27 13:15:00) [8]

Сообщения MsgOK только для тестирования

после
fm.Form.ShowModal;
сразу вызывается
MsgOK('Удалить форму...');

в VCL всё аналогично, на работает нормально


Psychedelic   (2007-01-27 12:31:00) [9]

А блин, это ж DLL.


Psychedelic   (2007-01-27 12:30:00) [10]

MessageBox API юзай, и указывай хэндл. Должно сработать.


Наверх

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