08. maj 2002 - 09:46Der er
7 kommentarer og 1 løsning
Hvordan kan man undgå fejlen - ListBox1 Out of bounch?
Jeg har lavet et lille program som tilføjer den tekst jeg skrive i et editfelt til en ListBox. Derefter skal man så kunne udskrive det der stå i listboxen på den samme linie i et memofelt. Mit problem : Hvis der ikke tilføjes noget i ListBox1.Items[1] kommer fejlen listbox1 item out of bounch (1) fordi ListBox1.Items[1] er tom, hvordan kan man forhindre fejlen i nedenstående kode uden at adde en tom linie i listboxen?
<-- KODE
Var Nr : array [1..3] of String;
procedure TForm1.Button3Click(Sender: TObject);//Exit begin Close; end;
procedure TForm1.Button1Click(Sender: TObject);//Add Edit1 til Label1 & Edit2 begin Label1.Caption := Edit1.Text; Edit2.Text := Label1.Caption; Edit1.Text := ''; end;
procedure TForm1.Edit2Change(Sender: TObject);//Edit2.Text add til LitsBox1 begin ListBox1.Items.Add(Edit2.Text); end;
procedure TForm1.Button2Click(Sender: TObject);//ListBox1 udskrives til Memo1 begin Nr[1] := ListBox1.Items[0]; Nr[2] := ListBox1.Items[1]; Nr[3] := ListBox1.Items[2];
Memo1.Lines.Add(Nr[1] + Nr[2] + Nr[3]);
end;
NB : Den skal udskrive alle Items i listboxen på samme linie i memo feltet!!
procedure TForm1.Button2Click(Sender: TObject); var I: integer; begin for I:=0 to Listbox1.items.count-1 do begin if I>2 then break; Nr[I+1] := Listbox1.items[I]; end; end;
procedure TForm1.Button2Click(Sender: TObject); var I: integer; begin for I:=0 to Listbox1.items.count-1 do begin if I>2 then break; //<-------------- Totalt unødvendigt !!!!!!!! Nr[I+1] := Listbox1.items[I]; end; end;
Martin>> Flere måder at lave det på, men med den kode jeg lavede der er den ikke unødvendig da hans Nr array er på 3 objecter og det ville derfor give en access violation hvis der var mere end 3 entries i hans Listbox hvis den if-break ikke var der.
Man kan så argumentere for at man kunne sørge for at der ikke var mere end 3 entries i listboxen, men det har jeg ingen mulighed for at se at han har implementeret og better safe than sorry :)
Men ja, unødvendig i den sammenhæng at man nok ikke bør vælge et array til det job som du også er inde på i din løsning.
//DJ
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.