Вниз
Скачать: CL | DM;

Заменяя ProcessMessages   Найти похожие ветки 

← →
AV ©   (2012-02-29 11:43) [0]

function TForm1.WaitForTrue(nDelay: integer; P: PBoolean): boolean;
var
 Msg: TMsg;
 n: Integer;
begin
 n := 0;
 repeat
   if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then
   begin
     TranslateMessage(Msg);
     DispatchMessage(Msg);
   end;
   Sleep(50);
   n := n + 1;
 until (n > nDelay) or P^;
 Result := (n <= nDelay);
end;

для чего..
Собственно, что б потоков лишних не плодить
например,
TcpClient.Open
if WaitForTrue(50, addr(TcpClient.Connected)) then
  соединились вовремя    иначе
  вовремя не соединились

Огребу?


← →
Cobalt ©   (2012-02-29 13:09) [1]

А чем тебе не нравится ProcessMessages?


← →
Anatoly Podgoretsky ©   (2012-02-29 13:23) [2]

ProcessMessages и равен    if PeekMessage(...


← →
CRLF   (2012-02-29 13:43) [3]

Есть мнение, что на addr(TcpClient.Connected) тебя будет ждать грандиозный облом.


← →
AV ©   (2012-02-29 14:03) [4]

>> Anatoly Podgoretsky ©   (29.02.12 13:23) [2]
ну, да оттуда идею и сдернул.
Просто еще WM_Quit не анализируется и прочее, прочее
И еще, удобно нахожу это :)


> CRLF   (29.02.12 13:43) [3]
> Есть мнение, что на addr(TcpClient.Connected) тебя будет
> ждать грандиозный облом.

не суть.
Можно еще переменную завести, на onStatus повесить, например. И по ней ориентироваться.
основное - удобно. Не?
одной сторокой - ЖдатьМаксимумСтолькоДоСобытия
(не обязательно, до True, можно еще чем заменить..)


← →
AV ©   (2012-02-29 14:05) [5]


> А чем тебе не нравится ProcessMessages?

Основное..
На мессаджи у меня обычно есть чего наподвязано.
и OnMessage иногда надо обойти


← →
CRLF   (2012-02-29 14:28) [6]


> не суть.
Может и не суть, но в "Начинающих" лучше предупредить. :-)

А вариант с WaitForSingleObject не катит?


← →
Cobalt ©   (2012-02-29 16:20) [7]

Автор - однозначно любитель странного :-)


← →
Забаненный   (2012-02-29 21:53) [8]

странное не значит - плохое ;)


← →
Сергей М. ©   (2012-02-29 23:39) [9]


> Просто еще WM_Quit не анализируется и прочее


А надо бы, иначе огребешь.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.047 c
15-1351557893
Вепрь
2012-10-30 04:44
2013.03.22
Как получить список всех процессов?


15-1350641276
Ega23
2012-10-19 14:07
2013.03.22
А вот вам, пятничная задачка


2-1326742131
Рома
2012-01-16 23:28
2013.03.22
Нужно сделать трассировку


15-1342427412
alexdn
2012-07-16 12:30
2013.03.22
Золотые слова Гейтса


15-1335422333
Дмитрий С
2012-04-26 10:38
2013.03.22
Кадр из 112 серии интернов.




   Наверх