Форум: "Прочее";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
ВнизЧасы + будильник Найти похожие ветки
← →
Verbatim512 © (2008-04-13 15:43) [0]У меня Курсовая. "часы с будильником".
Когда на будильнике устонавливаю время и нажимаю ОК!
Через определённое время появляется форма. С уведомлением. Например: Вставай.
При этом звучит одна стандартная мелодия windows "TADA".
Теперь к главному!!!
У меня должно в Combo Box быть помещено 5 мелодий .wav формата.
Я должен выбрать одну из них. После чего нажать на кнопку ОК.
По истечению времени должна появиться форма уже с другим звуковым сигналом.
Я её пробовал прописать через Case, но у меня шото не сильно получилось.
Непроходите мимо. я реально не знаю как это сделать!!!! Моя ася 404508603
← →
vrem_ (2008-04-13 16:04) [1]даже слово "прошу" не написал
← →
Anatoly Podgoretsky © (2008-04-13 16:14) [2]> vrem_ (13.04.2008 16:04:01) [1]
Не писал еще в corbinu?
← →
vrem_ (2008-04-13 16:16) [3]написал вчера, ответа нет пока.
← →
Anatoly Podgoretsky © (2008-04-13 16:21) [4]> vrem_ (13.04.2008 16:16:03) [3]
Если они поправили ситуацию с работниками, то не получишь, мне же просто повезло, что попал на незнающего, он с дуру и ответил. Но если появится ответ, то проинформируй общественность.
← →
Rust (2008-04-13 16:28) [5]а в чем проблема?
используется tmediaplayer, ttimer , ну и баттоны чекбоксы..
← →
AIK © (2008-04-13 18:45) [6]
> Непроходите мимо. я реально не знаю как это сделать!!!! Моя ася 404508603
И за это реально нада получить незачет
← →
tesseract © (2008-04-13 18:46) [7]
> Непроходите мимо. я реально не знаю как это сделать!!!!
тогда плати.
ЗЫ: розыч ты прав, они атакуют.
← →
Verbatim512 © (2008-04-13 19:52) [8]>>>vrem_ (13.04.08 16:04) [1]
>>>даже слово "прошу" не написал
На форумах програмистов запрещают писать "прошу","помогите" и т.д. Вот потому и не написал!!!
Вот код программы даю:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Menus, jpeg;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
Timer1: TTimer;
// эти объявления вставлены вручную
procedure Vector(x0,y0,a,l: integer);
procedure DrawClock;
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
DateUtils,Unit2; // для доступа к SecondOf,
// MinuteOf и HourOf
const
R = 75 ; // радиус циферблата часов
var
x0,y0: integer; // центр циферблата
ahr,amin,asec: integer; // положение стрелок (угол)
// инициализация формы
procedure TForm1.FormCreate(Sender: TObject);
var
t: TDateTime;
begin
// зададим размер формы
// в соответствии с размером циферблата
ClientHeight := (R+30)*2;
ClientWidth := (R+30)*2;
x0 := R+30;
y0 := R+30;
t := Now();
// положение стрелок
ahr := 90 - HourOf(t)*30-(MinuteOf(Today)div 12)*6;
amin := 90 - MinuteOf(t)*6;
asec := 90 - SecondOf(Today)*6;
Timer1.Interval := 1000; // период сигнал от таймера 1 сек
Timer1.Enabled := True; // пуск таймера
end;
// вычерчивает вектор заданной длины из точки (x0,y0)
procedure TForm1.Vector(x0,y0: integer; a, l: integer);
// x0,y0 - начало вектора
// a - угол между осью x и вектором
// l - длина вектора
const
GRAD = 0.0174532; // коэффициент пересчета угла из градусов в радианы
var
x,y: integer; // координаты конца вектора
begin
Canvas.MoveTo(x0,y0);
x := Round(x0 + l*cos(a*GRAD));
y := Round(y0 - l*sin(a*GRAD));
Canvas.LineTo(x,y);
end;
// рисует стрелки
procedure TForm1.DrawClock;
var
t: TDateTime;
begin
// шаг секундной и минутной стрелок 6 градусов,
// часовой - 30.
// стереть изображение стрелок
Canvas.Pen.Color := clBtnFace;
Canvas.Pen.Width :=3;
// часовую
Vector(x0,y0, ahr, R-20);
// минутную
Vector(x0,y0, amin, R-15);
// секундную
Vector(x0,y0, asec, R-7);
t := Now();
// новое положение стрелок
ahr := 90 - HourOf(t)*30-(MinuteOf(t)div 12)*6;
amin := 90 - MinuteOf(t)*6;
asec := 90 - SecondOf(t)*6;
// нарисовать стрелки
// часовая стрелка
Canvas.Pen.Width := 3;
Canvas.Pen.Color := clBlack;
Vector(x0,y0, ahr, R-20);
// минутная стрелка
Canvas.Pen.Width := 2;
Canvas.Pen.Color := clBlack;
Vector(x0,y0, amin, R-15);
// секундная стрелка
Canvas.Pen.Width := 1;
Canvas.Pen.Color := clYellow;
Vector(x0,y0, asec, R-7);
end;
// прорисовка циферблата и начальных стрелок
procedure TForm1.FormPaint(Sender: TObject);
var
x,y: integer; // координаты маркера на циферблате
a: integer; // угол между OX и прямой (x0,yo) (x,y)
h: integer; // метка часовой риски
bs: TBrushStyle; // стиль кисти
pc: TColor; // цвет карандаша
pw: integer; // ширина карандаша
begin
bs := Canvas.Brush.Style;
pc := Canvas.Pen.Color;
pw := Canvas.Pen.Width;
Canvas.Brush.Style := bsClear;
Canvas.Pen.Width := 1;
Canvas.Pen.Color := clBlack;
a:=0; // метки ставим от 3-х часов, против
// часовой стрелки
h:=3; // угол 0 градусов - это 3 часа
// циферблат
while a < 360 do
begin
x:=x0+Round( R * cos(a*2*pi/360));
y:=x0-Round( R * sin(a*2*pi/360));
Form1.Canvas.MoveTo(x,y);
if (a mod 30) = 0 then
begin
Canvas.Ellipse(x-2,y-2,x+3,y+3);
// цифры по большему радиусу
x:=x0+Round( (R+15) * cos(a*2*pi/360));
y:=x0-Round( (R+15) * sin(a*2*pi/360));
Canvas.TextOut(x-5,y-7,IntToStr(h));
dec(h);
if h = 0 then h:=12;
end
else Canvas.Ellipse(x-1,y-1,x+1,y+1);
a:=a+6; // 1 минута - 6 градусов
end;
// восстановить карандаш кисть
Canvas.Brush.Style := bs;
Canvas.Pen.Width := pw;
Canvas.Pen.Color := pc;
DrawClock;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
DrawClock;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
form2.show;
end;
end.
← →
Verbatim512 © (2008-04-13 19:54) [9]Форма №2
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls,
Unit1, DateUtils;
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
Form3.Show;
Timer2.Tag := 0;
Timer2.Interval := 1000;
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.
← →
Verbatim512 © (2008-04-13 19:54) [10]Форма №2
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls,
Unit1, DateUtils;
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
Form3.Show;
Timer2.Tag := 0;
Timer2.Interval := 1000;
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.
← →
Verbatim512 © (2008-04-13 19:56) [11]Форма №3
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,
MMSYSTEM, // для доступа к PlaySound
Unit2; // для доступа к главной (стартовой) форме
type
TForm3 = class(TForm)
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
Form3.Hide; // скрыть окно с сообщением
Form1.Show; // сделать доступной главную форму
end;
procedure TForm3.FormActivate(Sender: TObject);
begin
Label1.Caption := Form2.Edit1.Text; // текст сообщения
PlaySound("tada.wav",0,SND_ASYNC); // звук
end;
end.
← →
Verbatim512 © (2008-04-13 20:00) [12]Удалено модератором
← →
AIK © (2008-04-13 21:24) [13]Это просто ужас для написания такой простенькой программы...
Хотя чтоб забить по больше листов для курсовой наверное самый раз.
И обезательно часы должны быть стрелочными, что неподойдут с цифрами?
← →
Verbatim512 © (2008-04-13 22:16) [14]>>AIK © часы и есть стрелочные тока с этим плеером торба!!
← →
Anatoly Podgoretsky © (2008-04-13 23:06) [15]> AIK (13.04.2008 18:45:06) [6]
А реально получить оплату?
← →
AIK © (2008-04-13 23:19) [16]Непонял зачто оплату за незачет или вы хотели так :
............................
Anatoly Podgoretsky © (13.04.08 23:06) [15]
> Verbatim512 © (13.04.08 22:16) [14]
А реально получить оплату?
............................
← →
Anatoly Podgoretsky © (2008-04-14 00:16) [17]За незачет не надо, надо за зачет.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.007 c