Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.045 c
2-1192776194
ses
2007-10-19 10:43
2007.11.11
combobox. edit;


15-1191918045
031178
2007-10-09 12:20
2007.11.11
Компоненты


2-1192347654
Vasiliy
2007-10-14 11:40
2007.11.11
InterBase. Попытка соединения с локальной БД в режиме Run-Time


2-1192627288
Sonia
2007-10-17 17:21
2007.11.11
Зацикливание при иерархическом запросе


15-1191793301
SKIPtr
2007-10-08 01:41
2007.11.11
Перкевод в спящий режим





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский