Конференция "KOL" » Версия 2.91 [Delphi, Windows]
 
  • Vladimir Kladov © (29.05.10 12:33) [0]
    Новости от 29 мая 2010 (KOL & MCK v2.91)
    [-]
    Для UNICODE_CTRLS, печать некоторых китайских символов исправлена для Memo и EditBox.
    VK, reported by zhoudi
    [+]
    Добавлена функция NewAlienPanel, позволяющая создавать дочернюю панель в любом окне в системе.
    VK
    [*]
    Большое число кода из KOL_asm.inc перемещено обратно в KOL.pas - для упрощения поиска ошибок и различия в поведении pas-версии и asm-версии кода. Запрещена Asm-версия функции TList.Add.
    VK
    [*]
    Изменено поведение Scrollbar-контрола. Прежняя версия доступна с использованием символа условной компиляции SCROLL_OLD.
    QAZ
    [*]
    Изменено поведение TStrList.Find для случая, когда найдена не в точности искомая строка: в этом случае возвращается индекс найденной строки со знаком минус.
    VK, mdw
    [*]
    UNICODE_CTRLS: DateTime2StrShort, String -> KOLString.
    mdw
    [*]
    Изменена функция ExePath: теперь она возвращает путь к основному exe-файлу, даже когда вызвана из функции из DLL.
    Добавлена функция ModulePath, возвращающая путь к исполнимому (самому) модулю, в том числе для DLL - путь к DLL.
    VK
    [*]
    UNICODE_CTRLS: Добавлено определение типа TXStrList для использования вместо TStrList или TWStrList в зависимости от символа  UNICODE_CTRLS.
    VK
    [-]
    Функция FileSeek, параметр MoveTo: TStrmSize -> TStrmMove.
    QAZ
    [+]
    Добавлена функция WStr2File (для параметра PWideChar, в отличие от WideString).
    VK
    [-]
    Исправлены функции File2WStr, WStrSaveToFile.
    zhoudi
    [-]
    UNICODE_CTRL: Исправлен баг API для Combobox контрола, связанный со вставкой строковой константы.
    VK, QAZ,
    [-]
    TControl.SetDateTime исправлен для случая присваивания нулевой даты или только времени.
    VK
    [-]
    TControl.REGetFont - исправлено.
    VK
    [*]
    Под Windows Vista и Windows 7 (и для будущих версий Windows), GetDesktopRect перенаправлен на GetWorkArea так как окно рабочего стола имеет теперь размеры, совпадающие с размерами экрана, и не принимается в расчет даже панель задач.
    VK
    [-]
    WndProcNotify - исправлена asm-версия (падение приложения при переключении тем в Windows XP и далее).
    VK
    [-]
    KOLMediaPlayer - исправлено компилирование asm-версии.
    VK
    [*]
    KOLmath.pas: добавлен символ MATH_NOERR, запрещающий подключение модуля err и обработку ошибок (для использования некоторых функций из KOLmath, не требующих такого контроля).
    VK

    MCK не менялся. Архивы kol.zip, kol_err.zip, KLMediaplayer.zip см. на http://kolmck.net
  • Hallif © (29.05.10 20:16) [1]
    Владимир, огромное спасибо за релиз, соавторам изменений тоже выражаю свою благодарнось.
  • QAZ (01.06.10 11:20) [2]
    аяй
    procedure TControl.SetSBMinMax(const Value: TPoint);
    begin
     GetSBMinMax;
     if (Handle <> 0) then
       SetScrollRange(Handle, SB_CTL, Value.X,
           Value.Y {$IFDEF SCROLL_OLD} + SBPageSize {$ENDIF (by QAZ)} - 1, True)
     else
       fSBMinMax := Value;
    end;


    а надо
    procedure TControl.SetSBMinMax(const Value: TPoint);
    begin
     GetSBMinMax;
     if (Handle <> 0) then
       SetScrollRange(Handle, SB_CTL, Value.X,
           Value.Y {$IFDEF SCROLL_OLD} + SBPageSize  - 1{$ENDIF (by QAZ)}, True)
     else
       fSBMinMax := Value;
    end;


    т.е. -1 это лишнее, на одну позицию недоскролит
  • QAZ (01.06.10 11:46) [3]
    а мошт функции которые SH...A,SH...W загнать в уникодные ифдефы как все остальные?
    еще встречаются подозрительные парочки функций с окончанием А,например
    AnsiCompareStr\AnsiCompareStrA которые вроде используют одну и туже CompareStringA, но имеют разные параметры KOLString\AnsiString, а KOLString может быть уникодным...
  • Vladimir Kladov © (01.06.10 13:54) [4]
    Я же по вашему коду брал, из сообщения [31] с теме Версия 2.90.
    Могу и заменить, прямо в этой же версии, апдейты ушли в прошлое. Пометить 2.911 просто.
    ------------------------------------------------------------------

    По поводу SHGetFileInfoA SHFileOperationA SHBrowseForFolderA SHGetPathFromIDListA - они и так не используются при UNICODE_CTRLS, Версии W было важно отсечь для компиляции в Delphi2, который не понимает уникод. Остальные версии еще и не должны (бы) добавлять функцию в таблицу импорта. Если бобавляют, то тогда да, надо внутрь IFDEF'а.

    AnsiCompareStr использует AnsiCompareString, в случае UNICODE_CTRLS это как раз функция из KOL_unicode.inc:
    function CompareString; external kernel32 name 'CompareStringW';

    AnsiCompareStrA всегда вызывает CompareStringA. Иногда в юникодовском приложении нужна работа с анси-строками.
  • QAZ (01.06.10 15:53) [5]

    > Я же по вашему коду брал, из сообщения [31] с теме Версия
    > 2.90

    это я ищо до тестового примера написал
    там где я это использовал 1 была не критична\не видна
    а в тестовом потом убрал -1 тк сразу видно что лишнее
  • Vladimir Kladov © (01.06.10 16:26) [6]
    Обновил до 2.911.
  • QAZ (01.06.10 16:42) [7]

    > Обновил до 2.911.

    упс,как быстро
    а я вот еще посмотрел и получается что

    procedure TControl.SetSBPageSize(Value: Integer);
    var
     SI: TScrollInfo;
    begin
     fSBPageSize := Value;
     if (Handle <> 0) then begin
       FillChar(SI, SizeOf(SI), #0);
       SI.cbSize := SizeOf(SI);
       SI.fMask := SIF_PAGE or SIF_RANGE;
       SBGetScrollInfo(SI);
       if (SI.nMax = 0) and (SI.nMin = 0) then
         SI.nMax := 1;
       {$IFDEF SCROLL_OLD} // by QAZ
       SI.nMax := SI.nMax - Integer(SI.nPage) + Value;
       {$ENDIF}
       SI.nPage := Value;
       SBSetScrollInfo(SI);
     end;
    end;


    а надо

    procedure TControl.SetSBPageSize(Value: Integer);
    var
     SI: TScrollInfo;
    begin
     fSBPageSize := Value;
     if (Handle <> 0) then begin
       FillChar(SI, SizeOf(SI), #0);
       SI.cbSize := SizeOf(SI);
       SI.fMask := SIF_PAGE or SIF_RANGE;
       SBGetScrollInfo(SI);
    {$IFDEF SCROLL_OLD} // by QAZ
      if (SI.nMax = 0) and (SI.nMin = 0) then
         SI.nMax := 1;
       SI.nMax := SI.nMax - Integer(SI.nPage) + Value;
       {$ENDIF}
       SI.nPage := Value;
       SBSetScrollInfo(SI);
     end;
    end;


    смотрел по скролу встроенуму в мемо
    там мин=0 и макс=0 это норм
    а если макс<пейдж то скролл выключен (можно конечно добавить это на усмотрение)
  • QAZ (01.06.10 16:50) [8]

    > там мин=0 и макс=0 это норм

    а по коловски получается что например скролить нечего,а скрол показывает что есть (когда SI.nMax := 1;)
  • Vladimir Kladov © (01.06.10 17:37) [9]
    Может, вообще лучше убрать это
    if (SI.nMax = 0) and (SI.nMin = 0) then
        SI.nMax := 1;

  • QAZ (01.06.10 18:11) [10]

    > Может, вообще лучше убрать это

    незнай ,выш для чегото это придумали
    а с учетом того что по умолчанию будет правильный (если ищо чего не всплывет) вариант,то вобще без разницы
  • Vladimir Kladov © (01.06.10 18:54) [11]
    А я не помню. Может, оно иначе не работало вообще, в какой-нибудь 98. Если бы я комментарии к каждой строчке писал, проблем бы было меньше, с одной стороны. А с другой больше. Придется условной компиляцией бороться, на случай если всплывет бяка.
  • Vladimir Kladov © (01.06.10 20:23) [12]
    2.912
  • QAZ (01.06.10 21:05) [13]
    ну типерь можно спокойно перейти с 2.79 версии :)

    кстати а почемубы не обновлять кол также оперативно в будущем?
    типа не копить косяки полгода а потом разгребать
    а сразу ,появился - исправили - +0.001 к номеру версии и выложить на сайт
  • Vladimir Kladov © (01.06.10 21:14) [14]
    Это потому что я сегодня в отпуске 1й день. Но в субботу я все равно улетаю до конца месяца. А зачем Вам такая оперативность, если вы не хотите с 2.79 расстаться.
  • Hallif © (01.06.10 21:39) [15]
    В методе TObj.Destroy в случае определенных {DEBUG_ENDSESSION} и {USE_NAMES} для функции Int2Hex передается неверный список аргументов.
    директивы опущены
    'FINALLED: ' + Int2Hex( DWORD( @ Self ) + ' (name:' + FName + ')' , 8 )


    предполагалось скорее всего:
    destructor TObj.Destroy;
    begin
     Final;
    {$IFDEF DEBUG_ENDSESSION}
     if EndSession_Initiated then
     LogFileOutput( GetStartDir + 'es_debug.txt',
                    'FINALLED: ' + Int2Hex( DWORD( @Self ), 8 )
                    {$IFDEF USE_NAMES}
                    + ' (name:' + FName + ')'
                    {$ENDIF USE_NAMES}
                    );
    {$ENDIF DEBUG_ENDSESSION}
    ...

  • QAZ (01.06.10 22:08) [16]

    > не хотите с 2.79 расстаться.

    уже хочу, все критичные для мну вещи уже исправлены
  • Hallif © (01.06.10 23:51) [17]
    Владимир, увидел новый тип PXStrList, но ведь он дублирует ранее определенный PKOLStrList?
    ...
    {$IFDEF UNICODE_CTRLS}
     PXStrList = PWStrList;
    {$ELSE}
     PXStrList = PStrList;
    {$ENDIF UNICODE_CTRLS}
    ...
    {$IFDEF UNICODE_CTRLS}
     {$IFNDEF _D2}
       type TKOLStrList = TWStrList;
            PKOLStrList = PWStrList;
     {$ELSE _D2}
       type TKOLStrList = TStrList;
            PKOLStrList = PStrList;
     {$ENDIF _D2}
    {$ELSE UNICODE_CTRLS}
     type TKOLStrList = TStrList;
          PKOLStrList = PStrList;
    {$ENDIF UNICODE_CTRLS}
    ...

  • Hallif © (02.06.10 01:14) [18]
    Еще промелькнуло...~строка 32153 в обоих случаях (_D2) GetScrollInfo одинаков.
     {$IFDEF _D2}
     GetScrollInfo( Sender.fHandle, Bar, SI );
     {$ELSE}
     GetScrollInfo( Sender.fHandle, Bar, SI );
     {$ENDIF}

  • Vladimir Kladov © (02.06.10 09:15) [19]
    На сайте 2.92. Серьезное исправление: StrComp_NoCase + TStrList.IndexOf_NoCase, XStrList убрал, NewKOLStrList+NewKOLStrListEx добавил. Немного по todo пробежался, что-то поубирал в комментариях. Анонс делать буду позже, вечером время будет. Побегу дальше собирать документы.
  • Vladimir Kladov © (02.06.10 10:27) [20]
    Про DEBUG_ENDSESSION и USE_NAMES не дочитал. Но это и не к спеху, если вам надо, вы же у себя поправите. Вроде бы я DEBUG_ENDSESSION делал для тестирования проблем с выходом программы, в далекие-далекие времена, когда это еще было сырое и не доделанное.
  • Mr (02.06.10 14:14) [21]
    Тестировалось с модифицированной 2.87, но что-то мне подсказывает, что и в этой версии будет тот же эффект и похоже это снова темы пример: http://slil.ru/29256063 Если изменить размер окна до минимального возможного по высоте (на самом деле эффект проявляется раньше) то загрузка процессора 100%. Все бы ничего, но если из такой минимизированной формы создается либо дочерняя либо тот же MessageBox - приложение зависает.
  • Mr (02.06.10 15:04) [22]
    Еще одна ошибка, проявляется только с директивой TLIST_FAST - пример элементарный:
     tmp := NewList();
     tmp.Clear;
     tmp.Capacity := 1000;
     tmp.Add(tmp2);
  • Vladimir Kladov © (02.06.10 16:25) [23]
    Под аэрой в новой версии ничего не виснет, под стандартными темами без аэро тоже, и под классикой тишина, при переключениях тоже. Может, давно исправлено, может потому что 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.
  • Mr (02.06.10 16:53) [24]
    Проверил с 2.91 - и под XP и под 7 загрузка 1 ядра проца 100%
  • Vladimir Kladov © (02.06.10 22:10) [25]
    CPU0-33%, CPU1-max78%. FastMM & FastMove закомментарил сразу. Grush не устанавливал, он у меня не устанавливается, так запустил, без открытия формы в дизайнере. Попробуйте переделать без grush. Или (что проще) назначьте minWidth/minHeight для формы и не парьтесь. А темы совершенно не при чем, результат одинаковый и в классике.
  • Mr (03.06.10 08:19) [26]
    Да темы похоже действительно не при чем, как и груши.
  • MTsv DN (03.06.10 09:30) [27]
    Привет

    При UNICODE_CTRLS, ошибка с асм-версия TCanvas.TextOut...
  • MTsv DN (03.06.10 09:45) [28]
    Еще одна непонятка с последними версиями.

    Почему при включенной UNICODE_CTRLS в EditBox вместо нормальной обработки системный сочетаний, например, CTRL+V пишутся символы...

    http://slil.ru/29261593
  • MTsv DN (03.06.10 09:49) [29]
    Для чего было добавлено:
     {$IFDEF UNICODE_CTRLS}
     {$IFDEF _D3orHigher}
     Result.AttachProc( WndProcUnicodeChars );
     {$ENDIF}
     {$ENDIF}

  • Vladimir Kladov © (03.06.10 13:11) [30]
    Ошибку понял, вечером поправлю. Это для китайского языка. Не подумал, что ctrl+буква шлет WM_CHAR. Заодно и Enter сломался, тоже не заметил. В принципе, достаточно наверное проверить, что код символа >= ' ' (32). Но можно еще и нажатие клавиш Ctrl/Alt/LWin/RWin отсечь.

    Кто будет китайский проверять: иероглиф SAN (три), пишется как три горизонтальные черты 三, с клавиатуры сам в EditBox не вставляется, хотя WM_CHAR приходит исправно, и таких много.
  • QAZ (03.06.10 13:49) [31]
    наскока я понимаю все контролы виндовые с соответствующим шрифтом
    искаропки китайский поддерживают
    а если в коле проблемы,значит гдето вилосипед с квадрат колесом

    а если например блокнот также сибя ведет-это не проблемы кола и врятли стоит в это вмешиваца
  • MTsv DN (03.06.10 13:59) [32]
    > Заодно и Enter сломался, тоже не заметил.
    И ESC...
  • MTsv DN (03.06.10 14:08) [33]
    > Кто будет китайский проверять
    По ходу тот кого это касаемо, т.е. zhoudi.
  • Vladimir Kladov © (03.06.10 16:13) [34]
    Правильная поддержка азиатских языков требуется не только китайцам(проблема не только с китайским, можете погуглить по поводу Microsoft IME, проблемы есть и с японским, и с некоторыми другими двухбайтными кодировками).

    Но блокнот проблем не имеет, как не имеют и все известные мне программы с полем для ввода текста. Очевидно, они обходят эту проблему MS IME таким простым способом. Если дефолтная обработка WM_CHAR съедает некоторые символы, но их можно вставить, самостоятельно обработав в контроле WM_CHAR, то почему бы этого не сделать. Тем более что MS не собирается исправлять этот баг и в будущем, как и многие другие (вспоминается недавно всплывшая проблема со вставкой в комбосписок констант, так же благополучно унаследованная уже Win7).
  • Vladimir Kladov © (03.06.10 18:36) [35]
    Обновил до 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.

  • Jon © (03.06.10 20:47) [36]
    Please update download link for v2.93: http://kolmck.net/kol.zip = http://kolmck.net/kol2921.zip
  • QAZ (03.06.10 22:11) [37]
    а можна ради интерес для теста прогу с вводом чайны ? и как писать с клавы ?
  • Vladimir Kladov © (03.06.10 22:12) [38]
    KOL.zip - re-uploaded. Seems forgot to update kol.pas iself there.
    Сечас должно быть на месте.
  • MTsv DN (06.06.10 08:47) [39]
    Привет.

    Владимир, сделайте у себя пометочку плиз. Файл MCKAppExpert200x.pas:
    dlg.Filter     := '*.dpr';
    dlg.Filter := '*.pas';


    заменить на:
    dlg.Filter     := 'DPR files|*.dpr';
    dlg.Filter := 'PAS files|*.pas';


    Для совместимости с Windows 7
  • MTsv DN (06.06.10 08:56) [40]
    Блин, во склероз. Новая версия visual_xp_styles.inc.
    http://slil.ru/29278311

    Изменения:
    - Исправлена отрисовка GroupBox.
    - Исправлена отрисовка BitBtn. В частности:
    -- отрисовка изображения при выключенном элементе на основе исходного PBitmap (Convert2Grayscale)
    -- отрисовка изображения при НЕ установленом ImageList
    -- проверка на опцию bboFocusRect с соответствующей отрисовкой элемента.
  • GMax (06.06.10 23:40) [41]
    MTsv DN: а картинка с текстом на BitBtn по-прежнему по разным углам кнопки или как у приличных людей - рядом ?
  • MTsv DN (07.06.10 09:05) [42]
    При использовании тем нормально. Без тем раскидано. Если я правильно понял Ваш вопрос. Проверить то сами можете...
  • MTsv DN (07.06.10 18:23) [43]
    Привет...

    1. ASM версия NEW_MODAL - "кривая". Спасает pas-версия.
    2. Однако в WndProcForm, нужно кое-что править. А именно кусок:
         if Self_.fModalForm <> nil then
           SetFocus( Self_.fModalForm.fHandle )
         else if ( Self_.FCurrentControl <> nil ) and
                 not ( Self_.fCurrentControl.IsForm xor Self_.fIsApplet ) then


    http://slil.ru/29287552
  • Vladimir Kladov © (08.06.10 10:03) [44]
    Как вернусь (числа 29-го), так и поправлю. Сейчас я в Сочи. Отпуск у меня. Пока асм-версию этой функции отключаете, и работаете. В kol.pas заменить
    {$IFDEF ASM_VERSION}

    на
    {$IFDEF ASM_noVERSION}

    >, в KOL_asm.inc (если асм-версия там) эту функцию просто закомментируйте. Или через {$IFDEF TURN_ON} ... {$ENDIF} - тоже комментарий.
  • QAZ (08.06.10 11:21) [45]

    > - Исправлена отрисовка BitBtn. В частности:
    > -- отрисовка изображения при выключенном элементе на основе
    > исходного PBitmap (Convert2Grayscale)
    > -- отрисовка изображения при НЕ установленом ImageList
    > -- проверка на опцию bboFocusRect с соответствующей отрисовкой
    > элемента.

    очередной велосипед?
    в ХР и выше баттоны с картинками рисуются без всяких извращений и самопальных отрисовок
  • MTsv DN (08.06.10 13:25) [46]
    Не нравится, делайте  своё...флаг Вам в руки.
  • Vladimir Kladov © (28.06.10 17:58) [47]
    2MTsv DN: MCKAppExpert200x - такого что-то не найду. Есть KOLAppExpert200, но там таких строчек не нашел. visual_xp_styles положите еще раз, тот похоже уже ушел.

    На сайте kol 2.94 - исправлен NEW_MODAL (asm - тоже исправлен - по крафней мере, запускается проект из 1 формы, дальше не смотрел, пока не знаю, что там еще происходит).
  • ProFrager © (01.08.10 16:52) [48]
    KOL 2.94
    установлен флаг STREAM_LARGE64
    delphi 7 генерит неверный код в некоторых функциях работы с файловыми потоками, что приводит к потере старшего DWord'а в 64битном выходном слове.
    Данная проблема решается небольшим исправлением (выделено жирным) следующих функций:
    function FileSeek(Handle: THandle; {$IFNDEF STREAM_COMPAT} const {$ENDIF} MoveTo: TStrmMove; MoveMethod: TMoveMethod): TStrmSize;
    {$IFDEF STREAM_LARGE64}
    var HiPtr: DWORD;
    {$ENDIF}
    begin
     {$IFDEF STREAM_LARGE64}
     HiPtr := MoveTo shr 32;
     Result := SetFilePointer(Handle, DWORD( MoveTo ), @ HiPtr, Ord( MoveMethod ) );
     if (DWORD( Result ) = $FFFFFFFF {INVALID_SET_FILE_POINTER}) and
        (GetLastError <> NO_ERROR) then
        Result := -1; // Int64(-1)
     if Result >= 0 then
       Result := Result or (int64(HiPtr) shl 32);
     {$ELSE}
     Result := SetFilePointer(Handle, MoveTo, nil, Ord( MoveMethod ) );
     {$ENDIF}
    end;


    function GetSizeFileStream( Strm: PStream ): TStrmSize;
    {$IFDEF STREAM_LARGE64}
    var SizeHigh: DWORD;
    {$ENDIF}
    begin
     {$IFDEF STREAM_LARGE64}
     Result := GetFileSize( Strm.fData.fHandle, @ SizeHigh );
     Result := Result or (int64(SizeHigh) shl 32);
     {$ELSE}
     Result := GetFileSize( Strm.fData.fHandle, nil );
     if Result = DWORD( -1 ) then Result := 0;
     {$ENDIF}
    end;

  • QAZ (06.08.10 11:38) [49]
    а почему нет версий int2... для cardinal ?
    ибо переполнение или минус при приведении к integer ни есть срост
  • mdw (06.08.10 12:54) [50]

    > а почему нет версий int2... для cardinal ?

    UInt2...
  • QAZ (13.08.10 13:41) [51]
    в текущей версии TrackBar не "фокусируется"
    через вот так ->   Pcontrol(Sender).Perform(WM_SETFOCUS,0,0);

    может всетаки добавите TrackBar в кол,всетаки стандартный контрол
    а экономить число строк в kol.pas можно и другими методами
  • Vladimir Kladov © (13.08.10 19:19) [52]
    Не понял, что Вы хотите добавить, в KOL.pas разве есть трекбар? Я так вообще зарекся использовать этот нестандартный стандартный компонент, предпочитаю KOLTracker.
  • QAZ (13.08.10 20:58) [53]
    просто спрошу
    что изменилось в KOL что парестал работать Pcontrol(Sender).Perform(WM_SETFOCUS,0,0);
    Sender=тракбар
    в KOL 2.79 работает в 2.94 нет?
  • Jon © (14.08.10 03:53) [54]
  • Vladimir Kladov © (14.08.10 10:07) [55]
    2Jon: file is renamed it is now can be downloaded through the link above.

    2QAZ. Там слишком много изменений в KOL между этими версиями. Попробуйте Tracker1.TabStop := true; , желательно до создания окна, хотя бы запихнуть вовнуть тракбара. Этот код должна была бы обеспечить mck-часть mckССtrls.pas, я сейчас не успею глянуть до понедельника.
  • Vladimir Kladov © (15.08.10 21:38) [56]
    Возможно это было изменение в CCtrls.pas, связанное с поддержкой unicode_ctrls, заодно в том числе я убрал TabStop, т.к. обнаружил, что он все равно не ловит фокус по клавише Tab. Возможно, случайно так получилось, пока экспериментрировал. К сожалению, исходников прежней версии от CCtrls у меня кажется не сохранилось.
  • QAZ (15.08.10 22:34) [57]
    если вы про KOLCCtrls.pas то оно лежит http://kolmck.net и я его и использую
    уникода там и в помине нет , ибо текста он не рисует
    а менял я только кол ,причем если просто при буилде заменить папку старую на новую - то фокусирует, а если переустановить на новый то нет
    завтра точней обрисую
  • QAZ (16.08.10 14:21) [58]
    если Result.Tabstop:=True; впихнуть в NewTrackbar то фокусирует
    но както это не прально,чотогдето нетак
    гдето KOL неверно обрабатывает WM_SETFOCUS и зачем он его обрабатывает?
  • QAZ (16.08.10 14:43) [59]
    несрост в function TControl.DoSetFocus: Boolean;
  • QAZ (16.08.10 14:51) [60]

    > несрост в function TControl.DoSetFocus: Boolean;

    хотя он такойже как и в старой версии, вобщем хз
 
Конференция "KOL" » Версия 2.91 [Delphi, Windows]
Есть новые Нет новых   [134430   +4][b:0.001][p:0.007]