Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
argument out of range
#1
merhaba arkadaşlar 
system.classes içindeki aşağıda yazılı kod için "argument out of range" hatası alıyorum. 
çözümü hakkında yardımcı olabilir misiniz? 

function TCollection.GetItem(Index: Integer): TCollectionItem;
begin
 Result := FItems[Index];
end;
Cevapla
#2
Merhaba
muhtemelen index değeri 1'den değil 0'dan başladığı içindir
ya fonkiyonu çağırırken -1 ile çağır ya da fonkiyon içinde -1 ile işlem yap
Cevapla
#3
biraz daha açıklayıcı bilgi rica edeceğim. tam olarak anlayamadım. index değeri ile iligli bir işlem yapmadım ki ben
Cevapla
#4
programında getitem fonksiyonunu nasıl kullanıyorsun
Cevapla
#5
bu benim yazdığım bi kod değil system.classes içinde var delphi tarafından eklenmiş açıkçası hiç bilgi sahibi değilim bu konu hakkında
Cevapla
#6
Kodun o noktaya dallanmasını sağlayan bir kod olmalı güzel kardeşim. İşte o senin yazdığın kodu paylaş demek istiyor arkadaşlar. Kısacası hatayı ne yaparken alıyorsan oralara bir bak ya da Call Stack’ı aç, hangi kod hangi kodu çağırmış onu bir takip et.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#7
galiba aşağıdaki kodlarda parametre kullanımı hakkında alıyorum hatayı. çünkü bu kodları silince söz konusu hatayı vermiyor. 
parametre kullanımımda bir hata var galiba bir göz atarsanız arkadaşlar

procedure TForm4.FormCreate(Sender: TObject);
var
soru,vt_cvp,kull_cvp:string;
begin
adoq1.SQL.Clear;
adoq1.sql.add('select * from users_tbl where users_kullanici=:a');
adoq1.Parameters[0].Value:=edit4.Text;
adoq1.Open;
vt_cvp:=adoq1.FieldByName('users_sifre').Value;
soru:=adoq1.FieldByName('users_soru').AsString;
edit5.Text:=soru;
end;
Cevapla
#8
Merhaba,
GetItem metodu vermiş olduğunuz index (0) değerine sahip değil.
Bu nedenle SQL ile oluşturduğunuz parametreye ulaşamıyorsunuz.  Aşağıdaki yöntemle parametre sayısını görebilirsiniz. 
ShowMessage(ADOQuery1.Parameters.Count.ToString);
Kodunuzu aşağıdaki şekilde değiştirip test edebilir misiniz?
adoq1.Parameters.Items[0].Value := edit4.Text;
Cevapla
#9
(06-06-2019, Saat: 11:37)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
GetItem metodu vermiş olduğunuz index (0) değerine sahip değil.
Bu nedenle SQL ile oluşturduğunuz parametreye ulaşamıyorsunuz.  Aşağıdaki yöntemle parametre sayısını görebilirsiniz. 
ShowMessage(ADOQuery1.Parameters.Count.ToString);
Kodunuzu aşağıdaki şekilde değiştirip test edebilir misiniz?
adoq1.Parameters.Items[0].Value := edit4.Text;

yok böyle de olmadı maaleef
Cevapla
#10
(06-06-2019, Saat: 12:29)harezmi Adlı Kullanıcıdan Alıntı:
(06-06-2019, Saat: 11:37)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
GetItem metodu vermiş olduğunuz index (0) değerine sahip değil.
Bu nedenle SQL ile oluşturduğunuz parametreye ulaşamıyorsunuz.  Aşağıdaki yöntemle parametre sayısını görebilirsiniz. 
ShowMessage(ADOQuery1.Parameters.Count.ToString);
Kodunuzu aşağıdaki şekilde değiştirip test edebilir misiniz?
adoq1.Parameters.Items[0].Value := edit4.Text;

yok böyle de olmadı maaleef

ShowMessage(ADOQuery1.Parameters.Count.ToString);
Buradan aldığınız sonuç nedir?
Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi