Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
Delphi 12 Athens
|
Re: TreeViewTools (rund um Node.Text und Node-Path)
8. Mär 2009, 12:00
hab erstmal nur kurz reingeblickt: (Änderungen mit <<< markiert)
Delphi-Quellcode:
function GetNodePath(aNode:TTreeNode; WithDelimiter: Boolean): String;
begin
if Assigned(aNode) then begin
if WithDelimiter then Result := aNode.Text +'\'
else Result := aNode.Text;
aNode := aNode.Parent;
while assigned(aNode) do begin
Result := aNode.text + '\' + Result;
aNode := aNode.Parent;
end;
end else Result := ''; <<<<<
end;
// ist jetzt nichts Schlimmes, aber Result war sonst "sinnlos",
// da es in [i]if WithDelimiter then ...[/i] eh überschrieben wurde
Function FindNodeByPath(aTreeView: TTreeView; aPath: String): TTreeNode;
Var
Path: TArrayOfString;
i, i2: Integer;
Begin
Result := nil;
if aPath='' then exit;
//Path := Mixed.Explode('\', ExcludeTrailingBackslash(aPath));
aPath := IncludeTrailingBackslash(aPath);
while aPath <> '' do begin
i2 := Pos('\', aPath); <<<<<
i := Length(Path);
SetLength(Path, i+1);
Path[i] := Copy(aPath, 1, i2-1); <<<<<
Delete(aPath, 1, i2); <<<<<
end;
Result := aTreeView.Items.GetFirstNode;
i := 0;
While Assigned(Result) do Begin
if Result.Text = Path[i] Then Begin
If i < High(Path) Then Begin
Inc(i);
Result := Result.getFirstChild;
End Else Exit;
End Else Result := Result.getNextSibling;
End;
End;
function NodeTextExistsInTwig(aTreeView: TTreeView; aParentNode: TTreeNode; aText : String): Boolean;
var
aNode : TTreeNode;
begin
Result := False;
aText := AnsiUpperCase(aText); <<<<<<<<<
aNode := NIL;
// richtigen FirstNode ermitteln
if Assigned(aParentNode) then aNode := aParentNode.GetFirstChild
else if Assigned(aTreeView) then aNode := aTreeView.TopItem;
// StartNode und SchwesterNodes prüfen
while Assigned(aNode) do begin
if AnsiUpperCase(aNode.Text) = aText then begin <<<<<<<<<<
Result := True;
Exit; // Break ginge auch, nächste aNode-Zuweisung würde verworfen
end;
aNode := aNode.getNextSibling;
end;
end;
$2B or not $2B
|
|
Zitat
|