DBGrid kadar hızlı stringgrid yapılabilirmi

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

DBGrid kadar hızlı stringgrid yapılabilirmi

Mesaj gönderen comfort »

Arkadaşlar while döngüsü kullanarak verileri stringgride atıyorum.Fakat çok kayıt olduğunda bu işlem çok zaman alıyor.oysa dbgrid için kayıt sayısı çokta fark etmiyor.Ne yapılabilir.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

DBGrid ile StringGrid kökeninde TCustomGrid olan sınıftan türeyen tamamen benzeşen nesnelerdir. Buradaki hız farkı sadece kullanılan tekniklerden kaynaklanmaktadır. Mesela sen tüm kayıtları olduğu gibi gride yüklerken VCL sadece ekranda görünmesi gereken satır kadar yükleme yapmaktadır. Kısacası sana ait gridin ColCount özelliği kayıt sayısı kadar olurken DBGrid de bu ekranda görünen satır sayısı kadardır. Eğer bu yönde bir çalışma yaparsan belki bu sorunu aşarsın. Bu işi organize etmek çok kolay değildir, iyi kodlama ve kontrol gerektirmektedir. İyi çalışmalar.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Mesaj gönderen comfort »

Yani Gerektiği kadar kaydı datasetten okuyup orada gösteriyor.Dolayısıyle daha hızlı oluyor bu işlemler. :twisted: hemen deniyorum bitirirsem herkesle paylaşırım.Bu konuda deneyimli arkadaşlar bildiklerini buraya yazarlarsa sevinirim.Sonuçta bu komponenti hepimiz kullanıcaz. :wink:
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Elinde TDBGrid gibi bir bileşenin kodları var. Eğer zor gelmezse oralara göz atabilirsin. Kodlara göz atabilmek için Ctrl tuşuna basılı tutarken TDBGrid yazısına tıklarsan direk TDBGrid sınıfının kodlarının bulunduğu bölüme geçersin. Sana kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Mesaj gönderen comfort »

yok zaten 2 gündür inceliyorum pek bişey anladığım söylenemez. :oops:
Ama çözümü buldum :) . Ahanda kod:

Kod: Tümünü seç

procedure TStdForm.Grid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
if (acol>0) and (arow>0) then
if grid1.Cells[acol,arow]='' then
begin
dataset1.First;
dataset1.MoveBy(arow-1);
if dataset1.Fields[acol+1].AsString<>'' then
grid1.Cells[acol,arow]:=dataset1.Fields[acol+1].AsString;
end;
end;
dbgridden daha hızı çalışıyor ve stringgrid in esnekliği kulanabiliyorsunuz.Biraz deniycem bunu eğer düzgün çalışırsa projelerimde kullanıcam.Herkese kolay gelsin.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

kafama takıldı. vt diye bir bir kayıt uzmanı varken neden stringride takıldınız. kayıtları çekme, sıralama, filtreleme, rapor oluşturma, toplam alma gibi bir çok yapıyı destekleyen sistem dururken stringgrid le çalışmak biraz kasar gibime geliyor.
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Mesaj gönderen comfort »

vt nedir?
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

vt nedir?
VeriTabanı
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Mesaj gönderen comfort »

Veritabanı ile dbgrid veya stringrid ne alakası var çözemedim.Bu yüzden vt nedir diye sordum.Başka bişey kastediyorsunuz zanettim. ms sql veya firebird gibi veri tabanı motorolarının işi içinde veriyi tutmak ve istediklerimizi filtreleyip bize göstermek değil mi?(veya herneyse). Yoksa delphi kısmında sen istersen verileri editlerin veya dbgrid veya stringgird te göster bunu zaten vt yapamaz. Ben hala başka birşey kastedtiğinizi düşünüyorum.Zaten vt ye sorgu gönderip istediğim verileri çekiyorum. Bunda sorun yok ama asıl sorun dbgrid in stringgrid kadar kullanışlı olmaması. Mesela istediğiniz rengi fontları falan ayarlamanız zor ve kullanışsız.Ayrıca dbgrid i flat yapamıyoruz. Ayrıca dbgrid bu projede hakketen işimi görmüyor.Mesela her tıklamada kayıta konumlanıyor.Oysa bana çift tıklamada o kayda konumlanması gerekiyor vs vs vs gibi sebeplerden stringrid kullandım.Şuan sorunsuz çalışıyor. biraz zor oldu ama değdi. :D
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

comfort yazdı:... ama asıl sorun dbgrid in stringgrid kadar kullanışlı olmaması. ...
Çünkü veri tabanı bağlantılı kullanmak için yapılmamış. O yüzden DBGrid ile de kıyaslamak uygun değil :idea: Sadece excel türü satırlı hücreli memo gibi düşünülebilir. Jedi JvGrid, UltimGrid, TopGrid vb daha farklı üçüncü parti gridler bulabilirsiniz. Bildiğim en başa güreşenlerden birisi quantum grid.. namı diğer dxDBGrid veya cxGrid..
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Mesaj gönderen comfort »

QuantumGrid e param yetmez belki ilerde :oops:
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

ilerde vaktim olursa bende stringgridi dbgrid gibi kullanmayı düşünüyorum,daha doğrusu düşünüyordum memory table olayını keşfettikten sonra buna lüzum kalmadı neyse..beni bu yola iten ise dbgrid gibi db bileşenleri kullanıldığında tablonun sürekli açık kalması web programlama gibi tabloyu açıp gerekli bilgileri ekrana getirip sonra tabloyu kapatmak daha mantıklı ama daha zahmetli bir iş...
Cevapla