Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];

Вниз

Почему такое бывает   Найти похожие ветки 

 
r.o.o.t   (2007-11-02 11:48) [0]

Нород такая проблема просветите.
SrvConnection:= TSocketConnection.Create(nil);
  SrvConnection.Address:=Exec_InitSrvConnection_IP_Adrr;
  SrvConnection.Port:=Exec_InitSrvConnection_IP_Port;
  SrvConnection.ServerName:="BrsServer.BrsServer_Controller";
  SrvConnection.ServerGUID:="{AC69FABC-4752-4CF2-99E9-85CE86F99172}";
  SrvConnection.SupportCallbacks:=true;
  SrvConnection.LoginPrompt:=false;
  SrvConnection.Open;
Вот кусок кода создающий TSocketConnection который создается в потоке и конектится на MIDAS сервер трабл заключается в том что весь COM тормазится в системе WinXP  т.е. при попытки открытия *.doc *.xls документов они виснут пока из клиента необратишся к интерфейсу сервера(любому) или невыгрузишь прогу....

КАК быть??


 
Сергей М. ©   (2007-11-06 11:29) [1]

Воспользоваться отладчиком.


 
r.o.o.t   (2007-11-06 17:04) [2]

пользовался и выяснил следующее что после события Open т.е. как состоится подключение к серверу весь COM в Windows останавливается
т.е. невозможно открыть Excel Word итд..


 
Сергей М. ©   (2007-11-06 17:30) [3]


> невозможно открыть Excel Word


Что значит "невозможно" ?


 
r.o.o.t   (2007-11-06 17:51) [4]

ну при открытии документа висят часики пока мое преложение невызовет интерфей сервера если невызвать интрефей сервера то документ неоткроется... и вся COM автоматизация в системе останавливается

если вызвать процедуру создание и подключенения пустить через Synchronize то все работает нормально но при падении трафика мерзнить интерфейс прогррамы. если подлючение делать в потоке без Synchronize все тоже работает но стращно начинает тормазить COM автоматизация (замораживается как интрфейс ) и размораживается исключительнов моменты обращения клиента к среверу....


 
Сергей М. ©   (2007-11-07 08:48) [5]


> если вызвать процедуру создание и подключенения пустить
> через Synchronize


Что ж ты молчишь как партизан на допросе про то, что ты работаешь с TSocketConnection в доп.потоке ?

CoInitialize(nil);
try
.. работа с СОМ/OLE-серверами ..
finally
 CoUninitialize;
end;


 
r.o.o.t   (2007-11-07 09:44) [6]

угу партизан
а почему происходит остановка COM этож как то неверно


 
r.o.o.t   (2007-11-07 09:48) [7]

в каком модуле обьявлен CoInitialize(nil);??


 
r.o.o.t   (2007-11-07 10:32) [8]

обработал этими процедурами вс участки кода где происходит обращение через TSocketConnection непомогло COM тормазит по прежденму
чего я не учел????


 
Slym ©   (2007-11-07 11:09) [9]

CoInitialize(nil);
try
 Connection:=TSocketConnection.Create
 try
  .. работа с СОМ/OLE-серверами ..
 finally
   Connection.Free;
 end;
finally
CoUninitialize;
end;


 
r.o.o.t   (2007-11-07 11:52) [10]

ТАК И ДЕЛАЮ ВСЕ COM тормазит всеравно


 
Сергей М. ©   (2007-11-07 12:26) [11]


> r.o.o.t   (07.11.07 11:52) [10]


А у меня не тормозит.
Что я не так делаю ?


 
r.o.o.t   (2007-11-07 12:52) [12]

ну ты создаешь подключение обращаешся к методу сервера и отключаешся конечно тормазить небудет даже если уберешь CoInitialize(nil) из кода
а проблема в том что тут подключения нужно из потока деражать до завершения ПО тк сервер использует обратный вызов на клиенте и модель пришел выполнил ушел тут я думаю непроканает...
Может я ошибаюсь поясни....


 
Сергей М. ©   (2007-11-07 12:56) [13]

Объясни, за каким лешим ты вынес работу с компонентом в доп.поток, в то время как при разрешенных колбэках транспорт и диспетчеризация внутри компонента и так уже выполняется в доп.потоке ?

И в каком месте и при каких условиях ты обращаешься к СОМ-серверу ?


 
r.o.o.t   (2007-11-07 13:05) [14]

разобралсся достаточно вызыват его в процедуре подключения и отключать в процедуре отключения потока
тем самым свой процесс перевожу STA и все работает
вроде щас тестировать буду


 
r.o.o.t   (2007-11-07 13:07) [15]

вынес потому что при пропажи свзя или падения канала мерзнить интерфей спользователя в котором сие дело создано а когда я егов вынес в оток сие дело прикратилось вот и все...


 
Сергей М. ©   (2007-11-07 13:09) [16]


> вызыват его


Кого "его" ?


> в процедуре подключения и отключать в процедуре отключения
> потока


Это еще что за зверь ?)


 
r.o.o.t   (2007-11-07 15:09) [17]

короче наработает


 
Сергей М. ©   (2007-11-07 15:11) [18]

Как запряг, так и поехал)
Как сформулировал задачу-проблему, так и работать будет.


 
r.o.o.t   (2007-11-07 15:22) [19]

блин формулирую внов!!!

У меня трех звенка через TSocketConnection если разместить компонент на форме или DataModul при плохой свзяи интерфейс пользователя тормазит на моменты запрос ответ.. дале чтобы от этого избавится все вызовы процедур сервера RPC я вынес в поток все заработало и интерфейс перестал тормазить но вылез один баг: Вся COM автоматизация где запущен клиент тормазит и работает только в моменты вызова процедур удаленного сервера тормаза проявляются в том что невозможно использовать COM или OLE т.е. создавать контейнеры и сервера по какой причине непойму но думаю изза блокировк т.к. релизованна много поточная модель....
использование типа
CoInitialize(nil);
try
.. работа с СОМ/OLE-серверами ..
finally
CoUninitialize;
end;

результата недает COM продолжает тормазить.....

если процедуры обращения к серверу пустить через Synchronize то мы избавляемся от тормазов в COM но приобритаем тормаза в интерфейсе программы...

так вот как мне организовать работу к с удаленному серверу RPC в отдельном потоке через TSocketConnection
идет в сторону
CoInitializeEx (NIL, COINIT_MULTITHREADED);


 
Сергей М. ©   (2007-11-07 15:35) [20]


> блин формулирую внов


Не блинкай ! Разблинкался тут, понимаешь)..

За каким вообще лешим ты обращаешься к Ёхелю в доп.потоке ?

С TSocketConnection это еще как-то оправдано..


 
r.o.o.t   (2007-11-07 15:41) [21]

я необращаюсь к экселю
я говорю вообще о том что другие программы использующие COM перестают работать в системе  пока я незавершу свое приложение либо работают в только в моменты вызова методов сервера в моем приложении...


 
Сергей М. ©   (2007-11-07 15:46) [22]

Вот пока вразумительно не ответишь на [16], воз будет все там же)


 
r.o.o.t   (2007-11-07 15:52) [23]

епрст
Кого "его" ?

епрст вызываются методы....

по поводу зверя::: есть процедуры инициализации потока и процедуры остановки потока в которых описаны способы подключения к серверу и отключения вт и все

пойдет??


 
Сергей М. ©   (2007-11-07 15:56) [24]


> пойдет??


Нет, не пойдет.


> есть процедуры инициализации потока и процедуры остановки
> потока


Вот и показывай, что это за процедуры такие - где, как объявлены, где и в каком потоке вызываются...


 
r.o.o.t   (2007-11-07 15:56) [25]

читал про STA и MTA пробовал
все остается так же.... COM торамазит и невозможно работа других програм с ним... работа воможна лишь тогда когда в потоке происходит обращение к методу RPC сервера  но это очень малый промежуток времени...


 
Сергей М. ©   (2007-11-07 15:58) [26]


> читал про STA и MTA пробовал


Ты русский язык понимаешь или нет ?
Тебе по-русски говорят - приводи код этих "процедур" и код их вызова)


 
r.o.o.t   (2007-11-07 15:59) [27]

щаз....
unit Unit2;

interface

uses
 Classes,SysUtils,SConnect,ActiveX,Windows;
 Function Connect:integer;stdcall;
 Function Connect1:integer;stdcall;

type
 Test = class(TThread)
 private
   { Private declarations }
 protected
 public
   procedure Execute; override;
   Procedure Input_proc1(s:string);
   Procedure Excec_proc1;
   Procedure Excec_proc2;
   Procedure Out_proc1;
 end;

 Var
   SIGNAL:TStringList;
   SrvConnection: TSocketConnection;
   function Connect:integer;external "Project2.dll" name "Connect";
   function Connect1:integer;external "Project2.dll" name "Connect1";

