Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   In einer ListBox einen Eintrag suchen bzw. Eintrag ändern (https://www.delphipraxis.net/63563-einer-listbox-einen-eintrag-suchen-bzw-eintrag-aendern.html)

jeany06 20. Feb 2006 16:35


In einer ListBox einen Eintrag suchen bzw. Eintrag ändern
 
Hallo,
wir haben ein riesiges Problem, d. h. wir sollen in der Schule ein Televonverzeichnis erstellen, mit diversen Funktionen, uns fehlen nun noch zwei, speziell


das Suchen eines Eintrages in der Listbox,

dies sollte so sein, das nach Eingabe des Suchbegriffs in einem Editfeld dieser mit der Listbox verglichen wird und anschließend, bei gefunden, in der Listbox markiert wird

und


das Ändern eines bereits vorhandenen Eintrages,

ähnlich wie oben, d.h. nur hier soll ein Eintrag in der Listbox vom Benutzer markieret werden, welcher dann in einem Editfeld ausgegeben wird um diesen zu ändern, anschließend wieder abgespeichert und in die Listbox zurück.....

Wir sind Delphi-bezogen sehr unbefleckt, sitzen nun schon mehrere Wochen, Tage an dem Projekt und haben diverse Bücher gelesen, jedoch ohne Erfolg. Wenn es irgendjemanden da draußen gibt der uns diesbezüglich helfen kann BITTE BITTE BITTE meldet euch....

mfg jeany06

Ps: Alles in Delphi6 Enterprise zu programmieren.
Besondere Probleme sind die ständigen Fehlermeldungen, das String und Integer nicht miteinander
funktionieren.

Matze 20. Feb 2006 16:39

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Hallo, herzlich willkommen!

Suchen kannst du einen Eintrag über Delphi-Referenz durchsuchenIndexOf:

Delphi-Quellcode:
Index := ListBox.IndexOf('Suchwort');
Einen Eintrag bekommst du do ein ein Edit:

Delphi-Quellcode:
Edit.Text := ListBox.Items[ListBox.ItemIndex];
Und das Zurückschreiben geht dementsprechend so:


Delphi-Quellcode:
ListBox.Items[ListBox.ItemIndex] := Edit.Text;

Alles ungetestet.

jeany06 20. Feb 2006 16:46

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Hallo Matze,
sehr nett von dir, dass du so schnell geantwortet hast. Jedoch, wie haben wir das mit IndexOf zu verstehen? Uns fehlen jegliche Grundkenntnisse, wir wurden in das kalte Wasser geschmissen und sollen nun lernen zu überleben...

jeany06 20. Feb 2006 16:52

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Noch eine weitere Frage: Die Suchworteingabe erfolgt in einem Editfeld vom Benutzer, die Listbox wird per Schleife durchlaufen, können doch dann schlecht ('Suchwort') eingeben, es müsste doch eigentlich das Editfeld angesprochen werden, sprich ein Vergleich (Eingabe Editfeld und ListBox) stattfinden????

leddl 20. Feb 2006 16:56

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

Zitat von jeany06
Hallo Matze,
sehr nett von dir, dass du so schnell geantwortet hast. Jedoch, wie haben wir das mit IndexOf zu verstehen? Uns fehlen jegliche Grundkenntnisse, wir wurden in das kalte Wasser geschmissen und sollen nun lernen zu überleben...

Na übersetz doch IndexOf mal ins Deutsche. :stupid: Dan wird schnell klar, daß dir dadurch der Index des übergebenen Strings in der ListBox zurückgegeben wird. Ist der String nicht gefunden worden, bekommst du als Rückgabewert -1.
Desweiteren kannst du dir genauere Informationen dazu auch aus der Delphi-Referenz durchsuchenOnlinehilfe von Delphi holen. Einfach "IndexOf" tippen, F1 drücken und lesen. ;)

//Edit: :shock: Huch, wo kommt das denn her? :lol:
Zitat:

Zitat von jeany06
Noch eine weitere Frage: Die Suchworteingabe erfolgt in einem Editfeld vom Benutzer, die Listbox wird per Schleife durchlaufen, können doch dann schlecht ('Suchwort') eingeben, es müsste doch eigentlich das Editfeld angesprochen werden, sprich ein Vergleich (Eingabe Editfeld und ListBox) stattfinden????

