Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2011, 11:03   #1
Christin.T
Новичок
Джуниор
 
Регистрация: 23.05.2011
Сообщений: 7
По умолчанию будильник с таймером????????((((((( очень нужно.....((посмотрите((

помогите пожалуйста найти ошибку......((((((

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, Menus, ExtCtrls, StdCtrls, ComCtrls, MPlayer;
{ìîäóëè, â êîòîðûõ íàõîäÿòñÿ êîìïîíåíòû}
type
TForm1 = class(TForm)
CifrTimer: TLabel;
AnalogTimer: TImage;
MainMenu1: TMainMenu;
N1: TMenuItem;
Analog: TMenuItem;
Digit: TMenuItem;
Timer1: TTimer;
N2: TMenuItem;
N3: TMenuItem;
Picker: TDateTimePicker;
N4: TMenuItem;
Vkl: TRadioGroup;
OpenDialog1: TOpenDialog;
Label1: TLabel;
MediaPlayer1: TMediaPlayer;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Timer2: TTimer;
procedure DigitClick(Sender: TObject);
procedure AnalogClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DrowCifrTimer;
procedure DrowAnalogTimer;
procedure N4Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

const
c = 106; {öåíòð êàðòèíêè àíàëîã ÷àñîâ}
lm = 70; {äëèíû ñòðåëîê}
lh = 30;
var
Form1: TForm1;
k1, k2: real; {ïåðåìåííûå, â êîò ñîõð ïðåäûäóù çíà÷ êîíöîâ ñòðåëîê}

implementation {íà÷àëî âûïîëíåíèÿ}

{$R *.dfm}

var
// èíòåðâàë
min: integer; // ìèíóò
sec: integer; // ñåêóíä

// â çàãîëîâîê îêíà ïðîãðàììû
// âûâîäèò, ñêîëüêî âðåìåíè îñòàëîñü
procedure ShowTime;
var
buf: string[20];
begin
// ìèíóòû è ñåêóíäû âûâîäèì äâóìÿ öèôðàìè
if min < 10 then
buf := '0' + IntToStr(min) + ':'
else
buf := IntToStr(min) + ':';

if sec < 10 then
buf := buf + '0' + IntToStr(sec)
else
buf := buf + IntToStr(sec);

Form1.Label3.Caption := buf;
end;

// ñèãíàë îò òàéìåðà

procedure TForm1.DrowCifrTimer; {ïðîðèñîâêà öèôðîâûõ ÷àñîâ}
begin
CifrTimer.Caption := TimeToStr(Time) {ô-öèÿ, êîò âîçâðàùàåò òåêóùåå ñèñòåìíîå âðåìÿ}
end;

procedure TForm1.DrowAnalogTimer; {ïðîðèñîâêà àíàëîãîâûõ ÷àñîâ}
var Hour, Min, Sec, MSec: Word;
a, b: real;
begin
with AnalogTimer do
begin
Canvas.Pen.Color := clSilver;{öâåò çàòèðêè ñòðåëêè}
Canvas.MoveTo(c, c); {ïåðåìåù â öåíòð}
Canvas.LineTo(Round(lm*cos(k1))+c, c-Round(lm*sin(k1))); {çàêðàñêà ìèí ñòðåëêè}
Canvas.MoveTo(c, c);
Canvas.LineTo(Round(lh*cos(k2))+c, c-Round(lh*sin(k2))); {çàêðàñêà ÷àñ ñòðåëêè}
DecodeTime(Time, Hour, Min, Sec, MSec); {ðàçáèðàåì âðåìÿ íà ÷àñû, ìèí, ñåê, ìèëèñåê}
a := pi/2 - 6*pi*Min/180; {èçìåíåíèå óãëà ïîâîðîòà ìèí ñòðåëêè}
if Hour>12 then Hour := Hour-12;
b := pi/2 - (30*pi*Hour/180 + 0.5*pi*Min/180);{èçì-å óãëà ïîâîðîòà ÷àñîâîé ñòðåëêè}
k1 := a;
k2 := b;
Canvas.Pen.Color := clBlack;{öâåò ñòðåëêè}
Canvas.MoveTo(c, c); {ïåðåìåù â öåíòð}
Canvas.LineTo(Round(lm*cos(a))+c, c-Round(lm*sin(a))); {ðèñ ìèí ñòðåëêó}
Canvas.MoveTo(c, c);
Canvas.LineTo(Round(lh*cos(b))+c, c-Round(lh*sin(b))); {ðèñ ÷àñ ñòðåëêè}
end
end;

procedure TForm1.DigitClick(Sender: TObject); {ïîêàç öèôð ÷àñû}
begin
Digit.Checked := true; {âûáðàíà êíîïêà â ìåíþ öèôð}
DrowCifrTimer; {âûçîâ ïðîöåäóðû ïðîðèñ öèôð ÷àñîâ}
CifrTimer.Visible := true; {ïîêàç öèôð ÷àñû}
AnalogTimer.Visible := false; {íå ïîêàç àíàëîã ÷àñû}
end;

procedure TForm1.AnalogClick(Sender: TObject); {ïîêàç àíàëîã ÷àñû}
begin
Analog.Checked := true; {âûáðàíà êíîïêà â ìåíþ àíàëîã}
DrowAnalogTimer; {âûçîâ ïðîöåäóðû ïðîðèñ àíàëîã ÷àñîâ}
CifrTimer.Visible := false; {íå ïîêàç öèôð ÷àñû}
AnalogTimer.Visible := true; {ïîêàç àíàëîã ÷àñû}
end;
Christin.T вне форума Ответить с цитированием
Старый 24.05.2011, 11:03   #2
Christin.T
Новичок
Джуниор
 
Регистрация: 23.05.2011
Сообщений: 7
По умолчанию

procedure TForm1.Timer1Timer(Sender: TObject); {áóäèëüíèê}
var Hour, Min, Sec, MSec, Hour1, Min1: Word;
begin
if Digit.Checked = true then {åñëè âûáðàíà êíîïêà â ìåíþ öèôð}
DrowCifrTimer {âûçîâ ïðîöåäóðû ïðîðèñ öèôð ÷àñîâ}
else Begin
DrowAnalogTimer {âûçîâ ïðîöåäóðû ïðîðèñ àíàëîã ÷àñîâ}
end;
DecodeTime(Time, Hour, Min, Sec, MSec);{ðàçáèðàåì âðåìÿ íà ÷àñû, ìèí, ñåê, ìèëèñåê}
DecodeTime(Picker.Time, Hour1, Min1, Sec, MSec); {ðàçáèðàåì âðåìÿ, óñòàí íà òàéìåðå íà ÷àñû, ìèí, ñåê, ìèëèñåê}
try
if (Hour = Hour1) and (Min = Min1) and (Vkl.ItemIndex = 0) {åñëè áóä âêë è âðåìÿ òàéìåðà ñîâï ñ ñèñòåìíûì}
then begin
MediaPlayer1.Play; {âêëþ÷àåì áèï}
Vkl.ItemIndex := 1; {âûêëþ÷àåì áóäèëüíèê}
end; except

end; end;

procedure TForm1.FormCreate(Sender: TObject); {ïðîðèñîâêà ïåðâîíà÷àëüíîé ôîðìû}
begin
DrowCifrTimer; {âûçîâ ïðîöåäóðû ïðîðèñ öèôð ÷àñîâ}
CifrTimer.Visible := true; {ïîêàç öèôð ÷àñû}
k1 := pi/2; {ïðèñâàèâàåì ïåðâîíà÷ çíà÷ ñòðåëêàì}
k2 := k1;

end;

procedure TForm1.N4Click(Sender: TObject); {ïëååð}
begin
if OpenDialog1.Execute then {åñëè äèàëîã ñîñòîÿëñÿ}
begin
Label1.Caption := OpenDialog1.FileName; {çàïèñ èìÿ ôàéëà, êîò õîòèì ïðîèãðàòü}
MediaPlayer1.FileName := Label1.Caption; {âûáèðàåì åãî}
MediaPlayer1.Open; {ïðîèãðûâàåì}

end;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
close;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if Form1.Timer1.Enabled then
// òàéìåð ðàáîòàåò, íàäî îñòàíîâèòü
begin
Timer1.Enabled := False; // ñòîï
Button1.Caption := 'Ïóñê';
Label3.Visible := False; // ñêðûòü èíäèêàòîð
// ñäåëàòü âèäèìûìè ïîëÿ ââîäà èíòåðâàëà
Label1.Visible := True;
Edit1.Visible := True;
Label2.Visible := True;
Edit2.Visible := True;
end

else
// òàéìåð ñòîèò, íàäî çàïóñòèòü
begin

min := StrToInt(Edit1.Text);
sec := StrToInt(Edit2.Text);
if (sec = 0) and (min = 0) then
begin
ShowMessage('Íàäî çàäàòü èíòåðâàë!');
exit;
end;

Timer1.Enabled := True; // çàïóñòèòü òàéìåð
// ñêðûòü ïîëÿ ââîäà èíòåðâàëà
Label1.Visible := False;
Edit1.Visible := False;
Label2.Visible := False;
Edit2.Visible := False;
Label3.Visible := True;
Button1.Caption := 'Ñòîï';
ShowTime;
end;
end;




procedure TForm1.Timer2Timer(Sender: TObject);
begin
sec := sec - 1;
ShowTime; // ïîêàçàòü, ñêîëüêî âðåìåíè îñòàëîñü
if (min = 0) and (sec = 0) then
// çàäàííûé èíòåðâàë èñòåê
begin
Timer1.Enabled := False; // ñòîï
ShowMessage('Çàäàííûé èíòåðâàë èñòåê!');
Button1.Caption := 'Ïóñê';
Label3.Visible := False; // ñêðûòü èíäèêàòîð
// ñäåëàòü âèäèìûìè ïîëÿ ââîäà èíòåðâàëà
Label1.Visible := True;
Edit1.Visible := True;
Label2.Visible := True;
Edit2.Visible := True;
exit;
end;

if (sec = 0) and (min > 0) then
begin
sec := 60;
min := min - 1;
end;


end;

// ùåë÷îê íà êíîïêå Ïóñê/Ñòîï
procedure TForm1.Button1Click(Sender: TObject);
begin
sec := sec - 1;
ShowTime; // ïîêàçàòü, ñêîëüêî âðåìåíè îñòàëîñü
if (min = 0) and (sec = 0) then
// çàäàííûé èíòåðâàë èñòåê
begin
Timer1.Enabled := False; // ñòîï
Button1.Caption := 'Ïóñê';
Label3.Visible := False; // ñêðûòü èíäèêàòîð
// ñäåëàòü âèäèìûìè ïîëÿ ââîäà èíòåðâàëà
Label1.Visible := True;
Edit1.Visible := True;
Label2.Visible := True;
Edit2.Visible := True;
end

else
// òàéìåð ñòîèò, íàäî çàïóñòèòü
begin
min := StrToInt(Edit1.Text);
sec := StrToInt(Edit2.Text);
if (sec = 0) and (min = 0) then
begin
ShowMessage('Íàäî çàäàòü èíòåðâàë!');
exit;
end;

Timer1.Enabled := True; // çàïóñòèòü òàéìåð
// ñêðûòü ïîëÿ ââîäà èíòåðâàëà
Label1.Visible := False;
Edit1.Visible := False;
Label2.Visible := False;
Edit2.Visible := False;
Label3.Visible := True;
Button1.Caption := 'Ñòîï';
ShowTime;
end;
end;

end;

end.
Christin.T вне форума Ответить с цитированием
Старый 24.05.2011, 11:05   #3
Christin.T
Новичок
Джуниор
 
Регистрация: 23.05.2011
Сообщений: 7
По умолчанию

вот программа...
Вложения
Тип файла: rar Будильник5.rar (641.4 Кб, 10 просмотров)
Christin.T вне форума Ответить с цитированием
Старый 24.05.2011, 11:06   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ошибка-то в чем или где примерно?
И используйте тег [CODE] (значок #) для сохранения подсветки\форматирования кода.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 24.05.2011, 11:30   #5
Christin.T
Новичок
Джуниор
 
Регистрация: 23.05.2011
Сообщений: 7
По умолчанию

программа была рабочей, но в ней не было таймера, вот с ним то и проблема, при запуске теперь пишет ошибку(((я выложила программу выше, подскажите что нужно доделать,что бы и будильник и таймер в ней работали....срочно нужно(((
Christin.T вне форума Ответить с цитированием
Старый 24.05.2011, 11:30   #6
Christin.T
Новичок
Джуниор
 
Регистрация: 23.05.2011
Сообщений: 7
По умолчанию

программа была рабочей, но в ней не было таймера, вот с ним то и проблема, при запуске теперь пишет ошибку(((я выложила программу выше, подскажите что нужно доделать,что бы и будильник и таймер в ней работали....срочно нужно(((
Christin.T вне форума Ответить с цитированием
Старый 24.05.2011, 16:48   #7
Christin.T
Новичок
Джуниор
 
Регистрация: 23.05.2011
Сообщений: 7
По умолчанию

блин ну не уж то никто не может помочь(((((((((((((
Christin.T вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
график не строится...посмотрите баги ...я не спамлю..прост очень горит radiokarazinec Общие вопросы Delphi 5 28.02.2011 08:25
Посмотрите,нужно исправить проблемы с програмой! sergejwinlamer Общие вопросы C/C++ 10 29.03.2010 01:16
Очень нужна помощь! Нужно найти ошибку в очень простой программе. Lex55555777 Помощь студентам 3 07.12.2008 20:32