Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запуск программы...

25K
02 ноября 2008 года
Rexez
10 / / 19.08.2007
Форма, на ней поле Edit1, Edit2 и таймер.
В поле Edit2 задаётся время в секундах. Таймер отсчитывает время заданное в Edit2 и по истечению этого времени запускается функция запуска внешней программы путь к которой задан в поле Edit1 и программа сама себя закрывает.
Напишите плиз код отсчёта времени таймером :( Как запустить внешнюю программу я знаю. А вот как сделать чтобы таймер отсчитывал время заданное в Edit2, затем происходили какие-то действия по её истечению я не знаю :(
6
03 ноября 2008 года
George
4.1K / / 05.01.2007
[highlight=delphi]
Timer1.Interval := IntToStr(Edit2.Text * 1000); // Интервал таймера в миллисекундах.

Timer1.Enabled := true; // Запуск таймера

В обработчике события Timer1.Timer напиши код запуска внешней программы, путь к которой указан в Edit2.[/highlight]
3.7K
03 ноября 2008 года
0nni
326 / / 24.06.2008
Washington, если бы запуск и отсчет производился после нажатия кнопки, то вариант бы подошел. Но в вашем случае(как я понял строки 1 и 3 будут находиться в Edit2.onChange) возможен запуск с интервалом от 1 до 9 секунд.
Поэтому, пункт 2 будет
 
Код:
Timer1.Enabled := false

и еще рекомендую использовать TryIntToStr().
6
03 ноября 2008 года
George
4.1K / / 05.01.2007
а может сделать так:
[highlight=delphi]
Sleep(IntToStr(Edit2.Text) * 1000);
ShellExecute(<Вызов стороннего приложения>);
Form1.Exit;
[/highlight]
потому как таймер годится для периодического выполнения опр. действия.
3.2K
03 ноября 2008 года
Гудвин
186 / / 22.12.2007
а почему бы так не сделать?

начало работы:
 
Код:
end_time:=now+IntToStr(Edit2.Text);
timer1.enable:=true;

в таймере
 
Код:
if end_time<=now then
   begin
    timer1.enable:=false;
    // execute(file)

   end;
288
04 ноября 2008 года
nikitozz
1.2K / / 09.03.2007
Цитата: Washington
а может сделать так:
[highlight=delphi]
Sleep(IntToStr(Edit2.Text) * 1000);
ShellExecute(<Вызов стороннего приложения>);
Form1.Exit;
[/highlight]
потому как таймер годится для периодического выполнения опр. действия.



Sleep по-моему не лучший вариант, так как притормозит основной поток. Да и по OnChange тоже по-моему не очень, т.к. придется обрабытвать и случай с очисткой поля и т.д. Легче поставить кнопку.

6
04 ноября 2008 года
George
4.1K / / 05.01.2007
Можно с помощью прогресс бара.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог