名前 題名 ▼ Mr.XRAYさん > > 後で,再度見直しておきますので,とりあえずということで. > > 結果的に,その関数のコードを以下のようにすると, > 大文字,小文字の区別なしに検索できるようです. > 釈迦に説法かも知れませんが, > この修正では,コンポーネントの再登録は必要ありませんので. > > function TplFolderTree.SearchNodeFromPathAndSelect(Value: String): TTreeNode; > var > ASearchPath : String; > FolderName : String; > BehindPath : String; > NowNode : TTreeNode; > Index1 : Integer; > Index2 : Integer; > i : Integer; > ResFlag : Boolean; > begin > Result := nil; > > //ルートフォルダ > if IncludeTrailingPathDelimiter(Value) = FRootFolder then begin > Result := FRootNode; > Result.MakeVisible; > exit; > end; > //選択中のフォルダ > if IncludeTrailingPathDelimiter(Value) = FSelectFolder then begin > Result := Selected; > exit; > end; > > ASearchPath := ExcludeTrailingPathDelimiter(Value); > if Pos(LowerCase(FRootFolder), LowerCase(ASearchPath)) = 0 then exit; > > //なければルートから順番に展開しながら検索 > NowNode := FRootNode; > ResFlag := False; > > ASearchPath := FRootFolder; > BehindPath := ExcludeTrailingPathDelimiter(Value); > while True do begin > //\がなければ選択して終了 > Index1 := Pos('\', BehindPath); > if Index1 = 0 then begin > if ResFlag then begin > Result := NowNode; > Result.Selected := True; > Result.MakeVisible; > FSelectFolder := IncludeTrailingPathDelimiter(Value); > end; > exit; > end; > > //\より後ろのパス名から先頭の名前だけをFolderNameに取出す > BehindPath := Copy(BehindPath, Index1 + 1, Length(BehindPath)); > Index2 := Pos('\', BehindPath); > if Index2 = 0 then begin > FolderName:=BehindPath; > end else begin > FolderName := Copy(BehindPath, 1, Index2 - 1); > end; > > if NowNode.HasChildren then begin > if NowNode.Count = 0 then begin > SetFolderTreeNode(ASearchPath, NowNode); > NowNode.Expand(False); > end; > end; > ResFlag := False; > for i := 0 to NowNode.Count - 1 do begin > if LowerCase(NowNode.Item[i].Text) = LowerCase(FolderName) then begin > NowNode := NowNode.Item[i]; > ResFlag := True; > break; > end; > end; > ASearchPath := IncludeTrailingPathDelimiter(ASearchPath + FolderName); > Application.ProcessMessages; > end; > end; GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link