Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.058 c
15-1330288203
Юрий
2012-02-27 00:30
2013.03.22
С днем рождения ! 27 февраля 2012 понедельник


15-1353834526
dummy_user
2012-11-25 13:08
2013.03.22
Как сделать сопроводительную документацию?


15-1351704720
Дмитрий С
2012-10-31 21:32
2013.03.22
Ком сервер в сервисе.


15-1352383958
Artem
2012-11-08 18:12
2013.03.22
XP на VirtualBox e запускается со второго раза


15-1351629002
Юрий
2012-10-31 00:30
2013.03.22
С днем рождения ! 31 октября 2012 среда





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский