-
У меня Курсовая. "часы с будильником". Когда на будильнике устонавливаю время и нажимаю ОК! Через определённое время появляется форма. С уведомлением. Например: Вставай. При этом звучит одна стандартная мелодия windows "TADA". Теперь к главному!!! У меня должно в Combo Box быть помещено 5 мелодий .wav формата. Я должен выбрать одну из них. После чего нажать на кнопку ОК. По истечению времени должна появиться форма уже с другим звуковым сигналом. Я её пробовал прописать через Case, но у меня шото не сильно получилось.
Непроходите мимо. я реально не знаю как это сделать!!!! Моя ася 404508603
-
даже слово "прошу" не написал
-
> vrem_ (13.04.2008 16:04:01) [1]
Не писал еще в corbinu?
-
написал вчера, ответа нет пока.
-
> vrem_ (13.04.2008 16:16:03) [3]
Если они поправили ситуацию с работниками, то не получишь, мне же просто повезло, что попал на незнающего, он с дуру и ответил. Но если появится ответ, то проинформируй общественность.
-
а в чем проблема? используется tmediaplayer, ttimer , ну и баттоны чекбоксы..
-
> Непроходите мимо. я реально не знаю как это сделать!!!! Моя ася 404508603
И за это реально нада получить незачет
-
> Непроходите мимо. я реально не знаю как это сделать!!!!
тогда плати.
ЗЫ: розыч ты прав, они атакуют.
-
>>>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
public
end;
var
Form1: TForm1;
implementation
uses
DateUtils,Unit2;
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; Timer1.Enabled := True; end;
procedure TForm1.Vector(x0,y0: integer; a, l: integer);
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
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; 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; h:=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; 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.
-
Форма №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.
-
Форма №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
public
end;
var
Form2: TForm2;
implementation
uses Unit3;
var
Hour,Min: word; AlHour, AlMin: word;
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;
procedure TForm2.Button1Click(Sender: TObject);
begin
AlHour := UpDown1.Position;
AlMin := UpDown2.Position;
Timer2.Tag := 1;
Form2.Hide; Timer2.Interval := 3000; end;
end.
-
Форма №3
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,
MMSYSTEM, Unit2;
type
TForm3 = class(TForm)
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
public
end;
var
Form3: TForm3;
implementation
uses Unit1;
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.
-
НЕХ с меня смеяться. Если такие умные помогите, а если нет то ...
-
Это просто ужас для написания такой простенькой программы... Хотя чтоб забить по больше листов для курсовой наверное самый раз. И обезательно часы должны быть стрелочными, что неподойдут с цифрами?
-
>>AIK © часы и есть стрелочные тока с этим плеером торба!!
-
> AIK (13.04.2008 18:45:06) [6]
А реально получить оплату?
-
Непонял зачто оплату за незачет или вы хотели так : ............................ Anatoly Podgoretsky © (13.04.08 23:06) [15]
> Verbatim512 © (13.04.08 22:16) [14]
А реально получить оплату? ............................
-
За незачет не надо, надо за зачет.
|