Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi]часы+будильник


Автор: Verbatim512 31.3.2008, 16:13
[Delphi] 

Привет ребята. Помогите мне пожплуйста с этим. 


У меня Курсовая. "часы с будильником"


Когда на будильнике устонавливаю время и нажимаю ОК!

Через определённое время появляется форма. Су ведомлением. Например: Всиавай.

При этом звучит одна стандартная мелодия windows "TADA".

Теперь к главному!!!

У меня должно в Combo Box быть помещено 5 мелодий .wav формата.

Я должен выбрать одну из них. После чего нажать на кнопку ОК. 

По истечению времени должна появиться форма уже с другим звуковым сигналом.

Я её пробовал прописать через Case, но у меня шото не сильно получилось.


Вторая моя проблемка:

(стрелка от будильника) Когда я устонавливаю время в будильнике и нажимаю кнопку "Ок" то форма с будильником исчезает и на форме там где часы должна появиться стрелка которая указывает на ту временную точку где должен прозвинеть будильник. (это моя проблемка) Я не могу сделать так чтобы она там появлялась и правильно роботала.

Прикрепляю вам програмку. Исправте её пожалуйста. 


Вот так теперь правильно????? Правильно я сюда усё поместил.

Автор: THandle 31.3.2008, 16:23
Verbatim512, нормально вроде, только можно было бы вместо 3ей формы просто MessageBox делать какой - нибудь.


ЗЫ: в код не вникал.

Автор: Verbatim512 31.3.2008, 18:06
Вникал. Тока с этим у меня плоховато. А ты мне можешь ты мне помочь??? Для THandle

Автор: THandle 1.4.2008, 14:50
Verbatim512, значит так:

1. меняешь код второй формы на:

Код


unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, ComCtrls,
  Unit1, DateUtils, MMSYSTEM;

type
  TForm2 = class(TForm)
    Shape1: TShape;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    Shape2: TShape;
    Label8: TLabel;
    Label6: TLabel;
    Label9: TLabel;
    UpDown1: TUpDown;
    UpDown2: TUpDown;
    Button1: TButton;
    Edit1: TEdit;
    Timer2: TTimer;
    procedure Timer2Timer(Sender: TObject);
    procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
    procedure UpDown2Click(Sender: TObject; Button: TUDBtnType);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses Unit3;



{$R *.dfm}

var
    Hour,Min: word;      // время на индикаторе
    AlHour, AlMin: word; // будильник установлен на AlHour:AlMin

// начало работы программы
// сигнал от таймера
procedure TForm2.Timer2Timer(Sender: TObject);
var
    cHour,cMin: word;
begin
    // получить текущее время
    cHour := HourOf(Now);
    cMin :=  MinuteOf(Now);

    if Timer2.Tag = 0 // окно программы на экране
    then begin
          { проверим, совпадает ли текущее время
            с отображаемым на индикаторе }
          if cHour <> Hour then
          begin
             Hour := cHour;
             Label1.Caption := IntToStr(Hour);
          end;

          if cMin <> Min then
          begin
             Min := cMin;
             if min <10
                 then Label2.Caption := '0' + IntToStr(Min)
                 else Label2.Caption := IntToStr(Min);
          end;

          // обеспечим мигание двоеточия
         if Label3.Visible
           then Label3.Visible := False
           else label3.Visible := True;
     end

     else // окно программы скрыто, контролируем
          // наступление момента подачи сигнала
          if (cHour = AlHour) and (cMin = AlMin)
              // сигнал !
             then begin
                 Timer2.Tag := 0;
                 Timer2.Interval := 1000;
                 PlaySound('tada.wav',0,SND_ASYNC);  // звук
                 ShowMessage(Edit1.Text);
                 Form1.Show;
             end;
end;

procedure TForm2.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
   if UpDown1.Position < 10
        then Label4.Caption := '0' + IntToStr(UpDown1.Position)
        else Label4.Caption := IntToStr(UpDown1.Position);
     end;
procedure TForm2.UpDown2Click(Sender: TObject; Button: TUDBtnType);
begin
if UpDown2.Position < 10
       then Label5.Caption := '0' + IntToStr(UpDown2.Position)
       else Label5.Caption := IntToStr(UpDown2.Position);
    end;
    
// щелчок на кнопке OK
procedure TForm2.Button1Click(Sender: TObject);
begin
    // установить будильник
    AlHour := UpDown1.Position;
    AlMin  := UpDown2.Position;
    Timer2.Tag := 1;
    Form2.Hide; //
    Timer2.Interval := 3000; // проверять каждые 3 секунды
end;

end.


2. Убираешь 3 форму. 

Всё.

Готовый пример присоединен в аттаче. smile 

Автор: Aleksei28 28.5.2009, 14:02
http://letitbit.net/download/8140728fd00bad7/______.doc.html                                                                  --кусовик
http://letitbit.net/download/5b1bfdb3a0c2ada/________.rar.html                                                     --исходник

Автор: I_Am_Rock 29.5.2009, 11:34
Цитата(Verbatim512 @  31.3.2008,  16:13 Найти цитируемый пост)
Через определённое время появляется форма. Су ведомлением. Например: Всиавай.

Всиавай! Всиавай! Немедленно всиавай! )))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)