być może chodzi o odwołanie sie do zmiennych globalnych z biblioteki, ale nie wiem jak to wyminąć.
library Lorika;uses Windows, SysUtils, Classes, Dialogs, System, Unit1 in 'Unit1.pas', PluginAPI in 'PluginAPI.pas';type TWatek = class(TThread) protected procedure Execute; override; end;var PluginInfo: TPluginInfo; PluginLink: TPluginLink; path: String; Watek : TWatek; Tpcs: TPluginStateChange; Ppcs: PPluginStateChange; frame : array[1..5] of WideString;const PLUGIN_SHORTNAME = 'Lorika';{$R *.res}//Hooksfunction OnModulesLoad(wParam, lParam: DWord): Integer; stdcall; forward;procedure TWatek.Execute;var i:Integer;begin FreeOnTerminate := True; repeat for i:=1 to 5 do begin Sleep(3000); PluginLink.CallService(AQQ_FUNCTION_GETNETWORKSTATE,Cardinal(Ppcs),0); Tpcs.Force:=TRUE; Tpcs.ByHand:=TRUE; Tpcs.Status:=PWideChar(frame[i]); //PluginLink.CallService(AQQ_SYSTEM_SETSHOWANDSTATUS,0,Cardinal(Ppcs)); end; Sleep(40000); until Watek.Terminated;end;procedure getSlajds;var TF : TextFile; C : Char; ss,i:integer;begin path := PWideChar(PluginLink.CallService(AQQ_FUNCTION_GETPLUGINUSERDIR,hInstance ,0)); for i:=1 to 5 do begin frame[i]:=''; AssignFile(TF, path+'\Lorika\s'+IntToStr(i)+'.txt'); try Reset(TF); ss:=0; while (not Eof(TF)) and (ss<70)do begin Read(TF, C); frame[i]:=frame[i]+C; ss:=ss+1; end; finally CloseFile(TF); end; end;end;function Load(Link: PPluginLink): Integer; stdcall;begin PluginLink := Link^; PluginLink.HookEvent(AQQ_SYSTEM_MODULESLOADED, OnModulesLoad); Ppcs:=@Tpcs; getSlajds; Watek := TWatek.Create(True); Watek.Resume; Result:=0;end;function AQQPluginInfo(AQQVersion: DWord): PPluginInfo; stdcall;begin PluginInfo.cbSize := SizeOf(TPluginInfo); PluginInfo.ShortName := PLUGIN_SHORTNAME; PluginInfo.Version := PLUGIN_MAKE_VERSION(1,0,0,0); PluginInfo.Description := ''; PluginInfo.Author := ''; PluginInfo.AuthorMail := ''; PluginInfo.Copyright := ''; PluginInfo.Homepage := ''; PluginInfo.Flag := 0; PluginInfo.ReplaceDefaultModule := 0; Result := @PluginInfo;end;function Settings: Integer; stdcall;begin Result := 0; path := PWideChar(PluginLink.CallService(AQQ_FUNCTION_GETPLUGINUSERDIR,hInstance ,0)); if not Assigned(Form1) then begin Form1 := TForm1.Create(nil); end; Form1.setThemePath(path); Form1.ShowModal; FreeAndNil(Form1);end;function Unload: Integer; stdcall;begin Result := 0; PluginLink.UnhookEvent(THandle(@OnModulesLoad)); if Assigned(Form1) then FreeandNil(Form1);end;function OnModulesLoad(wParam{0},lParam{0}:DWord): Integer; stdcall;begin Result := 0;end;exports Load, Unload, AQQPluginInfo, Settings;beginend.