Na dann setz doch einfach das ein, was da rein soll :lol:

Matze 20. Feb 2006 16:56

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Also, das ist so:

Delphi-Referenz durchsuchenIndexOf liefert dir den Index des ListBoxeintrages mit der Übereinstimmung des Suchtextes. Beachte, dass der erste Eintrag den Index 0 besitzt.

Natürlich sollst du das nicht hardcoden, sondern beispielsweise so lösen:

Delphi-Quellcode:
MyIndex := ListBox.IndexOf(Edit.Text);
Wenn sich das Suchwort in einem Edit befindet.

Du kannst den Eintrag auch direkt markieren lassen:

Delphi-Quellcode:
ListBox1.ItemIndex := ListBox.IndexOf(Edit.Text);


Ich würde dir empfehlen, ein paar Einsteigertutorials auf www.dsdt.info durchzuarbeiten.

jeany06 20. Feb 2006 17:06

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Hallo leddl, danke für die Erläuterung. Klappt aber trotzdem nicht, IndexOf wird nicht erkannt (Undefinierter Bezeichner). Sorry, dass wir uns so blöd :wall: anstellen ist halt nicht einfach für uns....

Hallo Matze, danke dir ebenso. Werden den Link berücksichtigen... klappt aber wie gesagt nicht...

Matze 20. Feb 2006 17:12

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Hi, sorry, hatte mich vertan. Es muss

Delphi-Quellcode:
ListBox.Items.IndexOf
lauten, steht aber alles in der OH.

jeany06 20. Feb 2006 17:17

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Echt lieb von dir, was ist OH?

DP-Maintenance 20. Feb 2006 17:21

DP-Maintenance
 
Dieses Thema wurde von "Daniel" von "Projekte" nach "VCL / WinForms / Controls" verschoben.

leddl 20. Feb 2006 17:25

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

Zitat von jeany06
Echt lieb von dir, was ist OH?

Maus drauf und staunen :zwinker:

Matze 20. Feb 2006 17:25

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

Zitat von jeany06
Echt lieb von dir, was ist OH?

Die Delphi-Onlinehilfe (erreichbar in der IDE über F1).

inherited 20. Feb 2006 17:27

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

Zitat von jeany06
Hallo,

Besondere Probleme sind die ständigen Fehlermeldungen, das String und Integer nicht miteinander
funktionieren.

Nimm
Delphi-Quellcode:
IntToStr(integervar)
bzw.
Delphi-Quellcode:
StrToInt(stringvar)
[quote]

jeany06 20. Feb 2006 17:31

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Einfach toll, dann können wir ja doch die Schleife benutzen, werden es gleich probieren. Lieben Dank.

jeany06 20. Feb 2006 17:50

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Also, wir haben alle Ratschläge berücksichtigt. Dennoch funktioniert die Suchfunktion nicht. Alle Rechner hängen sich auf... könntet ihr uns einen Muster des vollständigen Codes schreiben/schicken? Wohnt jemand in Berlin, den man besuchen kann???? Verzweifeln.... :wall:

leddl 20. Feb 2006 17:58

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
:gruebel: Wozu willst du eine Schleife benutzen? Du hast dein EditFeld mit dem zu suchenden Begriff und du hast die ListBox.
Mit IndexOf kannst du jetzt den Index des Suchbegriffs in der ListBox herausfinden. (-1 für "nicht gefunden", 0 für das erste Element, 1 für das zweite...) Da is nix mit Schleife, sondern einfach nur die eine Zeile, die jetzt schon mehrmals gepostet wurde. ;)

jeany06 20. Feb 2006 18:20

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Hey, tut uns echt leid, dass wir das nicht hinbekommen, die -1 wurde uns mit dem Aufhängen des Programms gezeigt, mit dem Verweis, das irgendwas noch viel größer ist, schicke dir jetzt was wir haben. Zumindest stürzt er jetzt nicht mehr ab. Markiert aber auch nicht den SUchbegriffe.

Delphi-Quellcode:
procedure TForm1.Button9SucheClick(Sender: TObject);
var i:integer;
begin
        FOR i := 0 TO ListBoxText.Items.Count - 1 DO
        if ListBoxText.ItemIndex = ListBoxText.Items.IndexOf(Edit9Suche.Text)
        then ListBoxText.Color:=TColor(3);

end;
Und wir dachten die Schleife, weil die Listbox durchsucht werden soll nach dem Begriff.
Wir haben auch nur nicht wirklich viel über Delphi gelernt, deshalb nochmals dickes SORRY für all die dummen Fragen.
lg

leddl 20. Feb 2006 18:26

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

Zitat von jeany06
Hey, tut uns echt leid, dass wir das nicht hinbekommen, die -1 wurde uns mit dem Aufhängen des Programms gezeigt, mit dem Verweis, das irgendwas noch viel größer ist, schicke dir jetzt was wir haben. Zumindest stürzt er jetzt nicht mehr ab. Markiert aber auch nicht den SUchbegriffe.

Delphi-Quellcode:
procedure TForm1.Button9SucheClick(Sender: TObject);
var i:integer;
begin
        FOR i := 0 TO ListBoxText.Items.Count - 1 DO
        if ListBoxText.ItemIndex = ListBoxText.Items.IndexOf(Edit9Suche.Text)
        then ListBoxText.Color:=TColor(3);

end;
Und wir dachten die Schleife, weil die Listbox durchsucht werden soll nach dem Begriff.
Wir haben auch nur nicht wirklich viel über Delphi gelernt, deshalb nochmals dickes SORRY für all die dummen Fragen.
lg

Delphi-Quellcode:
if ListBoxText.Items.IndexOf(Edit9Suche.Text) > -1 then
  ListBoxText.Color := TColor(3);
Dein Code macht so einfach keinen rechten Sinn. Ich hoffe, ich habe es aber trotzdem richtig interpretiert.

//Edit: Ich sehe gerade, du willst das gefundene Item markieren.
Delphi-Quellcode:
ListBoxText.ItemIndex := ListBoxText.Items.IndexOf(Edit9Suche.Text);

jeany06 20. Feb 2006 19:18

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Die If-Anweisung wurde geändert, dein Markierungsvorschlag übernommen und es regt sich nach der Eingabe des Suchbegriffs, z.B. Wollke, nichts. Was für ein kompliziertes Programm. Danke für deine Geduld. lg jeany

leddl 20. Feb 2006 19:27

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

Zitat von jeany06
Die If-Anweisung wurde geändert, dein Markierungsvorschlag übernommen und es regt sich nach der Eingabe des Suchbegriffs, z.B. Wollke, nichts. Was für ein kompliziertes Programm. Danke für deine Geduld. lg jeany

Hast du auch die Schleife entfernt? Und welchen von meinen Codestücken hast du benutzt? Der erste färbt einfach die ListBox komplett ein, der zweite markiert den entsprechenden Eintrag.
Du sagtest, daß "sich nach der Eingabe nichts regt". Du hast aber schon auf den Button gedrückt, oder? ;) Und der String, den du in das Editfeld eingegeben hast, ist auch definitiv in der ListBox enthalten?

jeany06 20. Feb 2006 19:37

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
ja, die Schleife wurde entfernt. Das Wort ist in der Liste, die zweite Anweisung genommen und der Button wurde auch gedrückt. Und dennoch nichts.Schicke es lieber nochmal:

Delphi-Quellcode:
procedure TForm1.Button9SucheClick(Sender: TObject);
begin
        if ListBoxText.Items.IndexOf(Edit9Suche.Text) > -1 then
        ListBoxText.ItemIndex := ListBoxText.Items.IndexOf(Edit9Suche.Text);
end;
mmhh?

jeany06 20. Feb 2006 19:38

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Muss vielleicht etwas in der Eigenschaft der Listbox geändert werden im Objektinspektor?

