Копию моей MainForm не рекомендую, могут быть отличия по версиям HiAsm. Да, еще, компиляцию под fpc не гарантирую. А теперь рекомендации чайника по доработке компонента.
1.Выделяете на схеме MainForm.
2.Нажмите ctrl-F, появится код компонента.
3.В самом начале будет строчка типа...
uses Windows,Kol,Share,Win,Messages,MMSYSTEM;[/code]
Вставьте слово которое выделено заглавными буквами.
4.Идем ниже, и в разделе "public" вставляем три строчки
_event_onWimData:THI_Event;
_event_onWomData:THI_Event;
_event_onCopyData:THI_Event;
(увидите там похожие)
5.Идем ниже и после слова "implementation" ищем начало функции обработки сообщений:
function THIMainForm._onMessage;
begin
case Msg.message of
WM_COPYDATA: _hi_OnEvent(_event_OnCopyData,Msg.LParam);//***********************
MM_WIM_DATA: _hi_OnEvent(_event_OnWimData{,Msg.lParam});//************************
MM_WOM_DONE: _hi_OnEvent(_event_OnWomData{,Msg.wParam});//***********************
WM_ACTIVATE:
if Msg.WParam > 0 then
begin
_hi_OnEvent(_event_onActivate);
end
else if Msg.WParam = 0 then _hi_OnEvent(_event_onDeActivate);
//WM_CREATE: if IsMain then Applet.SetPosition(_prop_Left,_prop_Top);
//WM_SHOWWINDOW: if Msg.wParam = 1 then SendMessage(Control.Handle,WM_USER+34,0,0);//_OnShow(Control);
WM_CLOSE: begin _onClose(Control,Result);Result := not Result; exit; end;
WM_SIZE: if isMain and Assigned(Applet) then Applet.Width := Control.Width;
WM_MOVE:
begin
if isMain and Assigned(Applet) then
Applet.SetPosition(Control.Left,Control.Top);
if Assigned(Control.OnPaint) then _hi_OnEvent(_event_onMove);
end;
end;
Добавьте три строчки, которые выделены рядом звездочек.
6.Закройте код. Снова выделяйте MainForm и нажимаете ctrl-G. Появится код ini файла.
7. В разделе "[Methods]" вставьте три строчки:
onCopyData=Получено сообщение WM_COPYDATA|2|
onWimData=Получено сообщение MM_WIM_DATA|2|
onWomData=Получено сообщение MM_WOM_DATA|2|
8.Закройте все (в т.ч. и сам конструктор).
9.Снова откройте HiAsm, на MainForm справа внизу появятся три выходные точки.
ВСЕ.