![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть какая нибудь альтернатива Sleep? [D7, WinXP]
Начинаюший2 © (2005-01-05 12:57:00)Проблема в том что Sleep тормозит выполнение других процесов, а мне нужна пауза между запуском каждой программы. Тоесть моя прога, стартует другую прогу, затем другую и т.д., сколько в списке. Но во врема выполнеия Sleep, происходит торможение загрузки прог. Или может что не так в моём коде, вот код:
procedure TForm1.StartClick(Sender: TObject);
var
APchar:array[0..254] of char;
i:Integer;
begin // Çàïóñêàåò ïðîãðàììû èç ñïèñêà ListView3
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKey('\Software\StartManager\List\'+ProgList.Text,true) then
begin
for i:=0 to ListView3.Items.Count -1 do
begin
ShellExecute(handle,nil,StrPCopy(APchar,reg.ReadString(ListView3.Items.
Item[i].Caption)),nil,nil,sw_restore);
if ListView3.Items.Item[i].Index=i-i then
Sleep(Up.Position*1000);
end;
end;
end;
Начинаюший2 (2005-01-05 14:09:00) [21]>KSergey © (05.01.05 13:49) [7]
>Все равно не понимаю
i-i всяко равно 0
приоритет у арифменических операций - больше логических. Зачем там i-i??!
Точно, не заметил, должно быть i-1, отнимаю 1 от индекса ListView3. Хотя щас исправил, задержка пропала вообще. Я хотел убрать задержку после последней проги, из за ошибки не заметил что if ListView3.Items.Item[i].Index=i-i thenвсёравно не дает количество записаных строк. Буду разбираться с этим дальше. Вот только что делать с тормазами при загрузке прог?
TUser (2005-01-05 14:04:00) [22]У себя попробовал - все как надо работает. Загружаем одну прогу, ждем, загружаем вторую, ждем и т.д. Что подразумевается под 'торможением загрузки'?
KSergey (2005-01-05 13:49:00) [23]> [5] Начинаюший2 (05.01.05 13:40)
> Про подчёркнутое я забыл, это чтоб после последней проги
> Sleep не выполнялся,
Все равно не понимаю
i-i всяко равно 0
приоритет у арифменических операций - больше логических. Зачем там i-i??!
Начинаюший2 (2005-01-05 13:47:00) [24]Не, проверил, как и было, тормозит и не стесняется. Я тут подумал, может запускать как из отдельного потока, вот только я с этим ешо не занимался. Что скажите по этому поводу.
Начинаюший2 (2005-01-05 13:40:00) [25]>KSergey © (05.01.05 13:25) [4]
>А в подчеркнутом? Или это я для себя подчеркивал?
Про подчёркнутое я забыл, это чтоб после последней проги Sleep не выполнялся, а то моя форма тоже не перерисовывается в течении этого времени.
>А вот по поводу указания парент-процесса - возможно TUser прав...
Про подсказу TUser я прочёл когда ответил на твой ответ, щас попробую.
KSergey (2005-01-05 13:25:00) [26]> [3] Начинаюший2 (05.01.05 13:14)
> Нет здесь не какого юмора
А в подчеркнутом? Или это я для себя подчеркивал?
А вот по поводу указания парент-процесса - возможно TUser прав...
Начинаюший2 (2005-01-05 13:14:00) [27]>KSergey © (05.01.05 13:05) [1]
>Это юмор такой??
А по существу - странно это... По идее на запуск других прог влиять не должно (хотя может я что не знаю?). Может это ошибочный вывод? На чем он основан?
Нет здесь не какого юмора, если я ставлю больше 3х секунд, то происходит торможение, вторичные формы висят до загрузки следуюшей проги, а если переташить какую форму, остаются следы.
TUser (2005-01-05 13:14:00) [28]Боюсь облажаться - но это никак не связано с тем, что есть parent-процесс. Я обычно там 0 пишу.
KSergey (2005-01-05 13:05:00) [29]> if ListView3.Items.Item[i].Index= i-i then
Это юмор такой??
А по существу - странно это... По идее на запуск других прог влиять не должно (хотя может я что не знаю?). Может это ошибочный вывод? На чем он основан?