S.A.
Ekranda bir DBEdit alanı ve birde DBGrid var.
Kayıt üzerinde bir oynama yapıyorum(ADOQX.Edit);
Kaydet tusuna bastığımda (ADOQX.Post) işleminden sonra sıralama Before post, After Post, After Scroll olarak işliyor.
Fakat ben ekrana normal dbgrid yerine Devexpressin gridini koyarsam
Kaydet butonuna bastığımda işlem sırası Before post, After Scroll, AfterPost olarak işliyor.
Ayrıca her kaydet butonuna bastığımda sistem dosyadaki tüm kayıtlar için AfterScroll uyguluyor.
Bu konuda bilgisi olan varmı.
Kolay gelsin
AfterScroll Problemi hakkında(cozuldu)
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
AfterScroll Problemi hakkında(cozuldu)
En son adelphiforumz tarafından 29 Nis 2009 05:25 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
-
- Kıdemli Üye
- Mesajlar: 489
- Kayıt: 13 Eyl 2003 09:10
- Konum: istanbul
- İletişim:
Re: AfterScroll Problemi hakkında yardım
Sıralama konusunda bir fikrim yok ama
post sonrası DataSeti Close, open yapıyorsan AfterScroll işler.
AfterScroll benim işim bitene kadar uygulanmasın diyorsan
Sadece post et ve formun kapanısında CommitRetaining ile kaydı tamamla.
post sonrası DataSeti Close, open yapıyorsan AfterScroll işler.
AfterScroll benim işim bitene kadar uygulanmasın diyorsan
Sadece post et ve formun kapanısında CommitRetaining ile kaydı tamamla.
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: AfterScroll Problemi hakkında (Cozuldu)
Cevap Kardelen Yazılım sitesinden alıntıdır.
AfterScroll Olayına Dikkat
gönderen berkant tarih Çrş Mar 19, 2008 9:41 am
cxGrid kullanımında GridMode kullanılmıyorsa eğer girdle ilişkili DataSet'in AfterScroll olayına kod yazarken bazı noktolara dikkat edilmelidir.
cxGrid varsayılan olarak GridMode değildir ve ilişkili dataset içindeki tüm kayıtları dataset açıldıktan sonra yükler. ve her kayıtta Dataset nesnesinin AfterScroll olayını çağırır.
Bu durum performans açısında bazı sıkıntılar oluşturabilir.
Bu kodda sql1 nesnesinin 1000 kayıt taşıdığını farz edelim. sql1 nesnesi bir cxGrid'e bağlı ise eğer afterScroll olayında tanımlanan kod sql1.Open komutu verildiğinde 1000 defa çalışacaktır. Ciddi bir performans problemi olabilir. Bu durumu engellemek için TDataset sınıfında tanımlanan ControlsDisabled fonksiyonu kullanılabilir. Kod aşağıdaki hali alacaktır.
veya bu işlemler için Dataset.AfterScroll kullanmak yerine cxGridTableView.OnFocusedRecordChange olayını kullanmayıda tercih edebilrsiniz.
AfterScroll Olayına Dikkat
gönderen berkant tarih Çrş Mar 19, 2008 9:41 am
cxGrid kullanımında GridMode kullanılmıyorsa eğer girdle ilişkili DataSet'in AfterScroll olayına kod yazarken bazı noktolara dikkat edilmelidir.
cxGrid varsayılan olarak GridMode değildir ve ilişkili dataset içindeki tüm kayıtları dataset açıldıktan sonra yükler. ve her kayıtta Dataset nesnesinin AfterScroll olayını çağırır.
Bu durum performans açısında bazı sıkıntılar oluşturabilir.
Kod: Tümünü seç
Procedure sql1AfterScroll(DataSet: TDataSet);
begin
Sorgu.Close;
Sorgu.Sql.Text := 'Select Sum(Adet/20.00) from yuklenen_hizmetler where yat_pol= '+QuotedStr(sql1.FieldbyName('Yat_POL').Asstring+
' and protokol_no='+inttostr(sql1.FieldbyName('protokol_no').asInteger);
Sorgu.Open;
Lable1.Caption := Sorgu.Fields[0].Asstring;
end;
Kod: Tümünü seç
Procedure sql1AfterScroll(DataSet: TDataSet);
begin
if Dataset.ControlsDisabled Then
exit; //Grid kayıtları yüklerken ilişkili kontrolleri pasif hale getiriyor. Bu yüzden kontrollerin pasif olup olmadığına bakıyoruz.
Sorgu.Close;
Sorgu.Sql.Text := 'Select Sum(Adet/20.00) from yuklenen_hizmetler where yat_pol= '+QuotedStr(sql1.FieldbyName('Yat_POL').Asstring+
' and protokol_no='+inttostr(sql1.FieldbyName('protokol_no').asInteger);
Sorgu.Open;
Lable1.Caption := Sorgu.Fields[0].Asstring;
end;
Afterscroll ile ilgili olarak
gönderen samiboybeyi tarih Pzt Nis 07, 2008 6:55 pm
Afterscroll'a
if Dataset.ControlsDisabled Then
exit;
kodunu yazmadan önce
1)Sorgu, sonuçları 7-8 sn'de getiriyordu.
2)Mouse bekleme imleci olan kum saati bir çok aşamada sürekli ekrana geliyordu.
Bu kodu ekledikten sonra
1) Sorgu sonuçları hızla gridlere yansıdı.
2) Mouse bekleme imleci olan kum saati görüntüsü artık gelmedi.
Sonuç: Dikkat edilmesi gereken önemli bir ayrıntı olduğu programlarda gözardı edilmemelidir.semialsamiboybeyi
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
-
- Kıdemli Üye
- Mesajlar: 489
- Kayıt: 13 Eyl 2003 09:10
- Konum: istanbul
- İletişim:
Re: AfterScroll Problemi hakkında yardım
Buraya danışılan sorunların, cözümünden sonra
herkesin sizin gibi çözümü burda paylaşması dilegi ile
Size başarılar dilerim...
herkesin sizin gibi çözümü burda paylaşması dilegi ile
Size başarılar dilerim...
Re: AfterScroll Problemi hakkında(cozuldu)
Çok teşekkürler, aynı sıkıntıyı yaşadım ve çözümünüzü kullanarak durumu çözdüm. Çok güzel anlatılmış.
west