biegnę do bardzo dziwny problem z funkcją Vcl.FileCtrl SelectDirectory (która jest cienka owijka wokół SHBrowseForFolder Win32 API).SelectDirectory/SHBrowseForFolder problem, gdy o wiele elementów powłokowych
używam następujący kod, aby umożliwić użytkownikowi przeglądanie w poszukiwaniu pliku lub folderu:
if SelectDirectory('Sélectionnez un élément à ajouter :', '', S, [sdNewFolder,
sdShowFiles, sdNewUI]) then
Podczas wykonywania tego kodu „Przeglądaj dla folderu” dialog jest poprawnie wyświetlane, wyświetlając zawartość z pulpitu użytkownika:
Ale gdy liczba elementów w folderze pulpitu jest zbyt duży (. na moim komputerze, mogę odtworzyć problem przez posiadające około 100 ikon na pulpicie), to samo wezwanie produkuje całkowicie inny wyświetlacz:
W tym przypadku, elementy pulpitu nie są pokazane już. Mogę eksplorować tylko mój katalog domowy, a ponieważ zgubiłem ikonę "Mój komputer", nie mogę wybrać pliku/folderu poza tym katalogiem.
Szukam czego tu brakuje. Czy istnieje limit liczby podelementów, które może mieć element główny dla poprawnego wyświetlania? Posiadanie wielu ikon na pulpicie nie jest z pewnością dobrą praktyką, ale z tego, co wiem, nie powinno uniemożliwiać normalnego działania tego okna dialogowego. Nie jestem pewien, czy coś jest nie tak w opakowaniu Delphi, czy jest to ograniczenie API, którego nie widziałem na MSDN ...
Jakaś wskazówka doceniona!
Widzę to samo z tym samym wywołaniem API z VB6. Każde więcej niż 97 obiektów podrzędnych "Pulpitu" i po prostu pokazuje folder profilu użytkownika. – Deanna