adoquery bağlanmak gauge,progressbar görünmesi?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

adoquery bağlanmak gauge,progressbar görünmesi?

Mesaj gönderen erdogan_ozkaya »

Arkaşlar;
Aşağıdaki kodu net üzerinde bir sql bağlanmak için kullanıyorum bir sorn yok bağlanırken bekletiyor net'in hızına göre. istediğim bağlanırken gauge,progressbar herhangi biri olsun bağlanırken dolsun ama nasıl yapabileceğimi bilmiyorum

Teşekkürler

Kod: Tümünü seç

Net_DB.Database:=Edi1.Text;
Net_DB.Server:=Edit2.Text;
Net_DB.Username:=Edit3.Text;
Net_DB.Password:=Edit4.Text;
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: adoquery bağlanmak gauge,progressbar görünmesi?

Mesaj gönderen mkysoft »

Bağlanma işleminin aşamaları olmadığı için tam bir progress olmaz ama windowsdaki gibi kafana göre ilerletebilirsin. bağlama süresi boyunca programının tepki veremediğinden thread içinde bu işlemi yapmalısın. daha önce deneyiyim olmadı ama, thread içinde form yaratıp üzerine progressbar koyabilirsin. bunu nasıl yapacağını ise inputbox'ın kodlarına bakabilirsin.
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: adoquery bağlanmak gauge,progressbar görünmesi?

Mesaj gönderen erdogan_ozkaya »

Hocam cevabın için teşekkürler brkaç kod buldum ama çözemedim

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
begin
   timer1.enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Progressbar1.Step:= 100 div 25;
  timer1.enabled:=false;
  label1.Caption:='Verbindung zur Datenbank wird hergestellt.';
  try
    //"echte DB"
    if cbDB.Checked then
      connectDatenDB;
    // TestDB
    else
      connectDatenTestDB;
    MyConnection1.Connected:=true;
  except
    if MessageDlg('Verbindung zur Datenbank fehlgeschlagen!',mtError, [mbOK], 0) = mrOK then
      close;
  end;
  label1.Caption:='Patch wird ausgeführt.';


  try
    // SQL-Scripte ausführen (Tabellen anpassen/anlegen etc.)

    aktAufgabe.Caption:= 'Aufgabe 1';
    Form1.Refresh; //diese Refreshes brauch ich damit wenigstens das Label aktualisiert wird.
    {1.}Script1.Execute;
    Progressbar1.StepIt;
    aktAufgabe.Caption:= 'Aufgabe 2';
    Form1.Refresh;
    {2.}WKABerichtTexte.execute;
    Progressbar1.StepIt;
    .
    .
    .


    //Änderungen durchführen

    {14.}Aenderungen1;
    Progressbar1.StepIt;
    {15.}Anderungen2;
    Progressbar1.StepIt;
    .
    .
    .

    aktAufgabe.Caption:= '';

    MessageDlg('Datenbankaktualisierung erfolgreich!',mtInformation, [mbOK], 0);
    close;
  except
    MessageDlg('Fehler bei der Datenbankaktualisierung!',mtError, [mbOK], 0);
    close;
  end;
end;


procedure TForm1.Aenderungen1;
begin
  with qTemp do
  begin
    sql.Text:= 'Select * from tabelle1';
    open;
    aktAufgabe.Caption:= 'Änderungen 1';
    Progressbar2.Step:= 100 div RecordCount;
    Progressbar2.Position:=0;
    Form1.Refresh; //Refresh für die Aktualisierung des Labels (ohne klappt auch das nicht)
    for i:= 0 to RecordCount-1 do
    begin
      //Hier stehen die Änderungen;
      next;
      Progressbar2.StepIt;
      Form1.Refresh; //Wird zwar in jedem Durchlauf ausgeführt, aber zu sehen ist nix. Warum?
    end;
    close;
  end;
end; 
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: adoquery bağlanmak gauge,progressbar görünmesi?

Mesaj gönderen mkysoft »

timer nesnesi içinde yapmışlar. ancak burada yine çalıştırılan sql komutunun aşamaları progressbara yansıtılmış. sizin istediğiniz kısmı değil. thread!e bulaşmadan şöyle birşey deneyin. iki timer ekleyin. birinci timer aktif olduğunda (ado başlamadan öce) progress barlı formu create edip ikinci timerı aktif etsin. ikinci timer progressbarı ilerletsin. bağlantı tamamlanınca kapatsın formu.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: adoquery bağlanmak gauge,progressbar görünmesi?

Mesaj gönderen sabanakman »

Sanırım bu örnek bir bağlantıyı aşamalandırmayı karşılamıyor. Değişik kodların çalışma esnalarında yapılacakların mantıksal bir örnek şablonu verilmiş. Zaten Böyle bir işlem progress gibi bir bileşenle saydırmak yerine bir animasyonla bekletebilirsiniz. Özellikle Animate bileşeni ile bu işlemi gerçekleştirebilirsiniz.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: adoquery bağlanmak gauge,progressbar görünmesi?

Mesaj gönderen erdogan_ozkaya »

form2.show;
db.connect:
form2.close;

bu şekilde yapıyorum form ikiyede dediğin gibi bir resim ve animate yerleştiriyorum animateçıkıyor fakat image resim görünmüyor ?

Teşekkürler
Cevapla