AllocateHWnd не реализован

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

AllocateHWnd не реализован

Сообщение immortal1977 » 13.12.2009 14:10:51

Решил перенести свой компонент из Delphi в Lazarus. Во время запуска ругается Runtime error 217. Стал дебагить и увидел такую картину в Classes:
Код: Выделить всё
function AllocateHWnd(Method: TWndMethod): HWND;
  begin
    { dummy }
    runerror(217);
    Result:=0;
  end;
procedure DeallocateHWnd(Wnd: HWND);
  begin
    { dummy }
    runerror(217);
  end;                                         


Невидимым окном в delphi пользуюсь уже давно для асинхронной развязки с тредом, PostMessage, и тред работает дальше, не останавливаясь. Как же быть на Lazarus?
Lazarus 0.9.29 FPC 2.3.1

Добавлено спустя 1 час 58 минут 46 секунд:
Пришлось самому реализацию ручкам прикрутить. Но это не кроссплатформенно. Как вариант, в качестве асинхронной развязки пришла идея через Pipes. Но что-бы эффект был как от мессаджей, надо отдельный тред прикручивать, дальше отправлять мессадж в pipe и стрелять евент, а в треде на WaitForSingleObject(INFINITE) (наверное тоже не кроссплатформенно) скидывать евент, читать из Pipe и обрабатывать. Не очень красивое решение :-(
immortal1977
новенький
 
Сообщения: 16
Зарегистрирован: 14.07.2008 15:52:23
Откуда: Новоуральск

Re: AllocateHWnd не реализован

Сообщение Павел Ишенин » 13.12.2009 19:13:44

AllocateHWND реализован в Lazarus только для win32. Есть нужда и желание - шлите патчи под другие библиотеки. Желательно вначале для gtk2.
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 18

Рейтинг@Mail.ru