AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Node.GetNext !!!

Ein Thema von Delphiturbo · begonnen am 12. Mai 2008 · letzter Beitrag vom 12. Mai 2008
Antwort Antwort
Delphiturbo
(Gast)

n/a Beiträge
 
#1

Node.GetNext !!!

  Alt 12. Mai 2008, 14:25
Hallo,

in dem Tutorials-Code stimmt nicht Result:=Node.GetNext
Ich lege 2 identische Werte in Treeview und dann suche
Das Programm findet nur eines und die Markierung bleibt stehen !!!
was ist falsch in Code ?
Tutorials here
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Node.GetNext !!!

  Alt 12. Mai 2008, 14:29
Wenn ein Eintrag gefunden wird, wird ja abgebrochen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Node.GetNext !!!

  Alt 12. Mai 2008, 14:38
Das Break ist falsch.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Node.GetNext !!!

  Alt 12. Mai 2008, 14:43
Würd ich nicht so sagen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Node.GetNext !!!

  Alt 12. Mai 2008, 14:47
Naja, das Break bricht ab, im Endeffekt sagtest Du das gleiche ja auch

Ich hab nur Deine Aussage mit dem Code konkretisiert.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Node.GetNext !!!

  Alt 12. Mai 2008, 14:55
Aber das Entfernen des breaks ist ja nicht die Lösung oder?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Node.GetNext !!!

  Alt 12. Mai 2008, 14:57
Hab ich auch nicht gesagt, aber das Break führt zum Abbruch
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Node.GetNext !!!

  Alt 12. Mai 2008, 15:01
Du hast gesagt, dass das break falsch ist.
Ich würde den Code in etwa so anpassen:
Delphi-Quellcode:
function GetNodeByText
(ATree : TTreeView; AValue:String;
 AVisible: Boolean; StartNode: TNode): TTreeNode;
var
    Node: TTreeNode;
begin
  Result := nil;
  if ATree.Items.Count = 0 then Exit;
  if StartNode = Nil then Node := ATree.Items[0] else Node = StartNode;
  while Node <> nil do
  begin
    if UpperCase(Node.Text) = UpperCase(AValue) then
    begin
      Result := Node;
      if AVisible then
        Result.MakeVisible;
      Break;
    end;
    Node := Node.GetNext;
  end;
end;
Markus Kinzler
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Node.GetNext !!!

  Alt 12. Mai 2008, 15:04
Wenn es mehrere gibt, dann kannst du aber nicht nur eins als Rückgabewert bekommen?!

Also vielleicht so...

Delphi-Quellcode:
type
  TSelectedTreeNodes = array of TTreeNode;

:
:

function GetNodeByText(ATree: TTreeView; AValue:String): TSelectedTreeNodes;
var Node: TTreeNode;
begin
  setlength(Result, 0);
  Node := ATree.Items.GetFirstNode;
  while assigned(Node) do begin
    if UpperCase(Node.Text) = UpperCase(AValue) then begin
      setlength(Result, length(Result)+1);
      Result[high(Result)] := Node;
    end;
    Node := Node.GetNext;
  end;
end;
Gruss
Thorsten
  Mit Zitat antworten Zitat
Moyyer

Registriert seit: 31. Mai 2003
155 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Node.GetNext !!!

  Alt 12. Mai 2008, 15:09
Ich würde aus der Function das Break entfernen und stattdessen

Node.Selected := True; hinschreiben.
Somit werden alle Nodes durchgegangen und bei Übereinstimmung markiert.
  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 19:48 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