Zamanlamış görev şeklinde program çalıştırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
denizfatihi

Zamanlamış görev şeklinde program çalıştırma

Mesaj gönderen denizfatihi »

Öncelikle herkese selam ve kolay gelsin

Kısa bir şekilde anlatayım önce, veri tabanında bir tablo içerisinde çalıştırmak istediğim programların yollarını daha sonra da çalışma saatlerini girdim, yanlız sayının fazlalığından mıdır? anlamadım zamanı gelen programların bir kısmı çalışıyor bir kısmında tepki yok sizce sorun ne olabilir? yardımınız için şimdiden teşekkürler,
kullandığım kod aşağıdadır

Kod: Tümünü seç

procedure TForm1.Timer1Timer(Sender: TObject);
var
a:PChar;
begin
maskedit1.Text:= formatdatetime('dddddd tt', now);
if MaskEdit1.Text=Query1.Fields[1].
then begin
a:=PChar(Query1.Fields[0].AsString);
winExec(a,SW_SHOWNORMAL);
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Mesaj gönderen Battosai »

ilk önce bir sorgu yaz o saatte çalışacak kayıtları getirsin... sonra dönen değerler ile döngü yapıp programları çalıştırabilirsin...senin yazdığın kod ile sadece tek program çalışır...
denizfatihi

Mesaj gönderen denizfatihi »

Battosai tşk
yanlız aklımı kurcalayan bir şey var, timer kullandığım için saati düzenli olarak kontrol ediyorum ama buna rağmen yapmıyor veya senin değin gibi sorgu ve döngü ile nasıl bir şey olmalı, basit bir anlatım yapabilirmisin
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Mesaj gönderen Battosai »

Kod: Tümünü seç

procedure TForm1.Timer1Timer(Sender: TObject);
var
a:PChar;
begin
maskedit1.Text:= formatdatetime('dddddd tt', now);
sorgu('select*from tablo where saat='''+maskedit1.text+''' ');
{Burda sorgu diye yazdığım veritabnı sorgu procedure yada functionu olabilir sen sorgu olayını biliyorsundur diye kısa olsun diye böyle yazdım.}
Query.first;
while not Query.eof do
begin
application.processmessage;
a:=PChar(Query1.Fields[0].AsString);
winExec(a,SW_SHOWNORMAL);
Query.next;
end;
yalnız bu kod timer içinde sorunlu çalışabilir timer intervali 1000 ise sorun çıkması doğaldır...timer 2-3 dakikalık bir intervali olsa sorun olmaz aslında...pek sağlıklı bir yöntem değil yani...
denizfatihi

Mesaj gönderen denizfatihi »

Battosai olmadı hiç çalışmaz oldu :)
tepki dahi vermiyor
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

veritabanına kaydettiğiniz saat formatı ile karşılaştırma yaptığınız saat formatı aynı mı ? kontrol edin.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

birden fazla görev konusunda dikkat etmek gerek... çünkü ram ve hıza göre görevlerin başlaması gecikeceğinden timer sorunu olabilir. bence bir bat dosyasına sisizn işlemleri ekleyip sadece o dosyayı tetiklemek daha mantıklı
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Cevapla