leddl 20. Feb 2006 19:39

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Ich hab es eben gerade auch mal getestet. In D2k5 tut es genau das, was ich davon erwartet habe: Ein Klick auf den Button markiert das entsprechende Element in der ListBox. Dabei mußte ich sogar erstaunt feststellen, daß IndexOf wohl alles andere als CaseSensitive arbeitet. ;)
Hier nochmal mein Code (Direkt aus der funktionierenden Anwendung kopiert ;))
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.ItemIndex := ListBox1.Items.IndexOf(Edit1.Text);
end;
//Edit:
Huch, schon wieder is da plötzlich was da :lol:
Auch deinen Code habe ich eben auf die Schnelle mal getestet. Auch das funktioniert, obwohl die 1. Zeile unnötig ist. ;)
Du mußt an der ListBox nichts ändern, damit es funktioniert. Es muß einfach nur das entsprechende Item vorhanden sein. ;)

jeany06 20. Feb 2006 19:57

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Schlechte Nachrichten, übernommen und es bewegt sich immer noch nichts. Erste Zeile entfernt, die Items existieren auch, puh.... :spin:

leddl 20. Feb 2006 20:01

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Stell deinen Projekt mal hier rein, dann schau ichs mir mal an.

jeany06 20. Feb 2006 20:06

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

Delphi-Quellcode:
unit Unit1;

interface

uses
  SysUtils, WinTypes,WinProcs, Messages, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Edit1Name: TEdit;
    Edit2Vorname: TEdit;
    Edit3Geburtsdatum: TEdit;
    Edit4Strasse: TEdit;
    Edit5Ort: TEdit;
    Edit6Telefonnummer: TEdit;
    Edit7Firma: TEdit;
    Edit8Anzahl: TEdit;
    Edit9Suche: TEdit;
    ListBoxText: TListBox;
    Button1Laden: TButton;
    Button2Hinzufuegen: TButton;
    Button3Aendern: TButton;
    Button4Loeschen: TButton;
    Button5AllesLoeschen: TButton;
    Button6Sortieren: TButton;
    Button7Zaehlen: TButton;
    Button8Speichern: TButton;
    Button9Suche: TButton;
    Button10Schlie: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Edit10Aendern: TEdit;
    Label13: TLabel;
    Label14: TLabel;
    procedure ListBoxTextMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Button2HinzufuegenClick(Sender: TObject);
    procedure Button10SchlieClick(Sender: TObject);
    procedure Button5AllesLoeschenClick(Sender: TObject);
    procedure Button7ZaehlenClick(Sender: TObject);
    procedure Button4LoeschenClick(Sender: TObject);
    procedure Button8SpeichernClick(Sender: TObject);
    procedure Button1LadenClick(Sender: TObject);
    procedure Button6SortierenClick(Sender: TObject);
   { procedure Button3AendernClick(Sender: TObject); }
    procedure Button9SucheClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ListBoxTextMouseUp(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
begin
        Button4Loeschen.Enabled:=ListBoxText.ItemIndex>=0;
end;

procedure TForm1.Button2HinzufuegenClick(Sender: TObject);
begin
       ListBoxText.Items.Add(Edit1Name.text +','+Edit2Vorname.text +' geb.:'+
       Edit3Geburtsdatum.text + ' '+Edit4Strasse.text +' '+Edit5Ort.text +
       ' Tel.:'+Edit6Telefonnummer.text +' '+Edit7Firma.text);
       Edit1Name.text:='';
       Edit2Vorname.text:='';
       Edit3Geburtsdatum.text:='';
       Edit4Strasse.text:='';
       Edit5Ort.text:='';
       Edit6Telefonnummer.text:='';
       Edit7Firma.text:='';
       Button4Loeschen.Enabled:=TRUE;

end;

procedure TForm1.Button10SchlieClick(Sender: TObject);
begin
close;
end;

procedure TForm1.Button5AllesLoeschenClick(Sender: TObject);
begin
        ListBoxText.Items.Clear;
        Button4Loeschen.Enabled:=TRUE;
        Button5AllesLoeschen.Enabled:=TRUE;
end;

procedure TForm1.Button7ZaehlenClick(Sender: TObject);
var anzahl:integer;
begin
     anzahl:=ListBoxText.Items.Count;
     Edit8Anzahl.Text:=IntToStr(anzahl);
end;

procedure TForm1.Button4LoeschenClick(Sender: TObject);
begin
      if ListBoxText.ItemIndex>-1
      then ListBoxText.Items.Delete(ListBoxText.ItemIndex);
      Button4Loeschen.Enabled:=TRUE;
      Button5AllesLoeschen.Enabled:=ListBoxText.Items.Count>=1;
end;

procedure TForm1.Button8SpeichernClick(Sender: TObject);
begin
        ListBoxText.Items.SaveToFile('Telefon.dat');
end;

procedure TForm1.Button1LadenClick(Sender: TObject);
begin
        ListBoxText.Items.LoadFromFile('Telefon.dat');
end;

procedure TForm1.Button6SortierenClick(Sender: TObject);
begin
        ListBoxText.Sorted:=TRUE;
end;

{procedure TForm1.Button3AendernClick(Sender: TObject);
var i: integer;
begin
         FOR i := 0 TO ListBoxText.Items.Count - 1 DO


         IF ListBoxText.Items[i] >-1 THEN

         if StrToInt(Edit2.Text) = ListBox1.Items[i] THEN ListBox1.Items[i] := 0;
         Edit10Aendern.Text:=(i);
         ListBoxText.Items.Add(Edit10Aendern.text);
         Edit10Aendern.Text:='';
end;  }

procedure TForm1.Button9SucheClick(Sender: TObject);
begin
          ListBoxText.ItemIndex := ListBoxText.Items.IndexOf(Edit9Suche.Text);
end;


end.

leddl 20. Feb 2006 20:09

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Machs mir mal einfacher und füge dein gesamtes Projekt als Anhang (am besten als zip) hier im Forum ein. Dann kann ichs einfach mal bei mir compilieren und testen. ;) Bin grade zu faul, mir aus dem allen hier ein Projekt zu erstellen ;)

jeany06 20. Feb 2006 20:12

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Du bist wirklich lustig, hier am anderen Ende sitzt eine Frau, welche keinerlei Ahnung hat. Muss mir kurz Hilfe holen, bis gleich. Bekommst die Zip :wink:

jeany06 20. Feb 2006 20:19

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Zip - Datei habe ich. Hast du vielleicht eine Mail-Adresse, bekomme dies irgendwie nicht als Anhang hin.

leddl 20. Feb 2006 20:23

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

Zitat von jeany06
Zip - Datei habe ich. Hast du vielleicht eine Mail-Adresse, bekomme dies irgendwie nicht als Anhang hin.

Leddl[at]gmx.de, aber Anhang is eigentlich ganz einfach: Durchsuchen --> Datei auswählen --> Attachment hinzufügen ;)

jeany06 20. Feb 2006 20:25

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

Matze 20. Feb 2006 20:35

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Delphi-Quellcode:
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 :lol:
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. :zwinker:

leddl 20. Feb 2006 20:36

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
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. :zwinker:
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

jeany06 20. Feb 2006 20:45

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
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

leddl 20. Feb 2006 20:48

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

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 ;)

jeany06 20. Feb 2006 20:53

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Bei mir funktioniert es nicht... seuft. Muss noch etwas wichtiges beachtet werden? :cry:

leddl 20. Feb 2006 20:54

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Moment, ich hab es bisher nur in meinem Code getestet. Ich setz das mal in dein Projekt ein und debugge ;)

leddl 20. Feb 2006 21:08

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
Fehler gefunden und enttarnt :mrgreen:
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 :lol:)
Stattdessen mußt du dann um ein Item zu markieren
Delphi-Quellcode:
ListBoxText.Selected[i] := true;
schreiben.
Allerdings werden dabei bereits vorhandene Markierungen nicht gelöscht. Daher solltest du davor noch
Delphi-Quellcode:
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.

jeany06 20. Feb 2006 21:14

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder
 
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? :thumb: Einfach Toll!!!!!!!!!!

leddl 20. Feb 2006 21:17

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

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:

Zitat von jeany06
Wo liegt eigentlich Künzelsau? Weit weg?

Kommt drauf an, von wo :lol: Schau einfach auf die DP-Karte, dann weißte wo. :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:00 Uhr.
Seite 1 von 2  1 2      

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