Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 39 odgovora
  • 8.684 pregleda

Najnovija ↓

Sta znaci ova greska 30.07.2017. u 22:03 · pre 112 meseci #1
Sta predstavlja ova greska

"EStringListError
: list index out of bounds (-1)
Re: Sta znaci ova greska 30.07.2017. u 22:23 · pre 112 meseci #2
> Sta predstavlja ova greska
> "EStringListError
> : list index out of bounds (-1)

Ne znam u kojoj ti se to klasi desava, pravilo za sve list index out of bonds greske je da pristupas indexu elementa koji ne postoji.

Npr.

Code:

var
  s: TStrings;
begin
  s := TStringList.Create;
  s.Add('Pera');
  s.Add('Mika');
  s.Add('Laza');

  ShowMessage(s[2]); // OK
  ShowMessage(s[5]); // Greska, lista sadrzi 3 elementa stoga je najvisi indeks 2
  ShowMessage([s[-1]); // Greska, pocetni indeks svih listi je 0.

  s.Free;
end;
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Sta znaci ova greska 30.07.2017. u 22:32 · pre 112 meseci #3
Meni se recimo desava ovde...i sto je zanimljivo ne pojavljuje se kada kliknem misem,vec samo kada koristim tastaturu,konkretno enter za odabir i prelaz u drugo polje....

procedure TFrmStanje.ComboBox4DropDown(Sender: TObject);
begin
with ADOQuery5 do
begin


combobox4.Clear;
Close;
SQL.Clear;
SQL.Add('select distinct karoserija,tblkaroserijaid from Tblkaroserija');

Open;

while (not Eof) do
begin
comboBOX4.Items.AddObject(FieldByName('karoserija').AsString,
TObject(FieldByName('tblkaroserijaid').AsInteger));
Next;
end;

end;

end;
Re: Sta znaci ova greska 30.07.2017. u 22:54 · pre 112 meseci #4
U DropDown eventu ComboBoxa mu brises i punis sadrzaj? Vrlo moguce da to ne moze tako, probaj da to radis ranije (tipa on Enter) ili pokusaj da ubacis BeginUpdate/EndUpdate pozive pre brisanja i nakon punjenja.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Sta znaci ova greska 30.07.2017. u 23:20 · pre 112 meseci #5
Probao sam vec sa begin/end update i to ne sljaka,ali ako pokusam da brisem na eventu on enter,tu se desava sledece da kada pokusam da filtriram combobox,sa recimo kar,ono izadje selektovano karavan,jedino to sto je selektovano pokazuje gresku sa indeksima,ako izaberem nesto drugo,prikaze mi sta treba....
Re: Sta znaci ova greska 30.07.2017. u 23:36 · pre 112 meseci #6
Mislim da nije problem brisanje,nego ovaj dropdown,sto sam postavio na true,jer iako izbacim skroz taj clear,opet je isto.....mada se tada u combobox uvecava za jos toliko,tj duplira sve rekorde
Re: Sta znaci ova greska 30.07.2017. u 23:53 · pre 112 meseci #7
Uspeo sam,ili bar za sada,nece jedino taj sto sam selektovao,stavio sam u kodu posle punjenja...

combobox4.ItemIndex := 0;

i onda hoce...
Re: Sta znaci ova greska 31.07.2017. u 00:10 · pre 112 meseci #8
U stvari,ne prijavljuje gresku sada,ali daje pogresne podatke....
Re: Sta znaci ova greska 31.07.2017. u 09:56 · pre 112 meseci #9
Pokusaj ovo: posle svake operacije sa combobox-om (Clear, AddObject) ubaci liniju

Code:
  Application.ProcessMessages;


Mada se to NE radi u DropDown event-u, vec u nekom key eventu (vezano za unos); ili ako ima neki textchange event (to ce biti jos najbolje).

Pozz

Re: Sta znaci ova greska 31.07.2017. u 11:35 · pre 112 meseci #10
Nece ni tada isto mi je,ako dodam u event combobox on change,tu izbacuje gluposti...Meni treba da u tom combobox prikaze karavan,limuzina itd,a da mi zapamti ovaj tobject,odnosno njegov id,znaci brojeve 1,2,3
Re: Sta znaci ova greska 31.07.2017. u 11:37 · pre 112 meseci
izmenjeno 1 put, poslednji put popmilan76 31.07.2017. u 12:05
  1. popmilan7631.07.2017. u 12:05zapis iz teksta poruke
#11
Mada mi je zanimljivo da nece samo taj koji je prvi obelezen kao rezultat filtracije,ako idem strelicama po podacima i vratim se na taj ,tada hoce,kao i svaki drugi....

I jos nesto,posto mi trebaju iz comboboxa ovi id-ovi,sakriveno polje,stavio sam u combobox eventu on exit,ovaj podatak i posle njega message da vidim da li mi izlazi pravi broj id....i tu mi prijavljuje gresku na tom kodu...
,
sifrakaroserije:= INTEGER(TObject(ComboBox4.Items.Objects[ComboBox4.ItemIndex]));
showmessage....sifrakaroserije
Re: Sta znaci ova greska 31.07.2017. u 20:36 · pre 112 meseci #12
Ima li nekog helpa u vezi ovoga?Inace,ako postoji neki drugi nacin,da prikaze jedno polje,a da pamti drugo?
Re: Sta znaci ova greska 31.07.2017. u 20:59 · pre 112 meseci #13
Negde gresis, sad je to tesko reci bez konkretnog koda, ovako radimo napamet. Ako mozes posalji kratak primer koji ne radi pa ce neko vec pogledati.
Alternativno resenje moze biti da ostavis dataset otvoren i da iz njega kasnije citas zeljeni ID.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Sta znaci ova greska 31.07.2017. u 21:21 · pre 112 meseci #14
Dakle,imam kod u combobox eventu dropdown,koji izgleda ovako...

procedure TFrmStanje.ComboBox4DropDown(Sender: TObject);
begin
with ADOQuery5 do
begin

combobox4.Clear;

Close;
SQL.Clear;
SQL.Add('select distinct karoserija,tblkaroserijaid from Tblkaroserija');

Open;
first;
while (not Eof) do
begin
comboBOX4.Items.AddObject(FieldByName('karoserija').AsString,
TObject(FieldByName('tblkaroserijaid').AsInteger));



Next;

end;

end;

end;

end.


I na istom comboboxu,u eventu on exit,postavio sam ovaj kod da vidim kupi li tobject kada izadje iz tog polja...

sifrakaroserije:= INTEGER(TObject(ComboBox4.Items.Objects[ComboBox4.ItemIndex]));
showmessage(inttostr(sifrakaroserije));

I to sve radi sa misem kada sve radim,a tastaturom nece,i to nece samo onaj koji je prvi selektovan...
Re: Sta znaci ova greska 31.07.2017. u 22:55 · pre 112 meseci #15
> I to sve radi sa misem kada sve radim,a tastaturom nece,i to nece samo onaj koji je prvi selektovan...

Ukljuci use debug dcu, uradi rebuild, postavi breakpoint na tu liniju pa polako idi kroz Delphi klase dok ne vidis gde tacno (i zasto) puca.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Sta znaci ova greska 31.07.2017. u 23:08 · pre 112 meseci #16
Googlao sam i googlao i na mnostvo mesta sam nasao da je rec o bagu kada je rec combobox,da je lose dizajnirano i da se moze resiti samo u kodu....a gresku mi pojavljuje ovde....

sifrakaroserije:= INTEGER(TObject(ComboBox4.Items.Objects[ComboBox4.ItemIndex]));


Inace ovakav kod sam koristio i u prethodnim projektima,ali sam birao podatke preko edita i otvarao dbgrid iz druge forme,pa ih vracao nazad,i to je radilo,ali mi je sada ovde lakse...ovako,da ne otvaram suvisno nove forme...
Re: Sta znaci ova greska 31.07.2017. u 23:16 · pre 112 meseci #17
> Googlao sam i googlao i na mnostvo mesta sam nasao da je rec o bagu kada je rec combobox,da je lose dizajnirano i
> da se moze resiti samo u kodu....a gresku mi pojavljuje ovde....

> sifrakaroserije:= INTEGER(TObject(ComboBox4.Items.Objects[ComboBox4.ItemIndex]));

Cudno mi je da radi sa misem a ne preko tastature. Mislio sam da nadjes gresku u Delphi kodu (kodu kontrole), ovo je linija iz tvog koda, ako ukljucis debug dcus, mozes sa F7 da zaronis u VCL kod i vidis sta se na licu mesta desava, to je jedino relevantno, ovako samo mozemo nagajdjati.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Sta znaci ova greska 01.08.2017. u 14:27 · pre 112 meseci #18
Ne znam ja to uraditi...pokusao sam i nesto ne ide...cekirao sam debug dcu i f7 i nista...
Da li je ovo jedini nacin,da uradim ovako nesto ili moze nestoi drugo...
Re: Sta znaci ova greska 01.08.2017. u 20:49 · pre 112 meseci #19
Kad zavrsis sa punjenjem:

comboBOX4.Items.AddObject(FieldByName('karoserija').AsString,
TObject(FieldByName('tblkaroserijaid').AsInteger));

...

stavi:

comboBOX4.ItemIndex := 0;
Re: Sta znaci ova greska 01.08.2017. u 20:57 · pre 112 meseci #20
Probao i ne izlazi mi greska,ali mi izlazi pogresan podatak,treba da bude pod karavan broj 3,a izlazi mi 2....
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme