Ich komm irgendwie mit deinen Einrückungen nicht klar und find die unübersichtlich, aber mMn fehlt da in der Version ein else-Zweig. Ausserdem ist es doch schöner, gewisse Dinge auszulagern, dann wird der Code übersichtlicher:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var i: integer;
begin
if RadioButton1.checked then
begin
if EntryExistsInListView(edit1.text,Form1.Listview1) then
showmessage('Eintrag bereits vorhanden')
else if AddEntryToListView(edit1.text,Form1.Listview1) then
showmessage('Eintrag wurde hinzugefügt')
else
showmessage('Eintrag war nicht vorhanden, konnte aber auch nicht hinzugefügt werden');
end;
end;
function EntryExistsInListView(entry:String,LW:TListView):Boolean;
var i:integer;
begin
Result:=false;
for i := 0 to LW.Count - 1 do
if LW.Items[i].Caption=entry then
begin
Result:=true;
Break;
end;
//Könnte man dann ggf. ersetzen durch:
//Result:=LW.Items.IndexOf(entry)>=0;
end;
function AddEntryToListView(entry:String,LW:TListView):Boolean;
begin
Result:=true;
LW.items.add
LW.items[LW.Count-1].caption:=entry;
//Muss man noch um diese Subentries aufbohren
//und dafür sorgen, dass wenn irgendwas nicht klappt false als Result geliefert wird.
end;