Autor Beitrag
cromos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 219


Delphi 7
BeitragVerfasst: So 18.01.04 17:47 
Hallo,

also ich Dursuche die Items einer ListView nach einem bestimmten String.
Wenn er gefunden wurde, dann wird er markiert. Geht auch Prima.
Jetzt wollte ich das wenn nichts gefunden wurde eine MessageBox angezeigt wird:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
for i := 0 to Lv1.Items.Count -1 do
          begin
            if Uppercase(Lv1.Items.Item[i].Caption) = Uppercase(txtSuch.Text) then
              begin
               // j := i;
                lv1.items[i].selected := true;
                Lv1.Items.Item[i].MakeVisible(True);
                exit;
              end
              
            else
              begin
              Application.MessageBox('Es wurde kein Eintrag mit diesem Namen gefunden!','Suchergebnis',0);
              txtSuch.Clear;
              exit;
            end;


Also habe ich den Else-Teil dazugemacht, aber jetzt seigt er mir IMMER
Die MessageBox an, obwohl der String vorhanden ist.
Weiss jemand warum?

Gruss
Cromos
tomtom62
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 278

WIN 2000, XP prof
D5 prof.
BeitragVerfasst: So 18.01.04 17:54 
Wenn der String zum ersten Mal nicht gefunden wird, wird die Messagebox angezeigt. Du könntest es so machen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
var found: Boolean;

found:=false;

for i := 0 to Lv1.Items.Count -1 do 
          begin 
            if Uppercase(Lv1.Items.Item[i].Caption) = Uppercase(txtSuch.Text) then 
              begin 
               // j := i; 
                lv1.items[i].selected := true; 
                Lv1.Items.Item[i].MakeVisible(True); 
                found:=true;
                break;
              end
         end;              
if found=false then
              begin 
              Application.MessageBox('Es wurde kein Eintrag mit diesem Namen gefunden!','Suchergebnis',0); 
              txtSuch.Clear; 
            end;
cromos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 219


Delphi 7
BeitragVerfasst: So 18.01.04 18:49 
Danke, funktioniert.