DBGrid'de istenilen elemanları seçmek...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
uranyum238
Üye
Mesajlar: 50
Kayıt: 06 Kas 2005 10:46

DBGrid'de istenilen elemanları seçmek...

Mesaj gönderen uranyum238 »

Arkadaşlar databaseden verileri dbgride aktarıyorum ve 2. bir işlem yapmam lazım; griddeki 4. kolondaki bilgiler benim için önemli bunları alıp bir değişkene atamam lazım yazdığım kod

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
a:AnSiString;
begin
for i := 1 to ADOTable1.RecordCount-1 do
begin
a:=DBGrid1.Columns[4].Grid.Fields[i].AsString;
ShowMessage(a);
end;
end;
Bu fakat 4. kolon yerine sırayla 1,2,3,4.... bütün kolonların değerlerini gösteriyor ve kolon sayısı bitince de hata veriyor. Ne yapmam lazım sadece 4. kolondaki verileri alıp üzerlerinde işlem yapmam lazım...
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: DBGrid'de istenilen elemanları seçmek...

Mesaj gönderen conari »

grid yerine datasetten git.

Kod: Tümünü seç

while not(query1.Eof) do
    begin
       a:=query1.Fields[1].Value;
          query1.Next;
        end;
Yanlız buraada "a" her zaman ezilir ve son kayıdı gösterir
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
uranyum238
Üye
Mesajlar: 50
Kayıt: 06 Kas 2005 10:46

Re: DBGrid'de istenilen elemanları seçmek...

Mesaj gönderen uranyum238 »

Filtrelenmiş kayıtları databaseden çekiyorum ve sadece griddeki bilgileri işlemeye ihtiyacım var. Çok fazla kayıt olduğundan bu işlem programı kasabilir, o yüzden sadece datagriddeki verileri almam lazım benim yazdığım kod bana çok mantıklı geliyor ama neden olmuyor anlamış değilim.
ZeynelAbidin
Üye
Mesajlar: 69
Kayıt: 02 Oca 2009 09:03

Re: DBGrid'de istenilen elemanları seçmek...

Mesaj gönderen ZeynelAbidin »

conari arkadaşımın yaptığını yaparsanda aynı şey olur. çünkü zaten o döngü filtrelenmiş kayıtta dönüyor yani senin dbgridinde gördüğün bilgiler için bir döngü söz konusu senin yazdıpun kod ise

Kod: Tümünü seç

a:=DBGrid1.Columns[4].Grid.Fields[i].AsString;
burada delphi elimin altında olmadığı için vede kodları ben ezbere bilemediğim için

Kod: Tümünü seç

DBGrid1.Columns[4]
burdan sonrasını değişik şekideğişik şekillerde denermisin

Kod: Tümünü seç

fields.value
gibi
ama bende conari arkadaşımn yaptığı gibi yapıyorum.
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: DBGrid'de istenilen elemanları seçmek...

Mesaj gönderen qamyoncu »

sorunun hallolması gerekir.. Delphi yüklü olmadığı için deneme şansı bulamadım kusura bakmayın..

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
a:AnSiString;
begin
for i := 1 to ADOTable1.recordcount-1 do
begin
a:=DBGrid1.Cells[4,i];
ShowMessage(a);
end;
end;
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
uranyum238
Üye
Mesajlar: 50
Kayıt: 06 Kas 2005 10:46

Re: DBGrid'de istenilen elemanları seçmek...

Mesaj gönderen uranyum238 »

qamyoncu yazdı:sorunun hallolması gerekir.. Delphi yüklü olmadığı için deneme şansı bulamadım kusura bakmayın..

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
a:AnSiString;
begin
for i := 1 to ADOTable1.recordcount-1 do
begin
a:=DBGrid1.Cells[4,i];
ShowMessage(a);
end;
end;
Cevap için teşekkür ama DBGrid'in maalesef cell özelliği yok ya da ben bulamadım.
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: DBGrid'de istenilen elemanları seçmek...

Mesaj gönderen qamyoncu »

Haklısınız. Aklım StringGrid'e gitmiş. Kusura bakmayın..

conari arkadaşımızın yaptığı yöntemi denememiş gibisiniz. Filtreleme işlemi; tahmin ettiğim kadarı ile table üzerinde olur. DBGrid üzerinde değil. Yani filtrelemeden sonra DBGrid'inizde 10 tane kayıt görünüyorsa, while not adotable1.eof do döngüsü 10 kere döner. Lütfen bir de böyle dener misiniz?
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
uranyum238
Üye
Mesajlar: 50
Kayıt: 06 Kas 2005 10:46

Re: DBGrid'de istenilen elemanları seçmek...

Mesaj gönderen uranyum238 »

qamyoncu yazdı:Haklısınız. Aklım StringGrid'e gitmiş. Kusura bakmayın..

conari arkadaşımızın yaptığı yöntemi denememiş gibisiniz. Filtreleme işlemi; tahmin ettiğim kadarı ile table üzerinde olur. DBGrid üzerinde değil. Yani filtrelemeden sonra DBGrid'inizde 10 tane kayıt görünüyorsa, while not adotable1.eof do döngüsü 10 kere döner. Lütfen bir de böyle dener misiniz?
Evet bu şekilde oluyor çok teşekkürler... Filtreleme sonrasında işlem yaptığım için DBGrid üzerinden işlem yaptığımı varsayıyordum ama tablodan yapıyorsa o zaman sorun yok.
Cevapla