Главная страница
    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.45 MB
Время: 0.031 c
11-1175594757
ElectriC
2007-04-03 14:05
2007.11.11
CLipBoard


15-1192012733
Tifon
2007-10-10 14:38
2007.11.11
Подскажите литературу


2-1192691195
F@T@L_Err0r
2007-10-18 11:06
2007.11.11
COM1


8-1168871218
olegnik
2007-01-15 17:26
2007.11.11
сжатия изображения bitmap.


15-1191931049
Riply
2007-10-09 15:57
2007.11.11
Последний IExplorer 7





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский