Требуется Помощь Очень Срочно! Программа "часы"

  • Автор темы Juli13rus
  • Дата начала
Статус
Закрыто для дальнейших ответов.
J

Juli13rus

#1
Прошу заранее прощения за непрофессионализм в этом деле. Учусь заочно, знаний в этой области практически или вообще нет.
К делу.. Есть код программы "часы" с будильником (напоминалкой). Была создана одна форма. Все как бы ничего.., ошибок вроде нет. Но! В коде указана форма два, про которую в описани работы не слова. Полагаю, что это должно быть то самое сообщение, которое будет появляться после срабатывания будильника (сигнала). (форма2)
Подскажите пожалуйста, как правильно добавить еще одну форму, в которой будет картинка/фон (которую тоже нужно помочь сделать), небольшой текст сообщения, музыка, и что бы это все вместе работало.
Так же хочется очень, что бы при загрузке предоставлялась возможность выбрать вид часов (аналоговые или цифровые), код я найду. Получается, что это уже 3-я форма. А для нее нужна еще одна для сообщения будильника или можно использовать форму 2?
И, если можно, при загрузке программы хочется, чтобы появлялась полосочка "загружающаяся" (если вы поняли, о чем я).Так поняла, что это чисто только для вида.. и не несет никакой функциональности. Это не обязательно, но это моя курсовая работа и просто часы безо всего - это очень легкая программа. Хорошей оценки мне за нее не ждать. Нужно чем-то усложнить.
Используемая программа: Delphi 7.
Имеющийся код:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Timer1: TTimer;
Shape1: TShape;
Shape2: TShape;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
UpDown1: TUpDown;
UpDown2: TUpDown;

procedure Shape1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(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
Form1: TForm1;

implementation

{$R *.dfm}
var
Hour,Min: word; // время на индикаторе
AlHour, AlMin: word; // будильник установлен на AlHour:AlMin

procedure TForm1.Shape1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);


begin

end;
// начало работы программы
procedure TForm1.FormCreate(Sender: TObject);
begin
Hour := HourOf(Now);
Min := MinuteOf(Now);
Label1.Caption := IntToStr(Hour);
if Min < 10
then Label2.Caption := '0'+IntToStr(Min)
else Label2.Caption := IntToStr(Min);
end;

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

if Timer1.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
Form2.Show;
Timer1.Tag := 0;
Timer1.Interval := 1000;
end;
end;
// щелчок на UpDown1 изменяет
// время сигнала будильника - часы
procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
if UpDown1.Position < 10
then Label4.Caption := '0' + IntToStr(UpDown1.Position)
else Label4.Caption := IntToStr(UpDown1.Position);
end;
// щелчок на UpDown2 изменяет
// время сигнала будильника - минуты

procedure TForm1.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 TForm1.Button1Click(Sender: TObject);
begin
// установить будильник
AlHour := UpDown1.Position;
AlMin := UpDown2.Position;
Timer1.Tag := 1;
Form1.Hide; //
Timer1.Interval := 3000; // проверять каждые 3 секунды

end;

end.
вот как это выглядит.. строго не судите)))
 

nayke

Well-known member
04.08.2010
310
0
#2
Судя по всему делали не вы.. почему не обратитесь к тому кто делал.

Если проект компилируется, то форма 2 в файлах есть.
Откройте ее или unit и увидите.
 
J

Juli13rus

#3
Судя по всему делали не вы.. почему не обратитесь к тому кто делал.

Если проект компилируется, то форма 2 в файлах есть.
Откройте ее или unit и увидите.
Делала сама я по образцу имеющейся лабораторной работы.
Я создавала вторую форму, но т.к. не смогла вставить туда элементарно картинку как фон (никак не получается(((.. ) пришлось удалить, чтобы попробовать снова. В папке с проектом ни формы второй ни юнита второго нет. Но при срабатывании будильника программа открывает вторую форму, в которой нет изображения... откуда она взялась? ох((

Добавлено: И до сих пор не могу понять... зачем строка сообщение? Сначала думала, что это то сообщение, которое будет появляться в итоге... Но оказалось, что нет. Может ее вообще удалить? или уж пусть будет...
 

nayke

Well-known member
04.08.2010
310
0
#4
Делала сама я по образцу имеющейся лабораторной работы.
Я создавала вторую форму, но т.к. не смогла вставить туда элементарно картинку как фон (никак не получается(((.. ) пришлось удалить, чтобы попробовать снова. В папке с проектом ни формы второй ни юнита второго нет. Но при срабатывании будильника программа открывает вторую форму, в которой нет изображения... откуда она взялась? ох((

Добавлено: И до сих пор не могу понять... зачем строка сообщение? Сначала думала, что это то сообщение, которое будет появляться в итоге... Но оказалось, что нет. Может ее вообще удалить? или уж пусть будет...
Чтобы добавить картинку на форму надо использовать компонент Image.
Если форма открывается - думаю она есть. Попробуйте открыть ее в редакторе.
Чудес не бывает..
 
Статус
Закрыто для дальнейших ответов.