-
[+] Добавлено свойство для 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 -
Спасибо! Завтра апробирую.
-
Владимир, а зачем дублируется файл delphidef.inc в mck320.zip и kol320.zip?
-
Считаю наличие файлов *.bak в дистрибутиве моветоном.
-
Владимир, я по старой памяти храню содержимое mck320.zip и kol320.zip в одной папке KOL. В этих архивах есть файл KOLDEF.INC несколько, который отличается. Исходя из этого, правильно ли я понимаю, что хранить содержимое KOL и MCK в одном каталоге неверно?
-
Иногда MCK не обновляется, там осталась более старая версия koldef.inc. Наверное, когда-то это было зачем-то нужно. Просто берите более позднюю версию. Нет, я исходники храню в одной папке. Другие папки для отдельных компонентов. Хотя это ничему не противоречит. Просто пути легче прописывать, когда все в одну кучу свалено.
-
Апробировал. Вроде полет нормальный.
-
L`Autour (23.08.13 20:03) [7]для компиляции с UNICODE_CTRLS пришлось:
в KOL_unicode.inc:
- заменить все LPSTR и LPCSTR на PKOLChar;
в KOL.pas:
- в конвертерах OEM <-> ANSI поменять PChar и string на PKOLChar и PKOLString
- подправить проверку диапазона символов у smartOem2ansiRusfunction 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
... -
доброго времени суток уважаемый Владимир Кладов,
есть ли варант добавить аналог CRT32 ?
заранее спасибо -
Зачем? Есть ведь crt и его аналоги для Delphi. Вообще-то KOL - для создания GUI-приложений, в основном. Можно делать консольные утилиты, но это как раз тот случай, когда интерфейс отсутствует. Делать интерфейс в консольном окне? Дороже выйдет.
-
Владимир, а где сейчас хранится репозиторий с исходным кодом? В svn на sourceforge версия только 3.18.
-
L`Autour (19.09.13 14:59) [13]
-
Там вообще исходного кода нет ни в git, ни в svn :(
-
L`Autour (20.09.13 05:56) [15]Kirill
В files -
To Vladimir Kladov -Crt для удобства - readkey
-
L`Autour (23.09.13 06:27) [17]
-
По ссылке прочитал, но там для клавиши esc а мне для любой клавиши надобно