Arsip: gmn y cara memanggil prosedur timer

 
user image
more 11 years ago

vj_edogawa

mau nanya ni ama para master2 delphi,,, klo cra memanggil prosedur timer gmn y.. seperti contoh klo memanggil prosedur button..qt menginputkan sintak "button1.click".. nah kalo sintak untuk manggil prosedur timer apa y.. mohon bimbingannya... :D
user image
more 11 years ago

mas_kofa

OnTimer contoh menampilkan jam pada Label1;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   Label1.Caption := TimeToStr(Time);
end;
user image
more 11 years ago

vj_edogawa

procedure Tfrmsms.TimerUtamaTimer(Sender: TObject); var sql,sql2,sql3:string; I,rec:integer; begin dm.ADOQout.Active:=false; dm.ADOQout.Active:=true; dm.ADOQinboxg.SQL.Clear; dm.ADOQinboxg.SQL.Add('select from inbox where status="noreply"'); dm.ADOQinboxg.open; I:=1; rec:=dm.ADOQinboxg.RecordCount; while (rec=0) do begin timerutama.Enabled:=true; end; while (I<=rec) do begin timerutama.Enabled:=false; dm.ADOQinboxg.SQL.Clear; dm.ADOQinboxg.SQL.Add('select id, Min(id), ReceivingDateTime, sendernumber,textdecoded,status from inbox where status="noreply" group by id'); dm.ADOQinboxg.open; gamuid:=dm.ADOQinboxg.Fields[0].Asinteger; gamutgl:=dm.ADOQinboxg.Fields[1].AsString; gamupengirim:=dm.ADOQinboxg.Fields[2].AsString; gamuisi:=dm.ADOQinboxg.Fields[3].AsString; gamusts:=dm.ADOQinboxg.Fields[4].AsString; id:=copy(gamuisi,1,7); kodeinfo:=copy(gamuisi,9,10); dm.ADOQsms.Append; dm.ADOQsms.Fields[1].asstring:=gamupengirim; dm.ADOQsms.Fields[2].asstring:=gamutgl; dm.ADOQsms.Fields[3].asstring:=id; dm.ADOQsms.Fields[4].asstring:=kodeinfo; dm.ADOQsms.Fields[5].asstring:=gamuisi; dm.ADOQsms.Fields[6].asstring:=gamusts; dm.ADOQsms.Post; sql:='select from anggota where id_angg="'+id+'"'; dm.ADOQanggota.SQL.Clear; dm.ADOQanggota.SQL.text :=sql; dm.ADOQanggota.open; anggota:=dm.ADOQanggota.Fields[0].AsString; if (id=anggota) then begin sql2:='select * from info where kd_info="'+kodeinfo+'"'; dm.ADOQinfo.SQL.Clear; dm.ADOQinfo.SQL.text :=sql2; dm.ADOQinfo.open; kode:=dm.ADOQinfo.Fields[0].AsString; info:=dm.ADOQinfo.Fields[2].AsString; if (kodeinfo=kode) then begin dm.ADOQout.Append; dm.ADOQoutboxg.Append; dm.ADOQout.Fields[1].asstring:=gamupengirim; dm.ADOQout.Fields[2].asstring:=gamutgl; dm.ADOQout.Fields[3].asstring:=id; dm.ADOQout.Fields[4].asstring:=kodeinfo; dm.ADOQout.Fields[5].asstring:=info; dm.ADOQoutboxg.Fields[1].asstring:=gamupengirim; dm.ADOQoutboxg.Fields[2].asstring:=info; dm.ADOQout.Post; dm.ADOQoutboxg.Post; sql3 := 'update inbox set status="reply" where id='+inttostr(gamuid); dm.ADOQinboxg.Close; dm.ADOQinboxg.SQL.Clear; dm.ADOQinboxg.SQL.Text := sql3; dm.ADOQinboxg.ExecSQL; sql3 := 'update sms set status="reply" where status="noreply"'; dm.ADOQsms.Close; dm.ADOQsms.SQL.Clear; dm.ADOQsms.SQL.Text := sql3; dm.ADOQsms.ExecSQL; I:=I+1; end else begin dm.ADOQout.Append; dm.ADOQoutboxg.Append; dm.ADOQout.Fields[1].asstring:=gamupengirim; dm.ADOQout.Fields[2].asstring:=gamutgl; dm.ADOQout.Fields[3].asstring:=id; dm.ADOQout.Fields[4].asstring:=kodeinfo; dm.ADOQout.Fields[5].asstring:='Data yang anda minta tidak ditemukan...'; dm.ADOQoutboxg.Fields[1].asstring:=gamupengirim; dm.ADOQoutboxg.Fields[2].asstring:='Data yang anda minta tidak ditemukan...'; dm.ADOQout.Post; dm.ADOQoutboxg.Post; sql3 := 'update inbox set status="reply" where id='+inttostr(gamuid); dm.ADOQinboxg.Close; dm.ADOQinboxg.SQL.Clear; dm.ADOQinboxg.SQL.Text := sql3; dm.ADOQinboxg.ExecSQL; sql3 := 'update sms set status="reply" where status="noreply"'; dm.ADOQsms.Close; dm.ADOQsms.SQL.Clear; dm.ADOQsms.SQL.Text := sql3; dm.ADOQsms.ExecSQL; I:=I+1; end; end else begin dm.ADOQout.Append; dm.ADOQoutboxg.Append; dm.ADOQout.Fields[1].asstring:=gamupengirim; dm.ADOQout.Fields[2].asstring:=gamutgl; dm.ADOQout.Fields[3].asstring:=id; dm.ADOQout.Fields[4].asstring:=kodeinfo; dm.ADOQout.Fields[5].asstring:='maaf kode salah / id tidak terdaftar di KPSBU'; dm.ADOQoutboxg.Fields[1].asstring:=gamupengirim; dm.ADOQoutboxg.Fields[2].asstring:='maaf kode salah / id tidak terdaftar di KPSBU'; dm.ADOQout.Post; dm.ADOQoutboxg.Post; sql3 := 'update inbox set status="reply" where id='+inttostr(gamuid); dm.ADOQinboxg.Close; dm.ADOQinboxg.SQL.Clear; dm.ADOQinboxg.SQL.Text := sql3; dm.ADOQinboxg.ExecSQL; sql3 := 'update sms set status="reply" where status="noreply"'; dm.ADOQsms.Close; dm.ADOQsms.SQL.Clear; dm.ADOQsms.SQL.Text := sql3; dm.ADOQsms.ExecSQL; I:=I+1; end; end; timerutama.enabled:=true;; end; saya lagi coba buat aplikasi sms ni skaligus TA saya. timer di atas saya set 7 detik. tp pas saya runing di dtik k 7 hank.. kr2 da yang salah dimana y.. bantuin dunk,,,please,, thx,,,
user image
more 11 years ago

