Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.06.21;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
2-1240949570
Niktar
2009-04-29 00:12
2009.06.21
tquery dbase


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


15-1239864485
Дмитрий С
2009-04-16 10:48
2009.06.21
Куда сохраняется содержимое видеопамяти во время спящего режима?


2-1241448791
AndrewG
2009-05-04 18:53
2009.06.21
Формат текста MsWord


2-1241521321
Леша
2009-05-05 15:02
2009.06.21
Обновление одной записи.





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