StringGrid de seçili olan satırın silinmesi ve tüm satırları

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
tugsat
Üye
Mesajlar: 132
Kayıt: 04 May 2009 09:30

StringGrid de seçili olan satırın silinmesi ve tüm satırları

Mesaj gönderen tugsat »

Merhaba arkadaşlar stringgridde seçili olan satırı nasıl sildirebilirim stringgriddeki en alttaki satır değil selected seçili olan satır ve birde şöyle sorunum var programı kullanan kişi satışlar formunda çıkıp yenden satışlar formuna girince yinede burda
önceden o stringgride yolladığı veriler gozukuyor (programı kapatmadığı surece) peki ben satışlar formuna yollayan butona yada satışlar formunun çıkışına ne yazmalıyım ki en üstteki satır hariç tüm satırları silecek (en üst satır silmemeliyim en üst satırda
genel bilgiler yazıyor)
Yardımlarınız için teşekkür ederim..



:?: :?:
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Re: StringGrid de seçili olan satırın silinmesi ve tüm satırları

Mesaj gönderen abdulkadir »

verileri nereye yazıyorsun nasıl aktarıyorsun bilmeden cevap vermek zor
sunu bir incele

Kod: Tümünü seç

unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm} 
// StringGrid1e veri aktar
procedure TForm1.FormCreate(Sender: TObject);
var
  i,j:integer;
begin
  for i := 0 to StringGrid1.RowCount -1 do
  begin
    for j := 0 to StringGrid1.ColCount - 1 do
    begin
      StringGrid1.Cells[j,i] := IntToStr(j)+','+IntToStr(i);
    end;
  end;
end;
 
//secili  satırı silicek procedure
procedure DeleteStringGridRow1(AStringGrid:TStringGrid;Arow:Integer);
var
  i,j:integer;
begin
  for i := Arow to AStringGrid.RowCount - 2 do
  begin
    for j := 0 to AStringGrid.ColCount - 1 do
    begin
      AStringGrid.Cells[j,i] := AStringGrid.Cells[j,i+1];
    end;
  end;
  AStringGrid.RowCount := AStringGrid.RowCount-1;
end;
//StringGrid1 satır secildikten sonra bu butona tıklayarak secimi sil
procedure TForm1.Button1Click(Sender: TObject);
var
  SelectedRow:integer;
begin
  //button1 tıklandıgında secili satırı silmek için DeleteStringGridRow1 cagrılır
  SelectedRow := StringGrid1.Row;
  DeleteStringGridRow1(StringGrid1,SelectedRow);
end;
 
end.
Fikirleri Aktar
Kaynakları Dagıt
Ve
Yoldan Çekil
http://www.Leventler.com.tr
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: StringGrid de seçili olan satırın silinmesi ve tüm satırları

Mesaj gönderen mkysoft »

StringGridlerde satır silme fonksiyonu olmadığından aşağıdaki yöntemi kullanabilirsiniz:

Kod: Tümünü seç

procedure DeleteRow(yourStringGrid: TStringGrid; ARow: Integer);
var i, j: Integer;
begin
  with yourStringGrid do
  begin
    for i := ARow to RowCount-2 do
      for j := 0 to ColCount-1 do
        Cells[j, i] := Cells[j, i+1];
    RowCount := RowCount - 1
  end;
end; 
Kaynak: http://www.delphi3000.com/article.asp?ID=819
Bu sitede silme özelliği olan StringGrid yapmayıda anlatıyor.

StringGrid'in row özelliğini 2 yaparsan diğer satırlar silinecektir, 1. satırıda

Kod: Tümünü seç

StringGrid1.Rows[1].Clear;
komutu ile temizleyebilirsin.
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: StringGrid de seçili olan satırın silinmesi ve tüm satırları

Mesaj gönderen Battosai »

Procedure u aşağıdaki gibi değiştir...

Kod: Tümünü seç

