Общение без границ

Главная | Регистрация | Вход
Пятница, 29.03.24, 08:35
Приветствую Вас Странник | RSS
Авторизация
Друзья
Поиск

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

  • Страница 1 из 1
  • 1
Модератор форума: [C]RaSh, Harry_Haller  
Форум хорошего настроения и общения » IT-технологии » Программирование » Помогите с задачей. (кое-что на Delphi)
Помогите с задачей.
AllMaNiДата: Воскресенье, 01.03.09, 16:06 | Сообщение # 1
Жжот йопта
Группа: Администраторы
Сообщений: 1130
Награды: 1
Репутация: 118
Статус: Offline
Вообщем, столкнулся я с одной задачкой...
Толком даже не мог ее сформулировать чтоб вбить в гугле...
Что то вроде кнопка со счетчиком, конпка с таймером...
Идея такова(ниже поясняющий скриншот с одной программы где это идея реализована):
Нужно что бы на обычном MessageBox'е была одна кнопка Ok и в заголовке MessageBox'а был обратный отсчет таймера по истечении которого ммм...кнопка Ok нажимается сама.
Или другой вариант чтоб этот таймер был в заголовки кнопки, что то вроде этого:

Написал не совсем понятно, но может кто поймет..
Второй день башку ломаю и ни одной идеи...

Прикрепления: 3153389.gif (15.6 Kb)


Имеющий мозги и руки
Никогда не здохнет от голода и скуки
***********************************
Нет того, чего я незнаю, есть то, чем я пока не заинтересовался.
***********************************
Закрой дверь и никого не впускай - меня не будет несколько лет!
***********************************
Как известно, чтобы сбить человека с мысли, достаточно облить его молоком и поджечь.
 
[C]RaShДата: Воскресенье, 01.03.09, 20:25 | Сообщение # 2
АндрейkA
Группа: Администраторы
Сообщений: 1045
Награды: 3
Репутация: 79
Статус: 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
АндрейkA
Группа: Администраторы
Сообщений: 1045
Награды: 3
Репутация: 79
Статус: Offline
А вот реализация этого исходника

Прикрепления: 2351800.jpg (2.7 Kb) · Coding.rar (6.0 Kb)


Рyкописи, может быть, и не гоpят. Зато диски С отлично фоpматиpyются.
 
}{akeRДата: Воскресенье, 01.03.09, 21:08 | Сообщение # 4
кибер панк
Группа: Проверенные
Сообщений: 784
Награды: 0
Репутация: 64
Статус: Offline
В форме нужна переменная. Если ее обьявить в форме то она будет глобальной для всей формы. Ставим таймер. Ставим время 1000- это будет 1 сек. Ставим в него функцию :
if a=0 then button1.click else a:=a-1
вот и все. Можно для отображения на кнопке написать :
button1.caption:=a;
в таймере


Мне дано все, чтобы жить возвышенной жизнью. А я гибну в лени, разврате и мечтании.
@Даниил Хармс

 
AllMaNiДата: Понедельник, 02.03.09, 12:27 | Сообщение # 5
Жжот йопта
Группа: Администраторы
Сообщений: 1130
Награды: 1
Репутация: 118
Статус: Offline
[C]RaSh, эх хдеш ты раньше то был, а?
Спасибо!
+1


Имеющий мозги и руки
Никогда не здохнет от голода и скуки
***********************************
Нет того, чего я незнаю, есть то, чем я пока не заинтересовался.
***********************************
Закрой дверь и никого не впускай - меня не будет несколько лет!
***********************************
Как известно, чтобы сбить человека с мысли, достаточно облить его молоком и поджечь.
 
[C]RaShДата: Понедельник, 02.03.09, 13:18 | Сообщение # 6
АндрейkA
Группа: Администраторы
Сообщений: 1045
Награды: 3
Репутация: 79
Статус: Offline
biggrin

Рyкописи, может быть, и не гоpят. Зато диски С отлично фоpматиpyются.
 
Форум хорошего настроения и общения » IT-технологии » Программирование » Помогите с задачей. (кое-что на Delphi)
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024 | Хостинг от uCoz