implementation

uses Unit1;
  Procedure test.Input_proc1(s:string);
  begin
    SIGNAL.Add(s);
  end;

   Procedure test.Excec_proc1;
   begin
     SrvConnection:=TSocketConnection.Create(nil);
     SrvConnection.Address:="10.10.10.1";
     SrvConnection.Port:=211;
     SrvConnection.ServerName:="Server.Server_Controller";
     SrvConnection.ServerGUID:="{A69FABC-4752-4CF2-99E9-85CE86F99172}";
     SrvConnection.SupportCallbacks:=true;
     SrvConnection.LoginPrompt:=false;
     SrvConnection.Open;
     Synchronize(Out_proc1);
   end;

   Procedure test.Excec_proc2;
   begin
      SrvConnection.Close;
   end;

   Procedure test.Out_proc1;
   begin
     form1.Button1.Caption:="вот";
     form1.Update;
   end;

procedure test.Execute;
var
Signal_:string;
begin
 while True do
 begin
  sleep(30);
  if SIGNAL=nil then
  SIGNAL:=TStringList.Create;
   if SIGNAL<>nil then
    if SIGNAL.Count>0 then
    begin
      Signal_:=SIGNAL.Strings[0];
      SIGNAL.Delete(0);
    end;
   if SIGNAL_="1" then Excec_proc1;
   if SIGNAL_="2" then Excec_proc2;
   Signal_:="";
  end;
 end;

end.


 
Сергей М. ©   (2007-11-07 16:02) [28]

Ну и где в этом коде выполнение рекомендаций из [5], [9] ?


 
r.o.o.t   (2007-11-07 16:06) [29]

вот
  Procedure test.Excec_proc1;
   begin
   CoInitialize(nil)входим из STA
     SrvConnection:=TSocketConnection.Create(nil);
     SrvConnection.Address:="80.69.155.66";
     SrvConnection.Port:=211;
     SrvConnection.ServerName:="BrsServer.BrsServer_Controller";
     SrvConnection.ServerGUID:="{AC69FABC-4752-4CF2-99E9-85CE86F99172}";
     SrvConnection.SupportCallbacks:=true;
     SrvConnection.LoginPrompt:=false;
     SrvConnection.Open;
   CoUninitialize;выходим из STA
     Synchronize(Out_proc1);
   end;

Ничего недает т.е код приведенные выше работает так же как и этот и такая релизация тоже ничего недает

  Procedure test.Excec_proc1;
   begin
   CoInitialize(nil)  входим в STA
     SrvConnection:=TSocketConnection.Create(nil);
     SrvConnection.Address:="80.69.155.66";
     SrvConnection.Port:=211;
     SrvConnection.ServerName:="BrsServer.BrsServer_Controller";
     SrvConnection.ServerGUID:="{AC69FABC-4752-4CF2-99E9-85CE86F99172}";
     SrvConnection.SupportCallbacks:=true;
     SrvConnection.LoginPrompt:=false;
     SrvConnection.Open;
     Synchronize(Out_proc1);
   end;

  Procedure test.Excec_proc2;
   begin
      SrvConnection.Close;
     CoUninitialize; выходим из STA
   end;


 
Сергей М. ©   (2007-11-07 16:13) [30]

А зачем тебе колбэки ?


 
sniknik ©   (2007-11-07 16:13) [31]

> SIGNAL.Strings[0];
вот это не правильно, если ты конечно не ограничиваешь доступ нему только этим потоком (зачем тогда сделал глобальной переменной?), и если ограничиваешь то откуда там утебя тогда появляются обрабатываемые значения?  

> SrvConnection.SupportCallbacks:=true;
а куда, придет сообщение обратного вызова? ни форм, ни выборки/обработки сообщений у тебя в потоке нет.

и вообще какой смысл запихивать это в поток? тут же разовые подключения/обработка создание сообщения в основном для потока займет столько же времени (может чуть меньше) чем их обработка.  

> Ну и где в этом коде выполнение рекомендаций из [5], [9] ?
а тут он с COM и не работает, он посылает сообщение серверу мидас, вот он работает. т.что это не то.


 
sniknik ©   (2007-11-07 16:15) [32]

> Procedure test.Out_proc1;
>   begin
>      form1.Button1.Caption:="вот";
>      form1.Update;
>    end;
вот еще к первому замечанию.


 
Сергей М. ©   (2007-11-07 16:18) [33]