procedure DeleteRow(yourStringGrid: TStringGrid; ARow: Integer);
var i, j: Integer;
begin
if Arow=0 then exit;
  with yourStringGrid do
  begin
    for i := ARow to RowCount-2 do
      for j := 0 to ColCount-1 do
        Cells[j, i] := Cells[j, i+1];
    RowCount := RowCount - 1
  end;
end; 
tugsat
Üye
Mesajlar: 132
Kayıt: 04 May 2009 09:30

Re: StringGrid de seçili olan satırın silinmesi ve tüm satırları

Mesaj gönderen tugsat »

Yardım Lütfen.. :)
tugsat
Üye
Mesajlar: 132
Kayıt: 04 May 2009 09:30

Re: StringGrid de seçili olan satırın silinmesi ve tüm satırları

Mesaj gönderen tugsat »

Arkadaşlar saolun verdiğiniz kodlar sayesinde hallettim şu şekilde yaptım ;

Kod: Tümünü seç

var i, j: Integer;
begin
if StringGrid1.row=1 then
begin
StringGrid1.Rows[1].Clear;
exit;
end;
  with StringGrid1 do
  begin
    for i := Row to RowCount-2 do
      for j := 0 to ColCount-1 do
        Cells[j, i] := Cells[j, i+1];
    RowCount := RowCount - 1
  end;
Teşekkürler..
tugsat
Üye
Mesajlar: 132
Kayıt: 04 May 2009 09:30

Re: StringGrid de seçili olan satırın silinmesi ve tüm satırları

Mesaj gönderen tugsat »

Ardakaşlar şuanda şöyle bir sorunum var seçilen satırı düzgün sildiriyorum ilk satırıda sildirirken verilerini 0 yapıyorum böylece işlem hatası olmuyor ancak şunu halletmem lazım hata veriyor ;
Stringgridde seçili olan satırın içi tamamen boşsa onu ellemeyecek silmeyecek çünkü en altta bi boş satır var onuda siliyor bu seçili olanı sildirme kodu bu sefer soldaki dbgridden ürün eklerken hata veriyor
Yani napıp edip şunu yapmam lazım ;
stringgridde seçili olan satırın içi boşsa o satırı silmeyecek bir turlu yapamadım deli oldum yardımlarınızı bekliyorum...

:Nevil :Nevil :Nevil :Nevil :Nevil :Nevil :Nevil :Nevil :Nevil :Nevil
tugsat
Üye
Mesajlar: 132
Kayıt: 04 May 2009 09:30

Re: StringGrid de seçili olan satırın silinmesi ve tüm satırları

Mesaj gönderen tugsat »

Arkadaşlar yarcım edecek varmı acaba yardımlarınızı bekliyorum acilen :(
Sabahdan beri hala yapamadım şu şeyi deli olcam :D
Gözüm bi yandanda burda sabahtan beri hala yardım yok :(
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: StringGrid de seçili olan satırın silinmesi ve tüm satırları

Mesaj gönderen aslangeri »

s.a.
-S:ne yapmak istiyorsun?
-C:stringgridde seçili olan satırın içi boşsa o satırı silmeyecek.
-S:Satırın boş olup olmadığını nerden anlıyorsun?
-C:altta bi boş satır var

Kod: Tümünü seç

if stringgrid.row=stringgrid.rowcount-1 then .....;
-S:Başka satırın boş olup olmadığı nasıl anlaşılır?
-C:.............
(ilk sütundaki değeri alırım if ile bakarım boşmu dolumu diye)

Kod: Tümünü seç

if stringgrid.cells[a,b]='' then ......;
kolay gelsin.

not:kodlarda yazım hatası olabilir. afaki yazdım.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: StringGrid de seçili olan satırın silinmesi ve tüm satırları

Mesaj gönderen sabanakman »

Bir grid satırının boş olup olmadığını başka başlıkta da sormuştun. 2 gün önce verilen bu kodlar bir satırın boş olduğunu tespit eder.

-> viewtopic.php?f=2&t=25586&p=144211#p144211

Ayrıca başka yerlerden gelecek cevaplara muhtaç bir şekilde yoluna devam edemezsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla