-
Про DEBUG_ENDSESSION и USE_NAMES не дочитал. Но это и не к спеху, если вам надо, вы же у себя поправите. Вроде бы я DEBUG_ENDSESSION делал для тестирования проблем с выходом программы, в далекие-далекие времена, когда это еще было сырое и не доделанное.
-
Тестировалось с модифицированной 2.87, но что-то мне подсказывает, что и в этой версии будет тот же эффект и похоже это снова темы пример: http://slil.ru/29256063 Если изменить размер окна до минимального возможного по высоте (на самом деле эффект проявляется раньше) то загрузка процессора 100%. Все бы ничего, но если из такой минимизированной формы создается либо дочерняя либо тот же MessageBox - приложение зависает.
-
Еще одна ошибка, проявляется только с директивой TLIST_FAST - пример элементарный: tmp := NewList(); tmp.Clear; tmp.Capacity := 1000; tmp.Add(tmp2);
-
Под аэрой в новой версии ничего не виснет, под стандартными темами без аэро тоже, и под классикой тишина, при переключениях тоже. Может, давно исправлено, может потому что 7ка отличается от XP.
Исправление для TLIST_FAST+Capacity в 2.921 на сайте, архив kol.zip как обычно. Описание изменений выложил:
[*] Типы PXStrList, PXStrListEx удалены, вместо этого добавлены функции NewKOLStrList и NewKOLStrListEx для работы с PKOLStrList и PKOLStrListEx. RegKeyGetSubKeys, RegKeyGetValueNames, TIniFile.GetSectionNames, TIniFile.SectionData перенаправлены на использование TKOLStrList. [+] Функция TCanvas.TextOut: String -> KOLString; Добавлена функция TCanvas.TextOutA (особо для AnsiString при включенной опции UNICODE_CTRLS) [-] Исправлена функция StrComp_NoCase, другая оптимизированная версия кода добавлена для нее и для StrLComp_NoCase. Предыдущая (но исправленная) версия доступна через символы SMALLER_CODE и SMALLEST_CODE. [-] Исправлена функция TList.SetCapacity для TLIST_FAST и значения > 256.
-
Проверил с 2.91 - и под XP и под 7 загрузка 1 ядра проца 100%
-
CPU0-33%, CPU1-max78%. FastMM & FastMove закомментарил сразу. Grush не устанавливал, он у меня не устанавливается, так запустил, без открытия формы в дизайнере. Попробуйте переделать без grush. Или (что проще) назначьте minWidth/minHeight для формы и не парьтесь. А темы совершенно не при чем, результат одинаковый и в классике.
-
Да темы похоже действительно не при чем, как и груши.
-
Привет
При UNICODE_CTRLS, ошибка с асм-версия TCanvas.TextOut...
-
Еще одна непонятка с последними версиями. Почему при включенной UNICODE_CTRLS в EditBox вместо нормальной обработки системный сочетаний, например, CTRL+V пишутся символы... http://slil.ru/29261593
-
Для чего было добавлено:
Result.AttachProc( WndProcUnicodeChars );
-
Ошибку понял, вечером поправлю. Это для китайского языка. Не подумал, что ctrl+буква шлет WM_CHAR. Заодно и Enter сломался, тоже не заметил. В принципе, достаточно наверное проверить, что код символа >= ' ' (32). Но можно еще и нажатие клавиш Ctrl/Alt/LWin/RWin отсечь.
Кто будет китайский проверять: иероглиф SAN (три), пишется как три горизонтальные черты 三, с клавиатуры сам в EditBox не вставляется, хотя WM_CHAR приходит исправно, и таких много.
-
наскока я понимаю все контролы виндовые с соответствующим шрифтом искаропки китайский поддерживают а если в коле проблемы,значит гдето вилосипед с квадрат колесом
а если например блокнот также сибя ведет-это не проблемы кола и врятли стоит в это вмешиваца
-
> Заодно и Enter сломался, тоже не заметил. И ESC...
-
> Кто будет китайский проверять По ходу тот кого это касаемо, т.е. zhoudi.
-
Правильная поддержка азиатских языков требуется не только китайцам(проблема не только с китайским, можете погуглить по поводу Microsoft IME, проблемы есть и с японским, и с некоторыми другими двухбайтными кодировками).
Но блокнот проблем не имеет, как не имеют и все известные мне программы с полем для ввода текста. Очевидно, они обходят эту проблему MS IME таким простым способом. Если дефолтная обработка WM_CHAR съедает некоторые символы, но их можно вставить, самостоятельно обработав в контроле WM_CHAR, то почему бы этого не сделать. Тем более что MS не собирается исправлять этот баг и в будущем, как и многие другие (вспоминается недавно всплывшая проблема со вставкой в комбосписок констант, так же благополучно унаследованная уже Win7).
-
Обновил до 2.93: [+]
Добавлены функция WStrComp_NoCase и метод TWStrList.IndexOf_NoCase (очень медленный код, только для совместимости с TKOLStrList).
[*]
LogFileOutput: String->KOLString.
[-]
TCanvas.TextOut - исправлена для UNICODE_CTRLS в asm версии.
[-]
Печать сочетаний клавиш и спец символов (Ctrl+C, Ctrl+V, Enter, Escape etc.) исправлена в мемо для UNICODE_CTRLS.
[+]
KOL_unicode.inc: добавлены определения для ресурсных констант RT_RCDATA, RT_BITMAP, и т.п. - для UNICODE_CTRLS.
[-]
MCK: Установка обработчика OnLVEndEditItem более не требуется для успешного редактирования, но только для MCK.
[*]
UNICODE_CTRLS: дополнительные изменения (в основном String -> KOLString) в множестве дополнительных модулей: err.pas, KOLadd.pas, KOLDirDlgEx.pas, Lnk.pas, Animation.pas, KOLGif.pas, KOLPCX.pas, KOLTGA.pas.
-
-
а можна ради интерес для теста прогу с вводом чайны ? и как писать с клавы ?
-
KOL.zip - re-uploaded. Seems forgot to update kol.pas iself there. Сечас должно быть на месте.
-
Привет. Владимир, сделайте у себя пометочку плиз. Файл MCKAppExpert200x.pas: dlg.Filter := '*.dpr';
dlg.Filter := '*.pas'; заменить на: dlg.Filter := 'DPR files|*.dpr';
dlg.Filter := 'PAS files|*.pas'; Для совместимости с Windows 7
|