AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls In einer ListBox einen Eintrag suchen bzw. Eintrag ändern
Thema durchsuchen
Ansicht
Themen-Optionen

In einer ListBox einen Eintrag suchen bzw. Eintrag ändern

Ein Thema von jeany06 · begonnen am 20. Feb 2006 · letzter Beitrag vom 23. Feb 2006
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    
jeany06

Registriert seit: 20. Feb 2006
34 Beiträge
 
Delphi 6 Enterprise
 
#31

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder

  Alt 20. Feb 2006, 21:25
Soeben raus...
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#32

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder

  Alt 20. Feb 2006, 21:35
if StrToInt(Edit2.Text) = ListBox1.Items[i] THEN ListBox1.Items[i] := 0; Das kann schonmal gar nicht funktionieren, da [i]Items einen String und keinen Integer erwartet. Das darüber mit dem Vergleich auf -1 ebenfalls (wenn, dann müsste es if ListBoxText.ItemIndex > -1 then heißen), das geht so nicht.

Ich würde es so in der Art schreiben, falls der Code dazu dient, alle Einträge zu ändern, die den gleichen Inhalt wie Edit2 haben:

Delphi-Quellcode:
for i := 0 to ListBoxText.Items.Count - 1 do
  if ListBox1.Items[i] = Edit2.text then
    ListBoxText.Items[i] := Edit10Aendern.Text
Das macht nun folgendes, kA, ob du das so möchtest, verstehe es nicht ganz
In der ListBox werden die Einträge gesucht, die dem Inhalt von Edit2 entsprechen und diese werden ersetzt durch den Inhalt von Edit10Ändern.

Falls du das nicht so haben wolltest, schreibe doch bitte nochmals, was genau du erreichen willst.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#33

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder

  Alt 20. Feb 2006, 21:36
Habs bekommen und auch sofort deinen Denkfehler gefunden. Du speicherst in der ListBox nicht nur einen bestimmten String, den du suchen möchtest, sondern setzt jedes Item aus diversen Strings zusammen. Das hättest ruhig mal etwas früher sagen können.
Denn damit geht das dann nicht mehr so einfach mit IndexOf, da so jedes Item als ganzes überprüft wird. Du mußt daher doch wieder mit einer Schleife durch die ListBox marschieren und prüfen, ob dein Suchstring in dem Item enthalten ist. Das machst du am einfachsten über Pos. Das arbeitet ähnlich wie IndexOf und gibt dir die Position deines Suchstrings im zu durchsuchenden String zurück. Wird nichts gefunden, erhältst du 0 als Ergebnis.
Deine Suchroutine könnte also so aussehen:
Delphi-Quellcode:
procedure TForm1.Button9SucheClick(Sender: TObject);
var i, subStrPos : Integer;
begin
  i := 0; subStrPos := 0;
  while (i < ListBoxText.Items.Count) and (subStrPos = 0) do
  begin
    subStrPos := Pos(Edit9Suche.Text,ListBoxText.Items[i]);
    if suBstrPos > 0 then
      ListBoxText.ItemIndex := i;
    inc(i);
  end;
end;
//Edit: Tag korrigiert
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
jeany06

Registriert seit: 20. Feb 2006
34 Beiträge
 
Delphi 6 Enterprise
 
#34

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder

  Alt 20. Feb 2006, 21:45
Was soll ich sagen,sprachlos!!!! Das 'Könnte' heißt es ist so umzusetzen und dann funktioniert der Button. Probiere es. D A N K E
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#35

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder

  Alt 20. Feb 2006, 21:48
Zitat von jeany06:
Was soll ich sagen,sprachlos!!!! Das 'Könnte' heißt es ist so umzusetzen und dann funktioniert der Button. Probiere es. D A N K E
Das "könnte" heißt einfach nur, daß das eben eine Möglichkeit wäre, es zu implementieren.
Wenn du dir in dieser Methode am Schluß noch den aktuellen Index speicherst, könntest du sogar so recht einfach ein "Weiter suchen" realisieren
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
jeany06

Registriert seit: 20. Feb 2006
34 Beiträge
 
Delphi 6 Enterprise
 
#36

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder

  Alt 20. Feb 2006, 21:53
Bei mir funktioniert es nicht... seuft. Muss noch etwas wichtiges beachtet werden?
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#37

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder

  Alt 20. Feb 2006, 21:54
Moment, ich hab es bisher nur in meinem Code getestet. Ich setz das mal in dein Projekt ein und debugge
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#38

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder

  Alt 20. Feb 2006, 22:08
Fehler gefunden und enttarnt
Meine Methode funktioniert. Problem ist nur, daß du für deine ListBox MultiSelect aktiviert hast. Damit scheint dann das Setzen des ItemIndex nicht mehr zu funktionieren. Ist mir neu, scheint aber so zu sein. (Genau für solche Kleinigkeiten wollte ich übrigens das gesamte Projekt, das erkennt man aus Quelltext nämlich eher schlecht )
Stattdessen mußt du dann um ein Item zu markieren
ListBoxText.Selected[i] := true; schreiben.
Allerdings werden dabei bereits vorhandene Markierungen nicht gelöscht. Daher solltest du davor noch
ListBoxText.ClearSelection; ausführen.
Brauchst du MultiSelect überhaupt? Falls nicht, könntest du auch meinen vorherigen Code benutzen.

Generell würde ich dir aber raten, dir in Bezug auf dein Programm mal die ListView (mit ViewStyle vsReport) anzuschauen. Das könnte evtl besser für deine Bedürfnisse sein.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
jeany06

Registriert seit: 20. Feb 2006
34 Beiträge
 
Delphi 6 Enterprise
 
#39

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder

  Alt 20. Feb 2006, 22:14
ich rolle mich gerade vor Freude auf den Boden hin und her.... es klappt. Ich nehme lieber deine Version. Und ich weiß überhaupt nicht, wie ich dir danken kann. Wo liegt eigentlich Künzelsau? Weit weg? Einfach Toll!!!!!!!!!!
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#40

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder

  Alt 20. Feb 2006, 22:17
Zitat von jeany06:
ich rolle mich gerade vor Freude auf den Boden hin und her.... es klappt. Ich nehme lieber deine Version. Und ich weiß überhaupt nicht, wie ich dir danken kann.
Kein Problem, mir wurde hier auch schon oft geholfen, ist doch selbstverständlich.
Zitat von jeany06:
Wo liegt eigentlich Künzelsau? Weit weg?
Kommt drauf an, von wo Schau einfach auf die DP-Karte, dann weißte wo.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz