Форум: "KOL";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
ВнизЗамечания и предложения (KOLnMCK v.2.57) Найти похожие ветки
← →
MTsv DN © (2007-04-14 09:16) [0]Прислушиваясь к пожеланию В.Кладова:
> Кстати, было бы неплохо, если бы сообщения о багах с форума как-то в одном месте концентрировались.
открываю эту тему.
В теме, предлагается сообщать о замечаниях (желательно с предложенными исправлениями) и пожеланиях (также с реализацией)!!!
← →
MTsv DN © (2007-04-14 09:23) [1]1. Файл KOL.PAS, процедура ScanDirectory:
procedure TDirList.ScanDirectory(const DirPath, Filter: KOLString;
Attr: DWord);
var FindData : TFindFileData;
E : PFindFileData;
Action: TDirItemAction;
s: String;
begin
Clear;
FList := NewList;
FPath := DirPath;
if FPath = "" then Exit;
s := IncludeTrailingPathDelimiter( FPath );
FPath := s;
if fFilters = nil then
begin
fFilters := {$IFDEF UNICODE_CTRLS} NewWStrList {$ELSE} NewStrList {$ENDIF};
if Filter = "*.*" then
fFilters.Add( "*" )
else
fFilters.Add( Filter );
end;
if not Find_First( PKOLChar( FPath + FindFilter( Filter ) ), FindData ) then
Exit;
while True do
begin
(*)
if SatisfyFilter( PKOLChar(@FindData.cFileName[0]),
FindData.dwFileAttributes, Attr ) then
а. Избавиться от переменной s.
б. Предлагаю на место (*) вставить следующий или похожий код:{$IFDEF UNICODE_CTRLS}
i := $F000;
IsUnicode := FindData.cFileName;
if (IsUnicode <> ".") and (IsUnicode <> "..") then
begin
if not IsTextUnicode(@IsUnicode[1], Length(IsUnicode), @i) then
if FindData.cAlternateFileName <> "" then
CopyMemory(@FindData.cFileName, @FindData.cAlternateFileName, SizeOf(FindData.cAlternateFileName));
end;
{$ENDIF}
Поскольку, как оказалось на практике, красивое отображение иероглифов или арабской вязи, это всего лишь отображение, а вообще-то, программы не работают с именами WideString, а переходят на альтернативные имена...
З.Ы. Почему написал "или похожий код", поскольку не получилось правильной фильрации символов ANSI-16 для всех языков...
2. Файл KOL.PAS.
Для функций Trim, TrimLeft и TrimRight надо бы заменить string -> KOLString.
3. Файл KOLadd.PAS.function TActionList.Add(const ACaption, AHint: string; OnExecute: TOnEvent): PAction;
Нужна замена string -> KOLString.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.078 c