Конференция "KOL" » Версия3.20 [Delphi, Windows]
 
  • Vladimir Kladov © (25.07.13 18:55) [0]
    [+] Добавлено свойство для MCK и функция для KOL TControl: CenterOnCurrentScreen (центрирует форму на том мониторе, на котором в данный момент находится курсор мыши).  VK
    [+] Добавлена функция MainForm  (возвращает Applet.Children[0] или сам Applet, когда не используется кнопка приложения App button).  VK
    [*] Изменения в TTrayIcon: при присваивании значения TRUE свойству Active, оно принимает значение TRUE, только если операция прошла успешно. Так же добавлена функция ForceActive(sleeptime, timeout), которая делает несколько попыток активировать иконку в трее. Возможно, это исправляет проблему неуспешной регистрации значка области уведомлений для случая, когда приложение стартует при запуске системы.  AndreyRus, VK
    [+] Добавлена функция: ShowMsgCentered для показа сообщения, центрированного относительно указанной формы (или контрола).  VK
    [+] Добавлены функции: oem2char, char2ansi, SmartOem2CharRus (последняя только для конверсии русского языка из кодировки cp866 -> cp1251, когда строки текста содержат различную кодировку, или даже возможно уже были дважды "декодированы" по ошибке).  VK
    [+] Добавлены функции: ComputerName, UserName, ListUsers, IsUserAdmin.  VK
    [+] Добавлена функция:  ForceSetForegroundWindow (последующие вызовы  SetForegroundWindow для любых окон в системе срабатывают всегда, но ForceSetForegroundWindow должна быть вызвана, когда само приложение находится в фокусе ввода).  VK
    [+] Добавлена функция:  SendCommands2Wnd, которая позволяет посылать мгновенно большое количество нажатий клавиш окну (до 4K клавиш).  VK
    [+] Добавлена функция: ListMonitors, которая возвращает массив прямоугольников, соответствующих всем установленным в системе физическим и логическим дисплеям.  VK
    [+] Добавлена функция: MonitorAt(X, Y), возвращающая координаты (границы) дисплея, содержащего заданную точку. Если монитор не найден, возвращает прямоугольник основного дисплея.  VK
    [*] Небольшие изменения в TImgShow: изображение рисуется центрированным (эффект проявляется только для случая, когда размер контрола TImgShow не соответствует размеру изображения).  VK

  • AndreyRus © (25.07.13 19:44) [1]
    Спасибо! Завтра апробирую.
  • AndreyRus © (26.07.13 13:35) [2]
    Владимир, а зачем дублируется файл delphidef.inc в mck320.zip и kol320.zip?
  • AndreyRus © (26.07.13 13:37) [3]
    Считаю наличие файлов *.bak в дистрибутиве моветоном.
  • AndreyRus © (26.07.13 13:53) [4]
    Владимир, я по старой памяти храню содержимое mck320.zip и kol320.zip в одной папке KOL. В этих архивах есть файл KOLDEF.INC несколько, который отличается. Исходя из этого, правильно ли я понимаю, что хранить содержимое KOL и MCK в одном каталоге неверно?
  • Vladimir Kladov © (26.07.13 14:30) [5]
    Иногда MCK не обновляется, там осталась более старая версия koldef.inc. Наверное, когда-то это было зачем-то нужно. Просто берите более позднюю версию. Нет, я исходники храню в одной папке. Другие папки для отдельных компонентов. Хотя это ничему не противоречит. Просто пути легче прописывать, когда все в одну кучу свалено.
  • AndreyRus © (03.08.13 01:58) [6]
    Апробировал. Вроде полет нормальный.
  • L`Autour (23.08.13 20:03) [7]
    для компиляции с UNICODE_CTRLS пришлось:
    в KOL_unicode.inc:
    - заменить все LPSTR и LPCSTR на PKOLChar;
    в KOL.pas:
    - в конвертерах OEM <-> ANSI поменять PChar и string на PKOLChar и PKOLString
    - подправить проверку диапазона символов у smartOem2ansiRus

    function smartOem2ansiRus(const s: KOLString): KOLString;
       function good(const x, y: KOLString): Boolean;
       var i: Integer;
       begin
           Result := FALSE;
           if  Length(x) <> Length(y) then Exit;
           for i := 1 to Length(x) do
           begin
               if  x[i] = y[i] then continue;
               case x[i] of
               {$IFDEF UNICODE_CTRLS}
                 #$0410..#$044F{, #$0401, #$0451}:
               {$ELSE}
                 #$C0..#$FF{, #$A8, #$B8 }:
               {$ENDIF}
                 Continue;
               end;
               Exit;
           end;
           Result := TRUE;
       end;
    begin
       Result := oem2char(s);
       if  good(Result, s) then Exit;
       Result := ansi2oem(s);
       if  good(Result, s) then Exit;
       Result := s;
    end;

  • L`Autour (24.08.13 00:13) [8]
    И еще, может добавить директиву отключающую в ExecuteWait создание новой консоли? Примерно так:

    function ExecuteWait( const AppPath, CmdLine, DfltDirectory: KOLString;
    ...
     Result := FALSE;
     {$IFDEF APP_CONSOLE}
     Flags := 0;
     {$ELSE}
     Flags := CREATE_NEW_CONSOLE;
     {$ENDIF}
     if Show = SW_HIDE then
    ...



    А то ключ CREATE_NEW_CONSOLE не удобен, когда ExecuteWait используется при написании своего консольного приложения.
  • L`Autour (24.08.13 00:18) [9]
    или даже лучше так:
    ...
    Result := FALSE;
    if isConsole then
      Flags := 0
    else
      Flags := CREATE_NEW_CONSOLE;
    if Show = SW_HIDE then
    ...

  • gur © (17.09.13 14:17) [10]
    доброго времени суток уважаемый Владимир Кладов,

    есть ли варант добавить аналог CRT32 ?
    заранее спасибо
  • Vladimir Kladov © (18.09.13 16:55) [11]
    Зачем? Есть ведь crt и его аналоги для Delphi. Вообще-то KOL - для создания GUI-приложений, в основном. Можно делать консольные утилиты, но это как раз тот случай, когда интерфейс отсутствует. Делать интерфейс в консольном окне? Дороже выйдет.
  • Kirill © (19.09.13 10:16) [12]
    Владимир, а где сейчас хранится репозиторий с исходным кодом? В svn на sourceforge версия только 3.18.
  • L`Autour (19.09.13 14:59) [13]
    Kirill
    Он сделал свою ветку на SVN:
    http://sourceforge.net/projects/keyobjectslibrary/
  • Kirill © (19.09.13 15:24) [14]
    Там вообще исходного кода нет ни в git, ни в svn :(
  • L`Autour (20.09.13 05:56) [15]
    Kirill
    В files
  • Gur © (21.09.13 20:54) [16]
    To Vladimir Kladov -Crt для удобства - readkey
  • L`Autour (23.09.13 06:27) [17]
  • Gur © (23.09.13 09:33) [18]
    По ссылке прочитал, но там для клавиши esc а мне для любой клавиши надобно
 
Конференция "KOL" » Версия3.20 [Delphi, Windows]
Есть новые Нет новых   [118648   +58][b:0][p:0.002]