Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
2-1203607430
Павел
2008-02-21 18:23
2008.03.30
Нужна помощь!!!!!! Как конвертировать xls-файл в dbf файл?


2-1204193295
bigbro
2008-02-28 13:08
2008.03.30
WideString в элементах управления


2-1204444353
dmitry_12_08_73
2008-03-02 10:52
2008.03.30
Создание ресурса с файлом png


2-1204446203
махс
2008-03-02 11:23
2008.03.30
const в параметрах


2-1204113115
Прохожий 001
2008-02-27 14:51
2008.03.30
Как сделать так, чтобы при подключении firebird не вешал приложен





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский