Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизЗаменяя 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 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.821 c