реализация Application.ProcessMessages

Тема в разделе "WASM.BEGINNERS", создана пользователем ltshck, 19 мар 2009.

  1. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    как сделать на ассембелере, в шелл коде

    Application.ProcessMessages()
    или
    Application.DoEvents()

    ?

    как это сделать через WinAPI?
     
  2. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    Зачем? Просто создай thread (CreateThread) и укажи адрес своей процедуры в качестве параметра:
    Код (Text):
    1. invoke CreateThread, 0, 0, lpFunctionAdress, 0, 0, 0
     
  3. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    ... чуть не то... хм...
     
  4. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    function TApplication.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;
     
  5. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    короче самим вызывать getmessage
    translate и dispatch...

    .ок. только речь была о шелкоде а не делфе
     
  6. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    почитай ицзелиона - он описывает, как на асме работать с сообщениями и колбеками. Правда, где его найти - вот это хз