mas_kofa

wow..........menakjubkan sekali....... perintah posting data pake timer.......... apa kompi nggak sgt2 berat sekali..sehingga bikin hang.......
user image
more 11 years ago

herux

@vj_edogawa Pake thread dunk !! dimarahin mas_kofa tuh !
user image
more 11 years ago

vj_edogawa

wadduh maaf bgt y mas_kofa ama mas herux kynya aq udh ngcewain yy.. mohon dmaklum msh newbie..hehe..
@vj_edogawa Pake thread dunk !!
maksudnya pke thread gmn y.. duh maaf bgt skali lg..malu aq.. pengaruh jg y ngrim data pke timer yg berakibat berat ke kompinya.. klo ngga pke timer, kira2 pke apa y bwt solusinya.. soalnya sya btuh suatu interval bwt ng cek sms masuk dan membalasnya.. :D
user image
more 11 years ago

herux

ke blog saya coba !. barangkali (batu, ikan) ngerti... hi..hi.hi...
user image
more 11 years ago

deLogic

sebenarnya tidak mutlak harus menggunakan thread, timer juga bisa, seperti yang telah rekan @vj_edogawa lakukan, walaupun mungkin ada yang menganggap kurang bagus, baik dalam hal performa maupun sumber daya (resource). Penggunaan timer dan thread harus dirancang secara akurat dan teliti, sebab keduanya dapat menimbulkan deadlock, terutama pada pemrosesan intensif dan memakan waktu. namun demikian pemrograman dengan thread membutuhkan pengetahuan dan kemampuan yang lebih. Ok, sementara tidak usah dilanjutkan dulu. saya lihat sekilas dari kode, ada yang janggal dari sini.

  while (rec = 0) do
  begin
    timerutama.Enabled := True;
  end;
----->> gimana kalo rec nya ternyata 0 ???? event onTimer gak akan selesai di-execute karena terjadi loop tak berhingga (infinite loop) coba dibetulin dulu... btw sedikit OOT ya.. Anda menggunakan database apa? jika DB tersebut mendukung StoredProcedure / Function (SP/F), akan lebih baik jika Anda memindahkannya ke SP/F untuk lebih mengoptimalkan pemrosesan.
user image
more 11 years ago

vj_edogawa

owh bgtu y.. jd baik nya gmn y mas, udh diputer2 tp ttp ja hank pd saat runing.. ------------------------------------------------------------------------- saya pke dtbase SQL, dbuatnya pke Xampp.. kr2 db yg sy pke udah mndkung yg mas deLogic maksud bkn y... :?:
user image
more 11 years ago

vj_edogawa

kalo sintak dibawah sya hilangkan saja, kr2 bkal lbih baik g sistem sya.. jd sistem cm akan meng eksekusi apabila record lebih dr 0 saja.. gmn??
# while (rec = 0) do # begin # timerutama.Enabled := True; # end;
more ...
  • Pages:
  • 1
  • 2
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com