> он с COM и не работает


Почем я знаю, работает он с СОМ или не работает ?)
Бросил огрызок кода и сидит ждет у моря погоды)

Во-первых, неизвестно где находится и что делает его апп-сервер, может он на той же машине и в нем черт-те что и сбоку бантик ..

Во-вторых, неизвестно обрабатываются ли колбэки и как обрабатываются ...


 
r.o.o.t   (2007-11-07 16:23) [34]

1. в данном куске кода необрабатываются CallBack но он необходим
2. сервер находится на удаленной машине функционирует нормально...
3. MIDAS  использует COM
4. SIGNAL.Strings[0]; итак глобальная переменная но доступ к ней из одного птока вызов происходит через
  Procedure test.Input_proc1(s:string);
 begin
   SIGNAL.Add(s);
 end;
где s =1 или 2 по данным значиниям вызываются proc1 proc2


Вопрос почему виснет весь COM в системе


 
Сергей М. ©   (2007-11-07 16:35) [35]


> почему виснет весь COM в системе


Потому что у тебя совершенно бестолковый цикл в методе Execute, беспардонно отжирающий у планировщика уйму квантов времени, ничего полезного при этом не делая.


> SIGNAL.Strings[0]; итак глобальная переменна


Какого же лешего ты не синхронизируешь мультипоточные обращения к этому ресурсу ?


 
r.o.o.t   (2007-11-07 16:40) [36]

т.е. ну допустим мой код Execute перегружает планировщих и непозволяет COM работаь правельно с атомами тогда возникает вопрос почему все прекрасно работает только в момент вызова процедур к MIDAS а в моменты ожидания все виснет даже если обрабатывается  другие процедуры


 
r.o.o.t   (2007-11-07 16:41) [37]

в частности виснет COM


 
Сергей М. ©   (2007-11-07 16:44) [38]


> почему все прекрасно работает только в момент вызова процедур
> к MIDAS


Потому что при ожидании ответа апп-сервера на запрос транспортный поток, созданный компонентом. переходит в kernel-time.

Исходники компонента Борланд предоставил для тебя, а не для Пушкина)


 
r.o.o.t   (2007-11-07 16:47) [39]

тем самы освобаждая планировщик....

ок дай пару реализаций  вызова процедур из потока


 
Сергей М. ©   (2007-11-07 16:47) [40]


> в момент вызова процедур к MIDAS


К тому же в приведенном тобой шматке кода нет ни намека на такие вызовы.


 
sniknik ©   (2007-11-07 16:48) [41]

> почему виснет весь COM в системе

сделай пример (далее смутно, обьяснить трудно (давно с мидас не работал), просто проверь, все вместе и если заработает поодиночке)

1 не трогай SIGNAL извне, лучше вообще убери
2 SrvConnection сделай переменной класса, лучше приватной чтобы доступа извне не было
3 TSocketConnection.Create(nil); вместо nil подставь форму, форму сделай тут же в потоке (локальная переменная)
4 назначь парентом у SrvConnection туже созданную форму.
5 закоментарь SrvConnection.SupportCallbacks:=true;
6 вставь в Execute "пустышку" типа
procedure test.Execute;
begin
 Excec_proc1;
 while not Terrminated do
    sleep(30);
 Excec_proc2;
end;

(CoInitialize/... в принципе можно убрать)

так не виснет?


 
Сергей М. ©   (2007-11-07 16:49) [42]


> дай пару реализаций  вызова процедур из потока


Что значит "дай" ?! Да еще и "пару" ?)

Вызов процедуры - он и в Африке вызов процедуры. Иначе как не из потока процедуру вызвать невозможно)


 
r.o.o.t   (2007-11-07 16:49) [43]

да я просто нестал описывать их но суть остается преждней....


 
Сергей М. ©   (2007-11-07 16:51) [44]


> я просто нестал описывать


Ну раз ты в них непокобелимо уверен, продолжай париться)


 
sniknik ©   (2007-11-07 16:51) [45]

и еще кстати проверка, без которой все выше бессмысленно, сделать Excec_proc1; Excec_proc2; для основного потока, добиться работы при их вызове. (и форму тогда не надо создавать, главную подставить)


 
sniknik ©   (2007-11-07 16:53) [46]

> но суть остается преждней....
суть меняется с каждым измененным/добавленным фактом...

