Помогите с задачей.
|
|
AllMaNi | Дата: Воскресенье, 01.03.09, 16:06 | Сообщение # 1 |
 Жжот йопта
Группа: Администраторы
Сообщений: 1004
Статус: Offline
| Вообщем, столкнулся я с одной задачкой... Толком даже не мог ее сформулировать чтоб вбить в гугле... Что то вроде кнопка со счетчиком, конпка с таймером... Идея такова(ниже поясняющий скриншот с одной программы где это идея реализована): Нужно что бы на обычном MessageBox'е была одна кнопка Ok и в заголовке MessageBox'а был обратный отсчет таймера по истечении которого ммм...кнопка Ok нажимается сама. Или другой вариант чтоб этот таймер был в заголовки кнопки, что то вроде этого: Написал не совсем понятно, но может кто поймет.. Второй день башку ломаю и ни одной идеи...
Имеющий мозги и руки Никогда не здохнет от голода и скуки *********************************** Нет того, чего я незнаю, есть то, чем я пока не заинтересовался. *********************************** Закрой дверь и никого не впускай - меня не будет несколько лет! *********************************** Как известно, чтобы сбить человека с мысли, достаточно облить его молоком и поджечь.
|
|
| |
[C]RaSh | Дата: Воскресенье, 01.03.09, 20:25 | Сообщение # 2 |
![[C]RaSh](/avatar/19/986018.jpg) АндрейkA
Группа: Администраторы
Сообщений: 1025
Статус: Offline
| Например так: Code 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.
Рyкописи, может быть, и не гоpят. Зато диски С отлично фоpматиpyются.
|
|
| |
[C]RaSh | Дата: Воскресенье, 01.03.09, 20:49 | Сообщение # 3 |
![[C]RaSh](/avatar/19/986018.jpg) АндрейkA
Группа: Администраторы
Сообщений: 1025
Статус: Offline
| А вот реализация этого исходника 
Рyкописи, может быть, и не гоpят. Зато диски С отлично фоpматиpyются.
|
|
| |
}{akeR | Дата: Воскресенье, 01.03.09, 21:08 | Сообщение # 4 |
 кибер панк
Группа: Проверенные
Сообщений: 729
Статус: Offline
| В форме нужна переменная. Если ее обьявить в форме то она будет глобальной для всей формы. Ставим таймер. Ставим время 1000- это будет 1 сек. Ставим в него функцию : if a=0 then button1.click else a:=a-1 вот и все. Можно для отображения на кнопке написать : button1.caption:=a; в таймере
Мне дано все, чтобы жить возвышенной жизнью. А я гибну в лени, разврате и мечтании. @Даниил Хармс
|
|
| |
AllMaNi | Дата: Понедельник, 02.03.09, 12:27 | Сообщение # 5 |
 Жжот йопта
Группа: Администраторы
Сообщений: 1004
Статус: Offline
| [C]RaSh, эх хдеш ты раньше то был, а? Спасибо! +1
Имеющий мозги и руки Никогда не здохнет от голода и скуки *********************************** Нет того, чего я незнаю, есть то, чем я пока не заинтересовался. *********************************** Закрой дверь и никого не впускай - меня не будет несколько лет! *********************************** Как известно, чтобы сбить человека с мысли, достаточно облить его молоком и поджечь.
|
|
| |
[C]RaSh | Дата: Понедельник, 02.03.09, 13:18 | Сообщение # 6 |
![[C]RaSh](/avatar/19/986018.jpg) АндрейkA
Группа: Администраторы
Сообщений: 1025
Статус: Offline
|
Рyкописи, может быть, и не гоpят. Зато диски С отлично фоpматиpyются.
|
|
| |