Форум: "KOL";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
ВнизВерсия 2.64 Найти похожие ветки
← →
Vladimir Kladov (2007-06-02 19:52) [0]
Новости от 2 июня 2007 (KOL & MCK v2.64)
[*] Опция NEW_ALIGN (символ условной компиляции) устанавливается по
умолчанию, если только не задана опция OLD_ALIGN.
[*] Метод TObj.Free заменен свойством Free, которое просто вызывает
TObj.RefDec; метод RefDec теперь проверяет выполнение условие @Self <>
nil перед выполнением. Это изменение может быть не полностью
совместимо со всеми Pascal-компиляторами, поэтому добавлен символ
условной компиляуии OLD_FREE, позволяющий возвратиться к предыдущему
состоянию.
[*] Метод TStream.SetCapacity изменен и позволяет теперь уменьшать
Capacity. Это добавляет немного кода, поэтому добавлен символ условной
компиляции OLD_STREAM_CAPACITY, возвращающий это поведение в
предыдущее состояние.
[*] UNI
1. Для свойства TControl.Selection, параметр типа String заменен на
KOLString для нормальной рабоы в приложениях с символом UNICODE_CTRLS.
2. Для метода TC_InsertControl, так же String заменен на KOLString.
3. Свойство RE_Text исправлено для Unicode (как чтение, так и запись
значения).
[*] Свойства TControl.SelLength (то же, что LVItemCount), ItemSelected
исправлены для случая мемо, содержащего более 32767 символов.
Соответствующие методы изменены. Имеется сомнительный момент: при
проверке ItemSeleted для combobox-а, функция использует "неправильное"
значение 2 вместо 0 (так надо), и это работает нормально в Windows XP,
хотя в документации API SDK написано, что "0 must be there". Если у
вас есть другая версия Windows, где этот метод не работает правильно,
пожалйста, сообщите мне об этом.
[+] Функция WinVer изменена для беспечения возможности детектировать
Windows Server2003. В тип TWindowsVersion добавлено значение
wvServer2003 (между wvXP и wvVista).
[*] Функция DirectoryExists немного изменена и теперь на время
проверки устанавливает SetErrorMode для предотвращения системного
сообщения по поводу отсутствующего диска (CD/DVD, floppy, Zip-drive и
т.п.). По окончании проверки, предыдущее состояние обработки ошибок
восстанавливается. Аналогично, изменена функция DiskPresent (для
восстановления предыдущего режима: SetErrorMode использовалась и
раньше, но состяние не восстанавливалось).
[*] Добавлено свойство TStrListEx.ObjectCount для получения
актуального количества сохраненных Objects. В отличие от VCL, в
KOLовском TStrListEx свойство Objects сохраняется разжельно, и
вероятна ситуация, когда ObjectCount отличается от Count. Это ничему
не пртиворечит, т.к. список строк можно условно считать бесконечным
(свойство Items с индексами больше Count-1 просто возвращает пустую
строку).
[-] Метод TCanvas.TextExtent (и вызывающие его методы TextWidth и
TextHeight) наконец-то исправлены. Долгое время они работали неверно
на канве TBitmap.Canvas, разрушая дескриптор канвы. Теперь это
исправлено, и стало возможным использовать TextWidth / TextHeight без
шаманских танцев с бубном вокруг них.
[+] ToGRush обновлен: добавлена функция OwnerDrawMenuItem, которая
может быть легко использована для стилизации меню в приложении в
GRush-подобные расцветки (хотя градиент не используется).
[+] MCK Для зеркал TKOLMenu и TKOLPupupMenu, добавлено свойство
OwnerDraw, позволяющее устанавливатьили снимать свойство OwnerDraw для
всех пунктов меню одновременно с одним двойным кликом по свойству в
Инспекторе Объектов.
← →
Vladimir Kladov (2007-06-02 20:04) [1]Кстати, нашел интересную вещь.
Коло -древнейшее индоевропейское и доиндоевропейское (яфетическое) название Солнца(одновременно Кол - одно из названий полярной звезды.
Корневая основа "кол" типична для языков самых различных языковых семей. Его первоначальный смысл - "круг", что связано прежде всего с Солнечным "кругом". Интересно так же, что латинское название sol (Солнце)перекликается с русским "кол". Если записать его вот так: col, то в некоторых европейских языках его прочитают [кол], а в других [сол].
Слова с корнем "кол" встречаются во многих финно-угорских языках. Любопытно, что и название родины Ломоносова - Холмогоры (древнерусское Колмлгоры) происходит от древнечудского наименования данной местности Кольм - оно созвучно исконно русскому слову "холм", но генетически восходит к той общей доиндоевропейской лингвистической основе, которая связана с постоянно рождающимся и умирающим светилом Солнце-Коло (отсюда, кстати, и финская kalma - "смерть", "могила", и имя древнеиндийской богини смерти - Кали). Все это явственно свидетельствует о былой этно-лингвистической общности различных народов мира, казалось бы, таких непохожих теперь друг на друга.
Но и это еще не все. Индейцы-ацтеки (называвшие себя также мешики)считали себя этническими приемниками племени колуа (colua) (так их называл в своих посланиях испанскому королю великий завоеватель Эрнан Кортес) - прямого наследника древних тольтеков. В боливийских Андах, к югу от священного озера Титикака, на высоте четырех тысяч метров расположен знаменитый храмовый комплекс Тиануако, посвященный богу Солнца. Он открывается циклопическими, вытесанными из одного монолита Вратами Солнца с барельефом дневного светила. Уже инки - тоже солнцепоклонники - задолго до вторжения на их территорию испанских конкистадоров не знали, кем был построен поднебесный солнечный город. Не помнят этого, естественно, и индейские аборигены, ен имевшие письменности. Но поражает другое: индейцы аймара - исконные обитатели Андской областии молчаливые стражи Вечного города Солнца (им современный мир обязан культурой картофеля) - имеют еще одно, более древнее, название - колья. А их обширная страна, охватывающая ныне территорию Боливии, Северного Чили и части Аргентины, именовалась в старину Кольяо, со столицей Хатунколья. Наличие во всех трех словах архаичного корны "кол" свидетельствует о былом этнолингвистическом и культурно-мифилогическом единстве всех народов земли.
еще:
Русское коршун происходит от скифо-сарматских *кор-/кар с-ун - "Солнце - сияние", ср. скифо-сарматские кор-, кар-, кол-, кал- - "Солнце", со - "Солнце; сияние; жара; свет; глаз; яркий". Скифы - это сколоты, т.е. с колоты - "(люди) возле Солнца" (2). С другой стороны, скифо-сарматское скил-/скол- означает "сокол", ср. также русское сокол (Рябчиков 2001). Последнее слово может содержать корень кол- (коло - "Солнце") (Демин 1997: 121). В этом случае, скифо-сарматские скил-/скол- - "сокол", сколо-т- - "скифы" происходят от скифо-сарматских с- кил-/кол- - "сияние - Солнце".
Еще про день солнцестояния:
На Руси этот праздник называли "зимний коловорот" или "день рождения солнца", так как именно с этого момента солнце начинает "расти": день становится длиннее, а ночь короче. Здесь же: В Белоруссии и на Украине до сих пор святочную неделю называют "Коляда". В эти дни идут пиршества, увеселения, гадания, хождение ряженых, колядование. Аналогичное римским "календам" русское название "колядки" происходят из общего санскритского корня, где "кол" означает солнце или круг. Известно, что "круглое" имеет в русском языке корень "кол": колесо, кольцо, колобок, колодец, колокол, коловорот (солнцеворот). Например, у индийцев (по нынешний день) "Koleda" почитается за божество празднеств и так же называются некоторые обряды, а слово "koledovat" на языке хинди означает хождение детей по разным домам с песнями и плясками (!). Наконец, от этого же слова произошло в дальнейшем и "колдовство".
← →
MTsv DN © (2007-06-03 09:23) [2]Обновление доступно на http://www.kolnmck.ru/
2 Vladimir Kladov
Обновил все, что Вы просили... И сразу "косяк" вылетел.
Версия 2.64, при использовании USE_NAMES, в KOL_ASM.inc, в destructor TObj.Destroy;XCHG EAX, ECX
CALL TObj.Free <- ЗДЕСЬ Inline assembler error
POP EAX
Если я правильно понял изменения, то патч такой:XCHG EAX, ECX
{$IFDEF OLD_FREE}
CALL TObj.Free
{$ELSE}
CALL TObj.RefDec
{$ENDIF}
POP EAX
← →
MTsv DN © (2007-06-03 09:24) [3]На http://www.kolnmck.ru/ "неисправленная версия"
← →
Vladimir Kladov (2007-06-03 10:07) [4]С USE_NAMES не проверил. Поправим. Накопилось уже 2 мелких баг-фикса. Вечером выпущу 2.64а, наверное. Может, до вечера еще что накопается.
← →
MTsv DN © (2007-06-03 10:29) [5]И еще:
procedure TControl.SelectAll;
begin
SelStart := 0;
SelLength := -1; // this can be not working for some controls... //*//*
end;
8) У меня не заработало на ЕдитБоксе. Вылетало на вызове Perform в:function TControl.GetSelStart: Integer;
asm
{XOR EDX, EDX
MOVZX ECX, [EAX].fCommandActions.aGetSelStart
JECXZ @@check_aGetSelRange
PUSH EDX
PUSH EDX
PUSH ECX
PUSH EAX
CALL Perform
RET
@@check_aGetSelRange:}
MOVZX ECX, [EAX].fCommandActions.aGetSelRange
JECXZ @@exit
XOR EDX, EDX
PUSH EDX // space for Result
PUSH EDX // 0
LEA EDX, [ESP+4]
PUSH EDX // @ Result
PUSH ECX // EM_GETSEL
PUSH EAX
CALL Perform
POP ECX // Result
@@exit:
XCHG EAX, ECX
end;
Выделенная строчка решила проблему...
← →
Vladimir Kladov (2007-06-03 13:54) [6]Кончайте уже строчки жирным выделять, я в dolphinе их не вижу жирными, внутри code. Да, xor edx,edx я забыл вернуть из верхнего блока, когда закомментарил его за ненадобностью. Поправить. Это уже на версию тянет.
← →
Vladimir Kladov (2007-06-03 18:06) [7]
Новости от 3 июня 2007 (KOL & MCK v2.65)
[-] Восстановлена совместимость с Delphi2 / Delphi3 (MCK).
[-] TControl.RESetOverwrite исправлен (значение не присваивалось без
предварительного чтения значения свойства).
[-] TObj.Destroy исправлен (asm-версия) для случая USE_NAMES (не
компилировалось).
[-] TControl.GetSelStart исправлен (asm-версия).
← →
Galkov © (2007-06-03 19:06) [8]
> Vladimir Kladov (03.06.07 18:06) [7]
> [-] TControl.GetSelStart исправлен (asm-версия).
Все вопросы в топике:
http://delphimaster.net/view/11-1180718313/
- сняты :))
← →
Vladimir Kladov (2007-06-03 20:31) [9]остается только вопрос насчет "хитрого" совмещения в SelLength одного Perform"а с одними и теми же параметрами для 4 видов контролов, при котором по документации вроде бы есть игнорирование официального требования must be 0 - для комбобокса. Завтра посмотрю для NT4, и еще на работе есть виртуальная машина. Жаль, Виста много места занимала, пришлось снести. Но дкмаю, и с ней все должно быть в порядке, единственное подозрение на NT4.
← →
MTsv DN © (2007-06-03 21:28) [10]> Новости от 3 июня 2007 (KOL & MCK v2.65)
Обновление доступно на http://www.kolnmck.ru/
← →
Vladimir Kladov (2007-06-04 15:50) [11]И все-таки промахнулся я с ItemSelected[] для комбо. По идее, не очень часто потребно, так что недельку, наверное, подождет, все-таки. Кому вдруг срочно надо, Паскаль:
{$IFDEF ASM_VERSION}
{$ELSE ASM_VERSION} //Pascal
function TControl.GetItemSelected(ItemIdx: Integer): Boolean;
var SS: Integer;
begin
if fCommandActions.aGetSelected <> 0 then
begin
SS := Perform( fCommandActions.aGetSelected, ItemIdx, LVIS_SELECTED );
{ Though it is written in docs that for combobox lParam for CB_GETCURSEL
is not used and _must_ be 0, therefore this code is working for
combobox too. }
if fCommandActions.aGetSelected <> CB_GETCURSEL then
ItemIdx := 1;
Result := SS = ItemIdx;
end
else
begin
SS := SelStart;
Result := (ItemIdx >= SS) and (ItemIdx < SS + SelLength);
end;
end;
{$ENDIF ASM_VERSION}
Ассемблерная часть в KOL_ASM.inc:function TControl.GetItemSelected(ItemIdx: Integer): Boolean;
asm
MOVZX ECX, [EAX].fCommandActions.aGetSelected
JECXZ @@check_range
PUSH 1
CMP CL, CB_GETCURSEL and $FF
JNZ @@1
MOV [ESP], EDX
@@1:
PUSH LVIS_SELECTED // 2
PUSH EDX
PUSH ECX
PUSH EAX
CALL Perform
POP EDX
CMP EAX, EDX
SETZ AL
RET
@@check_range:
PUSH EBX
PUSH ESI
XCHG ESI, EDX
MOV EBX, EAX
CALL GetSelStart
XCHG EBX, EAX
CALL GetSelLength
SUB ESI, EBX
JL @@ret_false
CMP EAX, ESI
@@ret_false:
SETGE AL
POP ESI
POP EBX
end;
← →
Vilyammb (2007-08-08 21:28) [12]Hello! great idea of color of this siyte!
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.041 c