сравни.
комп ни с того ни сего перестал работать. почему?

уронил на комп гирю в 24кг и он перестал работать. почему?


 
r.o.o.t   (2007-11-07 16:53) [47]

sniknik ©   (07.11.07 16:48) [41]
> почему виснет весь COM в системе
procedure test.Execute;
begin
Excec_proc1;
while not Terrminated do
   sleep(30);
Excec_proc2;
end;
всеравно виснет

Сергей М. ©   (07.11.07 16:49) [42] вот код который незагружает планировщик проблема остается почему??


 
Сергей М. ©   (2007-11-07 16:56) [48]


> r.o.o.t   (07.11.07 16:53) [47]


Убери колбэки, убери ВСЕ лишнее,т приведи результ.код, а там посмотрим ...


 
sniknik ©   (2007-11-07 16:57) [49]

> всеравно виснет
и это все что ты сделал? из того что я написал.

p.s. вот это сразу поменяло смысл нашего общения.


 
r.o.o.t   (2007-11-07 16:57) [50]

щас даю код


 
Сергей М. ©   (2007-11-07 16:58) [51]


>    function Connect:integer;external "Project2.dll" name
> "Connect";
>    function Connect1:integer;external "Project2.dll" name
> "Connect1";
>


А это чего такое ?


 
r.o.o.t   (2007-11-07 17:00) [52]

unit Unit2;

interface

uses
 Classes,SysUtils,SConnect,ActiveX,Windows;

type
 Test = class(TThread)
 private
   { Private declarations }
    SrvConnection: TSocketConnection;
   procedure Execute; override;
   Procedure Excec_proc1;
   Procedure Excec_proc2;
 protected
 public
 end;

implementation

uses Unit1;
   Procedure test.Excec_proc1;
   begin
     SrvConnection:=TSocketConnection.Create(nil);
     SrvConnection.Address:="80.69.155.66";
     SrvConnection.Port:=211;
     SrvConnection.ServerName:="BrsServer.BrsServer_Controller";
     SrvConnection.ServerGUID:="{AC69FABC-4752-4CF2-99E9-85CE86F99172}";
     //SrvConnection.SupportCallbacks:=true;
     SrvConnection.LoginPrompt:=false;
     SrvConnection.Open;
   end;

   Procedure test.Excec_proc2;
   begin
      SrvConnection.Close;
   end;

procedure test.Execute;
var
Signal_:string;
begin
  Excec_proc1;
  while true do sleep(30);
end;

end.


 
r.o.o.t   (2007-11-07 17:01) [53]

виснет


 
r.o.o.t   (2007-11-07 17:02) [54]

поток создаю вот так
 Testq:=Test.Create(false);
 Testq.Priority:= tpIdle;


 
Сергей М. ©   (2007-11-07 17:08) [55]


> виснет


т.е. ты утверждаешь, что ф-ция

CreateOleObject("Excel.Application");

будучи вызванная после [54], не возвращает управления и намертво блокирует вызвавший ее поток ?


 
r.o.o.t   (2007-11-07 17:16) [56]

даа
попробуй открыть эксель или отлюк или любую программу которое использует com или ole


 
r.o.o.t   (2007-11-07 17:17) [57]

висяяяк


 
sniknik ©   (2007-11-07 17:38) [58]

r.o.o.t   (07.11.07 17:00) [52]
проверил. не висит.

замены
 SrvConnection.Address:="127.0.0.1"; //свой комп
 SrvConnection.ServerName:="GDBServer.GDBMetods"; //свой сервер
 SrvConnection.ServerGUID:="{384C6DAA-75AC-4E11-94EE-18443EB220C8}";


 
r.o.o.t   (2007-11-07 17:41) [59]

а ты что пробовал??
CreateOleObject("Excel.Application");
попробой через Excplorer открыть Excel документ


 
r.o.o.t   (2007-11-07 17:43) [60]

заменил
SrvConnection.Address:="127.0.0.1";
запустил сервер локально висит


 
sniknik ©   (2007-11-07 17:44) [61]

> а ты что пробовал??
> CreateOleObject("Excel.Application");
Excel:= CreateOleObject("Excel.Application");
Excel.Visible:= true

> попробой через Excplorer открыть Excel документ
руками открывал ворд, есть разница?


 
r.o.o.t   (2007-11-07 17:49) [62]

