Delphi-PRAXiS

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/)
-   -   Delphi vst - Suche nach Teilstring (https://www.delphipraxis.net/60603-vst-suche-nach-teilstring.html)

ratloser 9. Jan 2006 23:02


vst - Suche nach Teilstring
 
Noch ein kleines Problem bei der Suche:

Habe folgenden Code:

Delphi-Quellcode:
procedure TKalk.naechsteneintragsuchenClick(Sender: TObject);
var
  f ,run : PVirtualNode;
  suchobjekt: String;
begin
   suchobjekt := objauswsucherechnungsnummer.text;
   vst.selectednode := vst.getfirst;
//   vst.setfocus;
  if assigned(vst.FocusedNode) then begin
    run := vst.FocusedNode;
    run := run.NextSibling;
    while Assigned(run) do begin
      f := vst.IterateSubTree(run,ausfuehren,Pointer(suchobjekt),[],true,false);
      if assigned(f) then begin
        vst.FocusedNode := f;
        vst.Selected[f] := true;
        break;
      end;
      run := run.NextSibling;
    end;
  end;
end;
Delphi-Quellcode:
procedure Tkalk.ausfuehren(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Data: Pointer; var Abort: Boolean);
begin
  Abort := vst.Text[Node,0] = objauswsucherechnungsnummer.Text;
end;
Nun meine Frage:

Die Nodes beinhalten Texte wie Namen und Arbeitsbeschreibungen

Die Suche funktioniert super - aber nur wenn ich den ganzen Text eingebe.

Wenn also ein Node 'Huber Martin' lautet, dann findet er es nur wenn ich 'Huber Martin' eingebe, aber nicht bei Huber.

Und noch ein kleiner Schönheitsfehler. Egal nach was ich suche, egal ob er es findet oder nicht, es wird immer der erste Node geöffnet.

Danke für Eure nochmalige Unterstützung bei diesem Thema

(ein wieder) Ratloser

sh17 10. Jan 2006 16:41

Re: vst - Suche nach Teilstring
 
zu Problem 1 folgender Vorschlag

Delphi-Quellcode:
procedure Tkalk.ausfuehren(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Data: Pointer; var Abort: Boolean);
begin
  Abort := (Pos(objauswsucherechnungsnummer.Text,vst.Text[Node,0]) > 0);
end;
wegen dem 2. Problem mit dem selektierten Node. Welche vst-Version nutzt Du.

vst.selectednode := vst.getfirst; gibt es meines erachtens gar nicht mehr, wobei dies der Grund sein dürfte.

generic 11. Jan 2006 09:12

Re: vst - Suche nach Teilstring
 
ich denke
Delphi-Quellcode:
vst.selectednode := vst.getfirst;
sollte das hier sein (wie in dem anderen thread
Delphi-Quellcode:
vst.focusednode:= vst.getfirst;


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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