![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Пишу DLL расширение на Win Api для стороннего приложения немогу разобратся как командами Api обновить созданное окно, если использовать application.ProcessMessages() тогда всё работает, но здесь проблема размер библиотеки увеличивается многократно.
Может существует аналого данной функции. |
|
#2
|
||||
|
||||
|
ну если заглянуть в Forms.pas, то можно оттуда (из TApplication точнее говоря) вытащить (код уже отделен от классового):
Код:
function ProcessMessage(var Msg: TMsg): Boolean;
//var
// Handled: Boolean;
begin
Result := False;
if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then
begin
Result := True;
if Msg.Message <> WM_QUIT then
begin
// Handled := False;
// if Assigned(FOnMessage) then FOnMessage(Msg, Handled);
// if not IsHintMsg(Msg) and not Handled and not IsMDIMsg(Msg) and
// not IsKeyMsg(Msg) and not IsDlgMsg(Msg) then
// begin
TranslateMessage(Msg);
DispatchMessage(Msg);
// end;
end;
// else
// FTerminate := True;
end;
end;
procedure ProcessMessages;
var
Msg: TMsg;
begin
while ProcessMessage(Msg) do {loop};
end; |