Советы по Delphi

         

Компонент OpenDialog - ошибки и их исправление


При использовании в Delphi диалогового окна Opendialog (с Multiselect=true) и выборе более одного файла из корневой директории, возвращаемые значения содержат две косые черты вместо одной. Для примера:

c:\\autoexec.bat
c:\\config.sys

Если я выбираю из корневой директории один файл или использую любую другую директорию, этого не происходит. Кто-нибудь сталкивался с подобным глюком?

Если вы хотите это исправить (и имеете исходный код VCL), найдите строчку 1128 в DIALOGS.PAS. Она выглядит так:

    FFiles.Add(DirPart+'\'+FilePart);

Измените это на:



    FFiles.Add(AddBkSlash(DirPart)+FilePart);

и затем создайте локальную функцию, добавляющую при необходимости обратный слэш:

    function AddBkSlash(const S:String):string; begin Result := S; if S[Length(S)] <> '\' then Result := Result+'\'; end;

Pat [000471]



Содержание раздела