Autor Beitrag
daveman
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Fr 29.02.08 10:34 
Hi!

Möchte gern die gefunden Einträge per Multiselect markieren lassen.
Aber Wie?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
var i:integer   ;
Gefunden:Boolean;
Suchwort:String;

begin

Suchwort:=InputBox ('Suchen Sie nach einem Merkmal',
                    'Wonach soll gesucht werden ?','');
if Suchwort <>'' then
begin
  Gefunden:=false;
  i:=-1;
  while (i<ListBox1.Items.count-1) and not Gefunden do
    begin
      Inc(i) ;
      if Pos (Suchwort, ListBox1.Items[i])>0 then Gefunden:=True; 
      end;
      begin
      
      if Gefunden
        then ListBox1.ItemIndex:=i
        else ShowMessage ('Suchwort nicht gefunden');
        end;
        end;
        end;
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 29.02.08 10:44 
1. MultiSelect der ListBox auf True setzen.
2. ListBox1.Selected[i] auf True setzen um zu markieren.
(So habe ichs auch in deinem anderen Beitrag gemacht, den ich hier mal verlinke, damit andere den finden können.)
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Fr 29.02.08 15:00 
Bitte ... bitte formatiere doch deinen Code !!!

So wirst du evtl. Fehler im Quelltext nie finden. Ich mach das mal bei diesem Beispiel für dich, und bitte dich, das dann so weiterzumachen. Es gab schon viele Probleme hier in diesem Forum, die durch schlechte Formatierung entstanden sind.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
var
  i: Integer;
  Gefunden: Boolean;
  Suchwort: String;
begin
  Suchwort := InputBox ('Suchen Sie nach einem Merkmal',
    'Wonach soll gesucht werden ?','');
  if Suchwort <>'' then
  begin
    Gefunden := False;
    i := -1;
    while (i < ListBox1.Items.Count-1) and not Gefunden do
    begin
      Inc(i);
      if Pos (Suchwort, ListBox1.Items[i]) > 0 then Gefunden := True; 
    end;

    begin  
      if Gefunden then
        ListBox1.ItemIndex := i
      else
        ShowMessage ('Suchwort nicht gefunden');
    end;
  end;
end;

Sieht ein wenig seltsam auf, fällt mir gerade auf. Zuerst verwendest du eine while-Schleife, wo du viel einfacher eine for-Schleife verwenden könntest.

Dann plazierst du mitten im Code einfach mal kurz ein begin...end. Sollte davor vielleicht mal ein if ö. Ä. stehen? Wenn nicht, dann kannst du diese beiden Wörter löschen.

Hier mal eine überarbeitete Version:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
var
  i: Integer;
  Suchwort: String;
begin
  Suchwort := InputBox ('Suchen Sie nach einem Merkmal',
    'Wonach soll gesucht werden ?','');
  if Suchwort <>'' then
  begin
    // Alle Einträge abklappern und nach Suchwort suchen
    for i := 0 to ListBox1.Items.Count-1 do
      if Pos (Suchwort, ListBox1.Items[i]) > 0 then
      begin
        // Wenn gefunden, ListItem markieren und Prozedur verlassen
        ListBox1.ItemIndex := i;
        Exit;
      end;

    // Wenn Suchwort nicht gefunden wurde, wurde die Schleife
    // vollständig durchlaufen und nicht abgebrochen.
    // Jetzt kann die Fehlermeldung angezeigt werden.

    ShowMessage ('Suchwort nicht gefunden');
  end;
end;
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 29.02.08 15:04 
Den von mir verlinkten anderen Beitrag von ihm hast du dir aber schon angesehen?
Denn das Problem ist dort gelöst, deshalb ja meine Antwort in diesem Thread...
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Fr 29.02.08 15:23 
user profile iconjaenicke hat folgendes geschrieben:
Den von mir verlinkten anderen Beitrag von ihm hast du dir aber schon angesehen?
Denn das Problem ist dort gelöst, deshalb ja meine Antwort in diesem Thread...

Ja, aber sein Problem soll er dann schon selber lösen ;)

Ich wollte nur, dass er seinen Code etwas besser formatiert. Das Debuggen kann man sich ganz schön erschweren, wenn man die Formatierung nicht so gut gemacht hat.