![]() |
TreeView: Item nach Text suchen
Hallo
ich habe folgendes Problem: Ich hab einen Namen von einem TGLBaseSceneObject, nennen wir es 'Item1'. Jetzt muss ich genau das Item aus TreeView1 finden, was 'Item1' heißt, damit ich es selektieren und anklicken kann. Dabei wurde jedem Item ein TGLBaseSceneObject gegeben, wobei das Item den Namen des dazugehörigen TGLBaseSceneObject im Text enthält. Gibt es einen Code, der das Item an dem String der TreeNode erkennt? danke |
Re: TreeView: Item nach Text suchen
Hallo,
vlt. hilft dir das weiter:
Delphi-Quellcode:
Aufruf koennte so lauten:uses ..., CommCtrl; [...] function FindItemByName(Wnd : hWnd; hItem : HTREEItem; szItemName : LPCTSTR) : HTREEItem ; const MAXTEXTLEN = 50; var szBuffer: array [0..MAXTEXTLEN + 1] of Char; Item : TTVItem; hItemFound, hItemChild : HTREEItem; begin if ( hItem = nil ) then begin hItem := HTREEItem(SendMessage(Wnd, TVM_GETNEXTItem, TVGN_ROOT, 0)); end; while ( hItem <> nil ) do begin Item.hItem := hItem; Item.mask := TVIF_TEXT or TVIF_CHILDREN; Item.pszText := szBuffer; Item.cchTextMax := MAXTEXTLEN; SendMessage(Wnd, TVM_GETItem, 0, LongInt(@Item)); if ( lstrcmp(szBuffer, szItemName) = 0 ) then begin Result := hItem; Exit; end; if ( Item.cChildren > 0 ) then begin hItemChild := HTREEItem(SendMessage(Wnd, TVM_GETNEXTItem, TVGN_CHILD, longint(hItem))); hItemFound := FindItemByName(Wnd, hItemChild, szItemName); if ( hItemFound <> nil ) then begin Result := hItemFound; Exit; end; end; hItem := HTREEItem(SendMessage(Wnd, TVM_GETNEXTItem, TVGN_NEXT, LPARAM(hItem))); end; Result := nil; end;
Delphi-Quellcode:
procedure TFrmMain.BtnSearchClick(Sender: TObject);
var hItem : HTREEItem; begin hItem := FindItemByName(TvwInfo.Handle, nil, 'Hier dein Suchtext'); if ( hItem <> nil ) then begin TvwInfo.SetFocus; SendMessage(TvwInfo.Handle, TVM_SELECTItem, TVGN_CARET, LongInt(hItem)); end; end; |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz