Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.21;
Скачать: CL | DM;

Вниз

Stringgrid и Таймер или циклы   Найти похожие ветки 

 
Vadim-Nicodim ©   (2009-05-02 18:19) [0]

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

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


 
{RASkov} ©   (2009-05-02 19:03) [1]

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

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


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

окно IE


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


> Vadim-Nicodim ©   (02.05.09 18:19)  

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


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

> Vadim-Nicodim ©   (02.05.09 18:19)

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

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


 
KilkennyCat ©   (2009-05-03 11:59) [5]

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


 
Vadim-Nicodim ©   (2009-05-03 21:17) [6]

Спасибо ВСЕМ КТО ОТВЕЧАЛ И КТО НЕ ОТВЕЧАЛ,на несовсем правильно поставленный вопрос....На счет изнасилования 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;
Может кто-нибудь подскажет грамотное решение этого вопроса?


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

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

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

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

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

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


 
{RASkov} ©   (2009-05-03 21:43) [8]

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

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


 
Vadim-Nicodim ©   (2009-05-03 21:59) [9]

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


 
Vadim-Nicodim ©   (2009-05-03 22:02) [10]

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


 
sniknik ©   (2009-05-03 22:03) [11]

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

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


 
sniknik ©   (2009-05-03 22:08) [12]

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



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

Текущий архив: 2009.06.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
15-1240040122
@!!ex
2009-04-18 11:35
2009.06.21
Ищу материнку с Intel®AMT


2-1241528409
Knob
2009-05-05 17:00
2009.06.21
Нажатие кнопки


2-1241463269
Ars
2009-05-04 22:54
2009.06.21
Тип поля TClientDataSet


15-1239804912
IvanIvan2
2009-04-15 18:15
2009.06.21
. PhysicalDriveN


2-1240983414
Nadan
2009-04-29 09:36
2009.06.21
Создание запроса в ADO