кончно создай документ ворд или есель и попробуй его открыть руками а не саму оболчку
кстате Excel:= CreateOleObject("Excel.Application"); работает а вот пр окрытии руками неработает ваще запутался


 
sniknik ©   (2007-11-07 17:54) [63]

руками все работает, и оболочка, и ексель и ворд, и если документ открываешь, и тыкая на него из проводника и отрывая в оболочке. (т.е. подозреваю по любому)

т.е. то что у тебя "вешает" до сих пор "за кадром".


 
r.o.o.t   (2007-11-07 17:57) [64]

пришли свой код
данная проблема на всех клиентах
у тебя подключение держиться??


 
r.o.o.t   (2007-11-07 17:58) [65]

если да где может быть проблема??


 
r.o.o.t   (2007-11-07 18:14) [66]

создал голый MIDAS сервер
код переделал
SrvConnection:=TSocketConnection.Create(nil);
     SrvConnection.Address:="10.107.46.188";
     SrvConnection.Port:=211;
     SrvConnection.ServerName:="Project1.test";
     SrvConnection.ServerGUID:="{5AD38E74-551A-4D32-BA46-EF5A71D886DF}";
     //SrvConnection.SupportCallbacks:=true;
     SrvConnection.LoginPrompt:=false;
     SrvConnection.Open;

всеравно виснет


 
r.o.o.t   (2007-11-07 18:22) [67]

еще заметил ососбенность после подключения к серверу подождать 30 40 сек вручную excel запускается нормально и последующие разы тоже после подключения обратится сразу то висяк гдето 50 сек потом открывается и последующие разы открывается нормально но ежели опять вызвать метод сревера опять висяк....


 
sniknik ©   (2007-11-07 19:33) [68]

> пришли свой код
???
"код" я взял из [52] as is, простым копированием, замены которые произвел (ну нет у меня твоего сервера) указаны в [58]. все пробы делались на этом.


 
Сергей М. ©   (2007-11-08 08:38) [69]


> попробой через Excplorer открыть Excel документ


А причем здесь COM ?

Ёхель в этом случае используется не как COM-сервер, а как обычное приложение.


 
r.o.o.t   (2007-11-08 12:52) [70]

сервак пустой просто RemoteData Modul без процедур и методов
разници нет тормазит как на рабочем так и на тестовом код потока вот
unit Unit2;

interface

uses
 Classes,SysUtils,SConnect,ActiveX,Windows;

type
 Test = class(TThread)
 private
   { Private declarations }
    SrvConnection: TSocketConnection;
   procedure Execute; override;
   Procedure Excec_proc1;
   Procedure Excec_proc2;
 protected
 public
 end;

implementation

uses Unit1;
   Procedure test.Excec_proc1;
   begin
     SrvConnection:=TSocketConnection.Create(nil);
     SrvConnection.Address:="10.107.46.188";
     SrvConnection.Port:=211;
     SrvConnection.ServerName:="Project1.test";
     SrvConnection.ServerGUID:="{5AD38E74-551A-4D32-BA46-EF5A71D886DF}";
     //SrvConnection.SupportCallbacks:=true;
     SrvConnection.LoginPrompt:=false;
     SrvConnection.Open;
   end;

   Procedure test.Excec_proc2;
   begin
      SrvConnection.Close;
   end;

procedure test.Execute;
var
Signal_:string;
begin
  Excec_proc1;
  while true do sleep(30);
end;

end.

Тормаза проявляется следующим способом при открытии допусти документов Excel Word из Outlook или через эксплорер сопровождаются висяками возможно при открытии используеьтся ShellExcute хз выложи свой код тормазит на всех клинтских машинах... где стоит WinXP и Office 2003 проект компилится в D2006


 
ага   (2007-11-21 05:03) [71]

А ежель так?
procedure test.Execute;
var
msg: tmsg;
begin
 Excec_proc1;
 while GetMessage(...) do dispatchmessage(...)
end



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.64 MB
Время: 0.092 c
4-1180073252
leonidus
2007-05-25 10:07
2007.12.16
Как перерисовать Scroll у TRichEdit`а ?


2-1193993327
r.o.o.t
2007-11-02 11:48
2007.12.16
Почему такое бывает


2-1195625789
Kolan
2007-11-21 09:16
2007.12.16
Помогите сделать маску в MaskEdit.


1-1190714064
Илья_С
2007-09-25 13:54
2007.12.16
Фокус ListView


6-1175800832
malyar
2007-04-05 23:20
2007.12.16
склейка пакетов в сокете





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский