Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Fonksiyondaki hatayı bulamadım..
#1
Aşağıdaki fonksiyonda x ile verilen değer kadar ( 1 den 6 ya kadar ) gridi bilgiyle dolduruyorum. Fakat x değerini 7 veya üzerine çıkardığımda  list index out of bounds[27] hatasını alıyorum. Yani 6 adet gridi dolduruyor 7 ve üstünde sorun oluyor sorun oluyor. 

1) Değişkenlerin değerlerinin boş olmadığından da emin oldum.
2) Grid isimlerinin doğruluğunu kontrol ettim.
3) 7 adet gride değilde tek gride okuduğum 7 adet bilgiyi doldurmayı denedim sonuç aynı.
4) Aldığım bilgiyi kontrol ettim. Hata olmaması için 10 adet aynı bilgiden oluşturup yazmayı denedim.



 function kayit_doldur2:boolean;
var
X,y,sayi_listesi_index,sutun,satir:integer;
Rakamlar, sayi_listesi :TStringList;
Grid: TStringGrid;

begin
 Rakamlar:=TStringList.Create;
 sayi_listesi := TStringList.Create;
 try
   y:=1;
   Rakamlar.LoadFromFile('C:\Users\Ces\Desktop\rakamlar\1.txt');

   for X:=1 to 7 do begin
      sayi_listesi.Delimiter := '-';//Boşluk
      sayi_listesi.DelimitedText := Rakamlar.Strings[x];
      sayi_listesi_index:=0;
      Grid:=(FORM1.FindComponent('g'+IntToStr(x)) As TStringGrid);
     for sutun:=0 to Grid.ColCount-1 do begin
     for satir:=0 to Grid.RowCount-1 do begin
         inc(sayi_listesi_index);
         Grid.Cells[sutun,satir]:= sayi_listesi.Strings[sayi_listesi_index];
      end;
     end;

   end;
 finally
  sayi_listesi_index:=0;
  Rakamlar.Free;
  sayi_listesi.Free;
 end;
end;
Cevapla
#2
Sizin derleyici "Debug mode" 'da çalışamıyor mu ? Bu problemi anında görebilmeniz gerekiyordu. Index 1 'den değil 0' dan başlar.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#3
Sorun çözüldü ... Sorun değişkenin adetindeymiş.
Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi