просто без этого то код бесполезный совершенно)
	Код:
	 @plugExec := GetProcAddress(PPluginInfo(listKomand.Items[n1])^.handle,'PluginExec');
 Result:=PlugExec(UIN, Msg,PPluginInfo(listKomand.Items[n1])^.Index);
 i:=random(10);
   case i of
    0: ;
    1: Result:=Result+#10#13+rekl1;
    2: Result:=Result+#10#13+rekl2;
    3: Result:=Result+#10#13+rekl3;
    4: Result:=Result+#10#13+rekl4;
    5: Result:=Result+#10#13+rekl5;
    6: Result:=Result+#10#13+rekl6;
    7: Result:=Result+#10#13+rekl7;
    8: Result:=Result+#10#13+rekl8;
    9: Result:=Result+#10#13+rekl9;
  end;
form1.MessageSend(UIN,Result,nomer); 
вот так стабильно работает, перед вызовом потока делал работу с memo и label, не  желательно конечно но обойдусь (хотя есть идея переписать некоторые моменты отказавшись от VCL компонентов, заменить ListBox'ы на StringList'ы к примеру)
А вот для такой работы с бд, 
	Код:
	Query.SQL.text:='UPDATE bdbot SET INFObd=:par1 where UINbd=:par2';
Query.Parameters.ParamByName('par1').Value:=pacet.mesg;
Query.Parameters.ParamByName('par2').Value:=pacet.param2;
Query.ExecSQL; 
или
	Код:
	Query.SQL.text:='Select UINbd from bdbot where nomber=:id';
Query.Parameters.ParamByName('id').Value:=Msg;
Query.Open; 
синхронизация необходима?