Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Stringgrid и Таймер или циклы


Vadim-Nicodim ©   (2009-05-02 18:19:00) 

for k := 0 to StringGrid1.RowCount - 1 do
ShellExecute(Handle,'open',pchar(StringGrid1.Cells [1,k]),nil,nil,SW_SHOWNORMAL);

При данной раскладке передается все содержимое stringgrid,
а нужно чтоб открылось одно окно-задержка-закрытие...следущее окно-задержка-закрытие.....и тд
подскажите пож-та....а то у меня все одним чохом лезет


sniknik   (2009-05-03 22:08:00) [1]

> лучше сменить алгоритм.
вот кстати нафига внешний IE для "слайд шоу"? почему TWebBrowser не использовать? и зачем цикл? если все прекрасно меняется по таймеру. и с ним можно легко сделать например "притормаживание просмотра/следующий, предыдущий кадр/авто воспроизведение" а не только "авто".


sniknik   (2009-05-03 22:03:00) [2]

> открывать не в окне,а в вкладочках...
зависит от пользовательских настроек, кому как нравится тот так и может выставить.

писать под какую то одну настройку глупо. лучше сменить алгоритм.


Vadim-Nicodim   (2009-05-03 22:02:00) [3]

Стоп...да,уважаемый Юрий Зотов...в принципе может.....А мы тогда ...еще до старта заставим все окна закрыть......


Vadim-Nicodim   (2009-05-03 21:59:00) [4]

Если был уже запущен IE то критической ситуации не произойдет...даже если было 10 окон (IE) открыто....здесь беда немножко в другом...что IE (7 версия) имеет нехорошую привычку(если ошибаюсь-поправьте) открывать не в окне,а в вкладочках...А это значит,что уже не будет автомата,так как будет запрос на закрытие и в случае большого кол-ва открытых окон зависание неизбежно....


{RASkov}   (2009-05-03 21:43:00) [5]

> [6] Vadim-Nicodim ©   (03.05.09 21:17)
> Может кто-нибудь подскажет грамотное решение этого вопроса?

Я что-то не могу себе представить нужность(отсюда незнаю как ответить) данного алгоритма, а про его реализацию(код [6]) вообще молчу.... ужас :)


Юрий Зотов   (2009-05-03 21:41:00) [6]

> Vadim-Nicodim ©   (03.05.09 21:17) [6]

Ну вот, теперь окно появилось (FindWindow), теперь есть о чем говорить.

Но с чего Вы взяли, что этот код "насилует" систему? Ничуть.

Поток на 5 секунд останавливается - значит, 5 секунд он не обрабатывает никаких сообщений и поэтому создается впечатление "зависшей" программы или занятости системы. На самом же деле ни программа не зависла, ни система не занята больше обычного. Просто в течение 5 секунд нет перерисовки юзерского интерфейса, только и всего. А чтобы этого избежать, создайте поток (TThread) выполняйте тот же самый код в его методе Execute.

Однако, у Вашего кода есть другой недостаток, более серьезный. Предположим, еще до запуска Вашей программы у юзера был запущен IE. Что произойдет?


Vadim-Nicodim   (2009-05-03 21:17:00) [7]

Спасибо ВСЕМ КТО ОТВЕЧАЛ И КТО НЕ ОТВЕЧАЛ,на несовсем правильно поставленный вопрос....На счет изнасилования IE ничего сказать не могу,а вот систему насилует такой код капитально....
Виню в этом sleep и свои кривые руки...

procedure TForm1.StartuemClick(Sender: TObject);
var
k: longint;
H: HWND;
begin
StringGrid2.RowCount:=StringGrid2.RowCount+1;
k:=StringGrid2.RowCount-3;

  for k := 0 to StringGrid1.RowCount - 1 do
 if k<>0 then
 begin

ShellExecute(Handle,'open',pchar(StringGrid1.Cells [1,k]),nil,nil,SW_SHOWNORMAL);
sleep(5000);

H := FindWindow('IEFrame', nil);
SendMessage(H, WM_SYSCOMMAND, SC_CLOSE, 0);
end;

end;
Может кто-нибудь подскажет грамотное решение этого вопроса?


KilkennyCat   (2009-05-03 11:59:00) [8]

любопытно, зачем так насиловать ИЕ?


Юрий Зотов   (2009-05-02 22:01:00) [9]

> Vadim-Nicodim ©   (02.05.09 18:19)

Цикл есть. А где окно-то? Нет его.

А чего ж Вы тогда хотите?


Германн   (2009-05-02 19:43:00) [10]


> Vadim-Nicodim ©   (02.05.09 18:19)  

http://delphimaster.ru/cgi-bin/faq.pl?look=1&id=988621841&n=15


Vadim-Ncodim   (2009-05-02 19:41:00) [11]

окно IE


{RASkov}   (2009-05-02 19:03:00) [12]

> [0] Vadim-Nicodim ©   (02.05.09 18:19)
> нужно чтоб открылось одно окно-задержка-закрытие...

Что за "окно"?


Наверх

Титульная страница Поиск, карта сайта Написать письмо