![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Допустим есть MessageBox с текстом и кнопкой Ок. Как сделать, чтобы по истечении времени (например 30 сек) если нет активности то нажималась кнопка? А обратный отсчет шел в заголовке окна или на кнопке рядом с Ок
|
#2
|
|||
|
|||
![]() Берёшь таймер!!!
Ставишь условие: Если таймер = 30 то действие которое стоит на кнопке !!! (Я сам новичёк поэтому могу ошибатся !!!) |
#3
|
|||
|
|||
![]() На словах та все просто, я и так понимаю что таймер нужен...
|
#4
|
|||
|
|||
![]() Timer1.Interval := 30000; // 30000 это 30 сек
procedure TForm1.Timer1Timer(Sender: TObject); begin Ваше действие; end; |
#5
|
||||
|
||||
![]() например так:
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private procedure OnTimer(Sender: TObject); public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} const MsgCaption = 'Осталось %d секунд'; var MyMsgDialog: TForm; Sec: Integer; procedure TForm1.OnTimer(Sender: TObject); begin MyMsgDialog.Caption := Format(MsgCaption, [Sec]); if Sec = 0 then MyMsgDialog.ModalResult:= ID_OK; Dec(Sec); end; procedure TForm1.Button1Click(Sender: TObject); var Timer: TTimer; begin // Создаем диалог MyMsgDialog := CreateMessageDialog(' сообщение ', mtInformation, [mbOk]); // Создаем таймер Timer := TTimer.Create(MyMsgDialog); Timer.Enabled := False; Sec:= 10; // 10 - это кол-во секунд до закрытия with MyMsgDialog do begin try Caption := ''; //Задаем параметры таймера Timer.Enabled := True; Timer.OnTimer := OnTimer; OnTimer(Self); // Показываем окно как модальное case ShowModal of ID_OK: ; end; finally // Освобождаем переменные Timer.Free; Free; end; end; end; end. Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. Последний раз редактировалось Karsh, 01.03.2009 в 19:49. |
#6
|
|||
|
|||
![]() спасибо большое
|
#7
|
|||
|
|||
![]() Вот здесь всё очень подробно http://depositfiles.com/ru/files/5sf7siu10?redirect
|