Tam Sürümünü Görmek İçin : Delphi ile Zil Çalar
Delphi ile yazmak istediğim programda veritabanından haftalık programı alacak
ve tray icon halinde arka planda çalışarak işlemleri uygulayacak.
Buraya kadar tamam ama çözemediğim bazı kısımlar var.
Örneğin;
-------------------
"Pazartesi, Salı, Çarşamba, Perşembe, Cuma"
Hafta içi günlerde,
Saat 08:30 da "1.wav" dosyasını 20 saniye ye çalacak.
Saat 09:30 da "2.wav" dosyasını 1 dakika çalacak.
Saat 10:30 da "3.wav" dosyasını 4 dakika çalacak.
--------------------
Bu işlemleri yapacak satırlar nasıl olmalı.
ahmet ustun
19/05/2003, 13:02
bunun için en basitinden, timer ve mediaplayer bileşenlerini kullanmaktır. yapamazsan yardımcı olurum. başarılar.
Şu tipte bir code yazdım;
-------------------------------------
type
TProgram = record
time1 : string[20];
time2 : string[20];
desc : string[20];
dosya : string[50];
end;
TMainForm = class(TForm)
Timer1: TTimer;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
MediaPlayer1: TMediaPlayer;
var
MainForm: TMainForm;
DProgram : array[1..3] of TProgram;
F : file of TProgram;
Progress : char;
procedure TMainForm.FormCreate(Sender: TObject);
const Days: array[1..7] of string =
('Pazar', 'Pazartesi', 'Salı',
'Çarşamba', 'Perşembe',
'Cuma', 'Cumartesi');
begin
Label3.Caption := Days[DayOfWeek(Date)];
DProgram[1].time1 := '21:28:00';
DProgram[1].time2 := '00:00:30';
DProgram[1].dosya := 'C:\Downloads\THEbest\Die Another Day.mp3';
DProgram[1].desc := '1. Ders Zili';
DProgram[2].time1 := '16:56:00';
DProgram[2].time2 := '00:01:00';
DProgram[2].desc := '2. Ders Zili';
DProgram[3].time1 := '16:58:00';
DProgram[3].time2 := '00:04:00';
DProgram[3].desc := '3. Ders Zili';
end;
procedure TMainForm.Timer1Timer(Sender: TObject);
var
i: integer;
kontrol : char;
begin
Label1.caption := DateTimeToStr(Now);
kontrol := 'A';
for i:= 1 to 3 do begin
if ((time >= StrToTime(DProgram[i].time1)) AND (time <= StrToTime(DProgram[i].time1) + StrToTime (DProgram[i].time2) )) then kontrol :='B';
if ((Progress = '0') AND (kontrol = 'B')) then
begin
StatusBar1.SimpleText := DProgram[i].desc +' Çalıyor...';
MediaPlayer1.Filename := DProgram[i].dosya;
MediaPlayer1.Open;
Mediaplayer1.play;
Progress :='1';
end;
if (kontrol ='A') then
begin
Mediaplayer1.close;
StatusBar1.SimpleText := 'Algılayıcı Devrede';
Progress :='0';
end;
end;
end;
end.
--------------------------------
Form penceresinin sağ üst köşesinde bulunan
Minimize, Maximize, Close
butonlarına şu görevleri nasıl atıyabilirim.
Minimize, Close => herhangi birine tıklanınca benim yapılmasını istediğim prosedür işleyecek.
Maximize => oradan kaldırmak istiyorum. yani disable da olabilir
Maximize'ı formun BorderIcons özelliklerinden kaldırabilirsin, aktif yada pasif yapabilirsin.
Close da ise Formun ObClose olayına şu kodları yazarsan görev atayabilirsin.
if Application.MessageBox('Çıkacak mısın','asd',mb_YesNo) = mrno then
Action:=canone;
istersen soruyu sormamasını istersin. ama mutlaka Action:=caNone olmak zorunda...
Minimize'ı ise bende henüz tam olarak beceremedim diyebilirim. :) ama çalışmalarım devam etmekte çözünce haber verem söz :D.
kolay gelsin
ok teşekkürler tamam yaptım
max ve min butonlarını false yaptım sadex X kaldı onuda action:=canone; ile işlev ekledim ama bir problem çıktı
time prosedürü
DProgram[1]
kaydına baktığında zaman tutuyorsa
DProgram[1].dosya := 'C:\Downloads\THEbest\Die Another Day.mp3';
dosyasını çalıyor ve saniye aşımında duruyor hiç problem yok fakat
DProgram[2]
DProgram[3]
e geldiğinde başlayıp kapatıyor ve sistemi çok yavaşlatıp saniye geçene kadar ses gelmiyor. dıdd dıd dıd ses geliyor sadece :=)
alla halla.
Benim yazdığım bir program
incelemek isteyenler için download linki
http://www.tuannasoft.com/prg/zil/TuannasoftZilVer0.0.0.2.rar
Forum Yazılımı : vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.