Dinamik StringGrid

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
CinAnka
Üye
Mesajlar: 84
Kayıt: 03 Nis 2006 11:27
Konum: İstanbul

Dinamik StringGrid

Mesaj gönderen CinAnka »

S.a.

Elimde, içeriğini çalışma anında dinamik olarak query den anlan bir stringGrid war. bunun satır sayısı, sorgulama sonucuna göre 100 de olabilir 1,000,000 da. Özellik penceresinden yüksek satır sayısı belirlediğimde, programım donuyor. dolayısı ile bu işi çalışma anında yapması lazım. yani eklediği her bir kayıttan sonra bir de satır eklenmeli stringgride. ben aşağıdaki kodu denedim:

Kod: Tümünü seç


var
i:integer
begin
i:=10;

//////////////////
stringgride değer atayacak query


while not adoquery1.eof do begin

/////////////////
stringgride değer atama

stringgrid1.rowcount:=i+1;
//////////////////////

adoquery1.next;
end;

bu temsili bir kod oldu, ama şu satır işe yaramıyor:

Kod: Tümünü seç

stringgrid1.rowcount:=i+1;
çalışma anında satır ekleyecek bir kod nasıl yazabilirim??
Güçlü olan haklı değil, haklı olan güçlüdür!
Demitri

Mesaj gönderen Demitri »

query nesnesini datasource nesnesi ile ilişkilendir ve dbstringgrid nesnesini de datasource nensesine bağla böylece kendi kendine sorguları gösteren bi string gridin olur.
iyi çalışmalar.
Kullanıcı avatarı
CinAnka
Üye
Mesajlar: 84
Kayıt: 03 Nis 2006 11:27
Konum: İstanbul

Mesaj gönderen CinAnka »

ben dbstringgrid kullanmıyorum, sadece stringgrid kullanıyorum. söylediğiniz böyle dbye bağlı olmayan bir komponent için geçerli olamaz sanırım...
Güçlü olan haklı değil, haklı olan güçlüdür!
Demitri

Mesaj gönderen Demitri »

CinAnka yazdı:ben dbstringgrid kullanmıyorum, sadece stringgrid kullanıyorum. söylediğiniz böyle dbye bağlı olmayan bir komponent için geçerli olamaz sanırım...
eğer query nesnesi kullanıyorsan bence dbstringgrid de kullanmalısın.
ama yok illa normal stringrid kullanacam diyorsan

Kod: Tümünü seç

stringrid1.colcount:=query.fields.count // bunu tam olarak hatırlamıyorum. 
stringgrid1.rowcount:=query.recordcount şekline yapmalısın. 
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Kod: Tümünü seç

StringGrid1.RowCount:=StringGrid1.RowCount+1;
Fakat döngüden önce RowCount'u 1 yapmayı unutma.
Eğer yapmazsan, diyelim ki ilk aramada 10.000 oldu, ikinci aramada bunun üzerine eklenecek 20.000 olacak satır sayısı.

Kolay gelsin.
Kullanıcı avatarı
CinAnka
Üye
Mesajlar: 84
Kayıt: 03 Nis 2006 11:27
Konum: İstanbul

Mesaj gönderen CinAnka »

evet bu kodu denediğimde, çok ilginç, sadece 1 satır arttırdı.
Güçlü olan haklı değil, haklı olan güçlüdür!
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Özür diliyorum bi şeyi unutmuşum;
bu kodu döngünün içine yazacaksın.
stringgrid1.rowcount:=i+1; yerine yani.
EDİT:Yine unuttum, Döngüden önce yani while not adoquery1.eof do begin'den bir satır önce AdoQuery1.First yazmanı tavsiye ederim. Belki sorugudan sonra ilk kayıda gitmiyordur, belki...
Cevapla