stringGrid e veri girme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

stringGrid e veri girme

Mesaj gönderen bobasturk »

Merhabalar, geçmiş kandilinizi kutlamakla söze başlamak istiyorum.

Küçük bir proje üzerinde çalışıyorum kendimi geliştirmek için. stok takip programı gibi birşey.

çoğu yerde görüyorum satış yapan yerlerde kullanıcı satış yapacağı ürünleri okutuyor editlerde bilgileri görünüyor ve alttaki gride satır satır bunları ekliyor. bende böyle bir çalışma yapmak istedim. amacım bunun gibi grid içine satır satır okuttukça verilerin girilmesi ve sonunda alıcı almaya karar verdiğinde kaydet butonu ile bu satırların urun satış tablosuna yazılması olayını yapmak istiyorum.

sorunlarım çok tabiki öncelikle satır satır girme ile başladım ve takıldım. şöyle bir yol ile (elimdeki kitaptan faydalanarak) string grid içine satırlara giriş yaptım fakat ürün satışı birden fazla olabileceği için bir alt satıra geçişi yapamadım.

Kod: Tümünü seç


procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer;
  begin
    with stringgrid1 do
    begin
      for i:=1 to colcount -1 do
        stringgrid1.Cells[0,0]:=edit1.Text;
        stringgrid1.Cells[1,0]:=edit2.Text;
        stringgrid1.Cells[2,0]:=edit3.Text;
        stringgrid1.Cells[3,0]:=edit4.Text;
        stringgrid1.Cells[4,0]:=edit5.Text;
      end;
end;

görüldüğü gibi bu şekil gridin bir satırına giriş yapıyorum ama yeni bir giriş olduğunda yani butona ikinci kez basıldığında bir alt satıra geçişi ve girişi yapamadım. denemeler yaptım ama nafile

teşekkür ve saygılarımla
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kod: Tümünü seç

StrinGrid.RowCount := StrinGrid.RowCount + 1;
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba

abi yalan söylemeye gerek yok yarı yarıya yapamadım. satır eklemenin bu kadar basit olması beni utandırdı. fakat satırları yardımınla ekleyebiliyorum ama eklenen satıra editlerdeki bilgiler girilmiyor. birinci satıra ilk tıklamada veriler giriyor ve bir satır ekliyor ondan sonraki düğmeye her tıklayışta sadece satır ekliyor. kitapları açtım arattırdım ama nafile yapamadım.

yukarıdaki koduma sadece verdiğin kodu ekledim bi değişiklik yok.

teşekkürler kolay gelsin.
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

hocam satır ekleme yaptıktan sonra bir alt satıra geç ve hangi satırda olduğunu glabal bir değişkene ata stringgrid in eventlerini incele ondraw eventi sanırım işine yarar... en son olarak değer ataması sırasında string in satır paramatresine değişkeni yerleştir.

kolay gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Hangi satırı değiştirmek istiyorsan o satır numarasını yani Row unu demelisin :wink: yani;

Kod: Tümünü seç

StringGrid1.Cells[0, StringGrid1.Row] := Edit1.Text; 
şeklinde diyebilirsin.

Kolay gelsin.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhabalar,

recep ustam satırda bulunan veriyi değiştirmek istemiyorum. mantık şöyle satış yapılacak iki misalen: iki çekiç, bir kürek vs. 10 parça mal. kullanıcı barkod okuyucu veya el ile edite urun numarasını girdiğinde diğer editler otomatik ürün kaydı var ise dolduracak ve altta bulunan stringgrid içine bunları sırası ile alt alta yazacak. kaç tane mal sattı ile. satış gerçekleşirse yani müşteri alır ise kaydet butonu ile veriler ürün çıkış tablosuna yazılacak ve bu işlem ile stoktan düşmüş olacak satış olmaz ise kullanıcı başka bir buton ile işlemi iptal edecek.

hüseyin ustam konu sizin dediğiniz gibi. evet bir alt satıra geçmeyi yapmam gerektiğini biliyorum ve bunu kod içinde belirtmem gerektiğini de çaktım ama nasıl belirteceğimi bir türlü çıkaramayınca sizlere müracaat ettim. verdiğin tavsiyelere uyup inceleyeceğim inşeallah yapabiliriz yoksa baş ağrısına hazır olun.

kolay gelsin.
teşekkürler
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Merhaba.
Row değerini bir artırarak alt satıra geçebilirsin..
Kolay gelsin..
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Hocam bu işi MemTable ile yapsanız daha isabetli olmaz mı? Neden StringGrid i işin içine sokuyorsunuz :?:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba,

recep ustam aslında dediğiniz konu gayet isabetli ve bizim gibi acemi için daha kolay ve isabetli. teklifinizi şu an okuyunca idrak ettim diyebilirim neden dersen aklıma geliyordu fakat kayıtları iş bitince silme işini düşünmemiştim. kafayı hangi duvara vursak acaba (duvara yazık) dediğim gibi ekranın boş görünmesi amacı ile stringgrid düşünmüştüm. teklifini yapıcam abi sağol varol.

yukarıda geçen sorunumun birinci aşamasını çözdüm. teklifini uygulayacağım için artık öğrenme amaçlı olacak soracaklarım. satır ekleme ve eklenen satırlara bilgi girme işini şu şekilde hallettim.

Kod: Tümünü seç


procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer;
  begin
    i:=stringgrid1.RowCount-1;
    with stringgrid1 do
    begin
      StringGrid1.Cells[0,i] := edit1.Text;
      StringGrid1.Cells[1,i] := edit2.Text;
      StringGrid1.Cells[2,i] := edit3.Text;
      StringGrid1.RowCount :=stringgrid1.RowCount+1;
    end;
end;
artık satır ekliyor ve bilgileri alt alta giriyor.
ikinci aşamada yapmak istediğimse işlemden vaz geçilince satırları ve bilgileri silmek aşağıdaki kod ile bilgileri siliyorum fakat satırlar duruyor

Kod: Tümünü seç


procedure TForm1.Button2Click(Sender: TObject);
var
  i:integer;
  begin
    i:=stringgrid1.RowCount;
      with stringgrid1 do
      begin
        for i:=0 to rowcount-1 do
          stringgrid1.Rows[i].clear;
      end;
end;

yolunu ipucu vererek anlatabilirseniz sevineceğim. bu aşamayı geçersem girilen bilgilerin tabloya yazılması sırası gelecek.

teşekkür ve saygılarımla
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

bobasturk yazdı:

Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
var
  i:integer;
begin
  i:=stringgrid1.RowCount;
  with stringgrid1 do
  begin
    for i:=0 to rowcount-1 do
      stringgrid1.Rows[i].clear;
  end;
end;
yerine

Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
var
  i:integer;
begin
  i:=stringgrid1.RowCount;
  with stringgrid1 do
  begin
    for i:=0 to rowcount-1 do
      stringgrid1.Rows[i].clear;
  end;
  if stringGrid1.RowCount > 1 then
    StringGrid1.RowCount := StringGrid1.RowCount - 1;
end;
yada sadece ;

Kod: Tümünü seç

  if stringGrid1.RowCount > 1 then
    StringGrid1.RowCount := StringGrid1.RowCount - 1;
şeklinde yaparsan işinizi görür sanırım..
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba,

Recep ustam cevap tarihine bakınca utandım doğrusu. Bu gün ayın 22 si. Sen 20 sinde yazmışsın. İnanki şimdi gördüm biraz meşguliyet vardı girememiştim siteye.

Cevapların için teşekkür ederim. Yeni şeyler öğrenmek güzel. Ben tavsiye ettiğin memtable olayını kullanmak istiyorum ama bu stringgrid işinin arkasını da bırakmak istemiyorum. Sırayla, sıra geldi bunları ürün çıkış tablosuna insert etmeye.

teşekkür ve saygılarımla
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba,

Recep ustam senin kodun üstüne kod yazmak olmaz ama, verdiğin satır silme kodunda satırları her tıklayışta birer birer siliyordu, bende i değişkenine atadım ve tüm oluşmuş satırları sildi. Yardımın için teşekkür ederim.

Şöyleki

Kod: Tümünü seç


procedure TForm1.Button2Click(Sender: TObject);
var
  i:integer;
begin
  i:=stringgrid1.RowCount;
  with stringgrid1 do
  begin
    for i:=0 to rowcount-1 do
      stringgrid1.Rows[i].clear;
  end;
  if stringGrid1.RowCount > 1 then
    StringGrid1.RowCount := StringGrid1.RowCount -i;
end;

Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

İşinizi gördüyse ne mutlu :alkis: :eyo:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
emrecna
Üye
Mesajlar: 1
Kayıt: 12 Ağu 2020 01:10

Re:

Mesaj gönderen emrecna »

rsimsek yazdı: 22 Eyl 2005 02:41 İşinizi gördüyse ne mutlu :alkis: :eyo:
abi sen öyle mübarek bir adamsın ki 15 yıl sonra işimi gördün sağol varol
Cevapla