Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.11;
Скачать: CL | DM;

Вниз

Замечания и предложения (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 вся ветка

Текущий архив: 2007.11.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
11-1177177531
bessam
2007-04-21 21:45
2007.11.11
BitBtn.Enabled := False , а по виду надписи не скажешь.


4-1178464604
sinus
2007-05-06 19:16
2007.11.11
Запустить программу от имени другого пользователя


2-1192160826
Mariya
2007-10-12 07:47
2007.11.11
"Антоним" процедуры на событи Create


2-1192772617
ses
2007-10-19 09:43
2007.11.11
combobox. edit;


2-1192861122
apic
2007-10-20 10:18
2007.11.11
win+d