Главная страница
    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.056 c
8-1168776768
andr1962
2007-01-14 15:12
2007.11.11
Помогите с directdraw


15-1191775326
Kostafey
2007-10-07 20:42
2007.11.11
С днем рождения ! 7 октября


15-1191791670
malyar
2007-10-08 01:14
2007.11.11
как нарисовать линию зная ее угол наклона и длинну


11-1177182170
Rusya
2007-04-21 23:02
2007.11.11
Сделать CenterOnParent


15-1191840512
allrussia
2007-10-08 14:48
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский