AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi ValueListEditor "Items" (durch-)suchen?
Thema durchsuchen
Ansicht
Themen-Optionen

ValueListEditor "Items" (durch-)suchen?

Ein Thema von xShadowBoZz · begonnen am 23. Jun 2008 · letzter Beitrag vom 24. Jun 2008
Antwort Antwort
Benutzerbild von xShadowBoZz
xShadowBoZz

Registriert seit: 19. Jan 2008
Ort: Deutschland ~.~
80 Beiträge
 
Delphi 7 Enterprise
 
#1

ValueListEditor "Items" (durch-)suchen?

  Alt 23. Jun 2008, 12:16
ok hab da mal eine Frage zum ValueListEditor.
Habe hier und auch schon auf google gesucht, aber nicht wirklich was gefunden, was mir weiterhilft.

Also ich würde gern mithilfe eines Editfelds und einen Button den ValueListEditor nach Edit1.Text (Usereingabe) durchsuchen, also das der Benutzer den ValueListEditor nach egal was durchsuchen kann (also text).
nur weis ich nicht wie ich das machen soll, hatte davor mit einer ListBox gearbeitet und kann da auch suchen, aber hier ist das für mich etwas schwieriger, weil ich hier auch nicht ValueListEditor1.Items eingeben kann.
also wenn jemand weiß wie ich eine Suchfunktion einbauen kann dann bitte helfen ^^.

ok falls das hilft, hier meine ListBox suchfunktion. (kommentiert)

Delphi-Quellcode:
var i : Integer;
    searchUp : String;
...
//ListBox1
If Form2.ListBox1.Visible then begin // damit nur gesucht wird wenn sichtbar.
  If Edit2.Enabled then begin // Edit2 ist eine zusätzliche angabe (kann aktiviert werden und auch deaktiviert werden)
    Form2.listBox1.MultiSelect := True; //Multiselect, damit mehrere Items makiert werden können
    searchUp := AnsiUpperCase(Edit1.Text); //Edit1 = Nach was gesucht werden soll
    for i:=0 to StrToInt(Edit2.Text) do // Edit2 = Integer zb. 33 dann wird von zeile 0 nach 33 nach Edit1.Text gesucht.
      if Pos(searchUp, AnsiUpperCase(Form2.listBox1.Items[i])) > 0 then begin //wenn suchergebnis > 0 dann
      Form2.listBox1.Selected[i] := true; //Markieren, wenn gefunden
      application.ProcessMessages;
    end
    else
      Form2.listBox1.Selected[i] := false; //Damit nichts anderes markiert ist
    end;
  If not Edit2.Enabled then begin // Edit2 ist eine zusätzliche angabe (kann aktiviert werden und auch deaktiviert werden)
    Form2.listBox1.MultiSelect := True; //Multiselect, damit mehrere Items makiert werden können
    searchUp := AnsiUpperCase(Edit1.Text); //Edit1 = Nach was gesucht werden soll
    for i:=0 to Form2.listBox1.Items.Count-1 do //durchsuche alle Items von listbox.
      if Pos(searchUp, AnsiUpperCase(Form2.listBox1.Items[i])) > 0 then begin //wenn suchergebnis > 0 dann
      Form2.listBox1.Selected[i] := true; //Markieren, wenn gefunden
      application.ProcessMessages;
    end
    else
      Form2.listBox1.Selected[i] := false; //Damit nichts anderes markiert ist
    end;
  end;
thx im vorraus.
Andreas
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: ValueListEditor "Items" (durch-)suchen?

  Alt 23. Jun 2008, 15:02
Die Eigenschaft die du dafür brauchst heißt Strings Die kannst du analog so behandeln wie bei einer Listbox items
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von xShadowBoZz
xShadowBoZz

Registriert seit: 19. Jan 2008
Ort: Deutschland ~.~
80 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: ValueListEditor "Items" (durch-)suchen?

  Alt 23. Jun 2008, 15:49
Zitat von Ghostwalker:
Die Eigenschaft die du dafür brauchst heißt Strings Die kannst du analog so behandeln wie bei einer Listbox items
ok habs probiert und hab jetzt noch am ende ein problem.
also hier erstmal was ich bis jetzt draus gemacht hab.
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var search: String;
    i:Integer;
begin
  If ValueListEditor1.Visible then begin
    search:=AnsiUpperCase(Edit3.Text);
    for i:=0 to ValueListEditor1.Strings.Count-1 do
      if AnsiPos(search, AnsiUpperCase(ValueLIstEditor1.Keys[i])) > 0 then begin
        // hier problem
    end;
  end;
end;
habe das problem die ergebnisse "herauszusuchen".
Wenn ich am schluss Edit4.Text:=i; eingebe wird im editfeld angezeigt wieviele zeilen den gesuchten wert enthalten. bzw. (wenn es nur 1mal gibt) dann wird angezeigt in welcher zeile.

Aber ja ein bisschen logisch ich will nicht das es in einem editfeld angezeigt wird sondern, wäres es wirklich gut wenn die ergebnisse makiert werden oder noch besser das die ergebnisse im ValueListEditor1 angezeigt werden und der rest unsichtbar ist bzw. gelöscht wird oder so.

mein versuch war:

        ValueListEditor1.Strings.Strings[i] das erzielte garkein ergebnis bzw. reaktion.

Delphi-Quellcode:
        ValueListEditor1.Strings.Destroy;
        ValueListEditor1.Strings.AddStrings(i);
nicht sicha obs funktionieren würde, allerdings kommt hier auch ein error:
Inkompatible Typen: 'TStrings' und 'Integer';

bin ich auf dem richtigen weg, oda muss ich was anders machen, damit ich nicht die anzahl sondern den "ganzen text" rausbekommen krieg?
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von xShadowBoZz
xShadowBoZz

Registriert seit: 19. Jan 2008
Ort: Deutschland ~.~
80 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: ValueListEditor "Items" (durch-)suchen?

  Alt 23. Jun 2008, 15:52
sorry für doppelposting, pc hat gehangen.-_-
Andreas
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: ValueListEditor "Items" (durch-)suchen?

  Alt 24. Jun 2008, 11:15
Wenn alles andere aus dem VLE gelöscht werden kann, so geht das ganz einfach:

Zuerst merkst du dir die gefundene Zeile. Die Variable i sagt dir welche das ist :

   Merker = ValuelistEditor1.strings.string[i]; Anschließend brauchen wir nur die liste zu löschen und den gemerkten Wert neu einfügen:

Delphi-Quellcode:
   ValuelistEditor1.strings.clear;
   ValuelistEditor1.string.append(merker);
und schon steht nur noch das gefundene Wertepaar im Editor
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:38 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