sql yedekleme programında yedekleme başlayınca bazı butonları pasif yapmak istiyorum;
delphi hakkında komutların çalışma sırası veya önceliği var mı ?
yukarıdan aşağı çalışması gerekli değil mi;
Kod: Tümünü seç
log_memo.Lines.Add('Yedekleme Başladı ' + datetostr(date)+' ' + timetostr(time())) ; // sorunsuz hemen memo ya yazıyor;
// Application.ProcessMessages; // etkisi olmuyor butonlar aynı ama sql komutuları çalışıyor yedekliyor hata yok
// Application.Run; // etkisi oluyor butonlar hemen değişiyor ama sql komutuları çalışmıyor hata yok yedekleme yok
// yedekfrm.Refresh; // butonlara etkisi yok sql komutları çalıyor yedekliyor
yedekleme bitince tuşlar istediğin gibi oluyor.
Kod: Tümünü seç
if (hata) then begin
log_memo.Lines.Add('Yedekleme Bitti ' + datetostr(date)+' ' + timetostr(time())) ; ; // bu satırı memoya yazmadan tuşlar pasif oluyor
Kod: Tümünü seç
procedure Tyedekfrm.yedekleClick(Sender: TObject);
var
Save_Cursor:TCursor;
hata:boolean;
yol:Ansistring;
begin
tus_yedekle;
yedekfrm.Cursor := crsqlwait;
hata:=true;
Save_Cursor := Screen.Cursor;
baglan.Enabled:=false; //butonlar
liste.Enabled:=false;
temizle.Enabled:=false;
yardim.Enabled:=false;
kapat.Enabled:=false;
kaydet.Enabled:=false;
yukle.Enabled:=false;
zipla.Enabled:=false;
log_memo.Lines.Add('Yedekleme Başladı ' + datetostr(date)+' ' + timetostr(time())) ; // sorunsuz hemen memo ya yazıyor;
// Application.ProcessMessages; // etkisi olmuyor butonlar aynı ama sql komutuları çalışıyor hata yok
// Application.Run; // etkisi oluyor butonlar değişiyor ama sql komutuları çalışmıyor hata yok
// yedekfrm.Refresh; // butonlara etkisi yok sql komutları çalıyor
try
sorgu.sql.Clear;
sorgu.sql.Add('BACKUP DATABASE ' + tablo_adi.Text);
sorgu.sql.Add(' TO DISK = '+''''+kayit_yeri1.Text+'''');
sorgu.sql.Add(' WITH INIT ,');
sorgu.sql.Add(' NOUNLOAD ,');
sorgu.sql.Add(' NAME = N'+''''+tablo_adi.Text+' backup'+''''+',');
sorgu.sql.Add(' NOSKIP ,');
sorgu.sql.Add(' STATS = 10,');
sorgu.sql.Add(' NOFORMAT');
sorgu.ExecSQL;
except
hata:=false;
log_memo.Lines.Add('Yedeklemede Hata Oluştu '+ datetostr(date)+' ' + timetostr(time())) ;
yedekfrm.Cursor := Save_Cursor;
tus_pasif;
end;
if (hata) then begin
log_memo.Lines.Add('Yedekleme Bitti ' + datetostr(date)+' ' + timetostr(time())) ; ;
yedekfrm.Cursor := Save_Cursor;
tus_pasif;
Application.ProcessMessages;