Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Вниз

Версия 2.23+Collapse   Найти похожие ветки 

 
Vladimir Kladov   (2005-12-19 20:42) [0]

Новости от 19 декабря 2005 г.

Новости KOL и MCK (v2.23):
[+]KOLadd: добавлен объект TOpenDirDialogEx (альтернатива объекту TOpenDirDialog, не использует SHBrowseForFolder, работает намного быстрее).  MCK: добавлено свойство TKOLOpenDirDialog.AltDialog, позволяет переключиться на использование альтернативного диалога установкой значения в true.
[*]KOL: событие TControl.OnTVExpanding должно теперь возвращать TRUE (для обоих asm- и pas- версии) для того, чтобы предотвратить распахивание, и FALSE для того, чтобы позволить (ранее это различалось для asm- и pas- версии).
[+]KOL: добавлен метод TControl.RE_WSearchText.
[+]KOL: добавлена функция DirIconSysIndexOffline.
[+]KOL: добавлено свойство TMenu.ItemHelpContext.
[-]KOL: доступ к свойству TThread.PriorityBoost изменен на использование динамической линковки (исправление для Win9x).
[-]KOL: исправлено создание и разрушение объекта TImageList.
[*]KOL: изменен метод TBitmap.Convert2Mask.
[*]KOL: изменена работа метода TControl.AutoSize несколько (MinWidth и MinHeight берутся во внимание при автоматическом изменении размеров).
[*]MCK: генерация П-кода обеспечена для всех зеркал всех контролов и объектов всего стандартного множества объектов KOL. С этой версии KOL/MCK 2.23, выходит в жизнь система Collapse , которая позволяет компилировать П-код в байт-код и добавляет эмулятор этого байт-кода в приложение. См. Collapse в секции Инструменты.


 
RA ©   (2005-12-21 09:37) [1]

Кто-нибудь на Д5 колапс пробовал?
Что-то он у меня постоянно ругается на строку
CMP byte ptr[EAX], $E4
Говорит, мол инструкция по адрессу ...
Да, пытаюсь компильнуть просто пустой поект. Сегодня попробую взять проект из демки.


 
ECM ©   (2005-12-21 19:48) [2]

Решил тут вот по свободе начать разбираться с Collapse...:)
- Распаковал KOL+MCK 2.20, сделал update до 2.23
- Скачал последний архив Collapse, почитал описалово...
- Решил создать простой MCK-проект c одной пустой формой
- Выполнил все рекомендации из UsingCollapseInMCK_ru.htm
При попытках собрать заметил следующее:
 1) UsingCollapseInMCK_ru.htm: скопировать в директорию проекта файл Pcompiler.cfg из папки COLLAPSE\Units и настроить  - Нет такой папки в архиве - ну и ладно,  этот файл нашелся в Collapse\TestCollapseX\  ... :))
 2) Компилятор ругается на отсутствие InstallCollapse - в доке не описано,а МСК автоматом не добавляет uses Collapse - ерунда - пропишем руками...
 3) Ошибка компилятора в Collapse.pas, line 262 - Operand size mismatch (У меня Delphi6)
 OR    AL,$FFFFFFF0  исправил на OR AL,$F0  - так понимает нормально :))
идем дальше....
 4) Компилятор начинает ругаться на отсутствие функции AddWord_StoreByte... в BaseLib.pas такой функции нет :( - но есть AddWord_Store.  Решил что это рудимент в МСК - заменил генерацию этой функции в mirror.pas (строки 8631,14681,14954) на AddWord_Store - не знаю только корректно ли это?
 5) Нет файла CollapseProcTable1.inc - остальные есть(CollapseProcTableX.inc) а этот никак... - создал пустой файл руками
 6) Undeclared identifier в CollapseProcTable2.inc:
{ $C0 } DD TControl.SetBorder
{ $C1 } DD NewForm
{ $C2 } DD TObj.Create
{ $C3 } DD TControl.SetCtl3D <= Undeclared identifier
{ $C4 } DD TControl.Add2AutoFree
{ $C5 } DD TControl.SetHasBorder <= Undeclared identifier
{ $C6 } DD TControl_.SetCanResize
Закоментировал пока эти строки...

Собралось!!!  
Буду ковыряться дальше


 
homm ©   (2005-12-22 21:33) [3]

Delphi5:
Присутствуют ошибки (см ECM ©   (21.12.05 19:48) [2]):
1), 2), 5)

По поводу второго - При компиляции Collapse во время одной из стадий вылетает сообщение что какой-то файл не найден - разглядеть нереально, а где посмотреть незнаю.

Кроме того возникло много вопросов по файлу PCompiler.cfg:
Он для ручной или афтаматичецкой сборки? Неужели его создание нельзя как либо оптимизировать? Нужны ли кавычки в путях?


 
Vedun   (2005-12-22 22:23) [4]

2 homm
А твои компоненты GRushControls с Версия 2.23+Collapse работают?


 
homm ©   (2005-12-23 08:42) [5]


> homm ©   (22.12.05 21:33) [3]

> По поводу второго - При компиляции Collapse
Поправочка: это насечет пятого, а не насечет второго.

GRushControls работают как и с предидущими версиями. Т.Е. В XP ВСЕ отлично, контролы могут быть прозрачными, рисуются в миг, не вылетают нигде.

В 9X: Ну неужели у меня у одного Convert2Mask всегда глючит? Мне уже чесно говоря порядком надоело слать Владимиру одни и теже демы с разными проблемами от версии к версии. Мне чесно говоря уже глубоко **** на проблемы производительности этой функции, лиш бы она работала. Но в очередной раз ВЕРХНЯЯ СТРОКА рисуется с какойто псевдо случайной прозрачностью пикселей. Это касается ASM версии. PAS я как запустил, так сразу и похерил прямо в Kol.pas у себя. Она вообще DDB никак не выводит (ни одного opaque пикселя). Владимир, ведь можно же хотябы DemoProject55 и 66 прогнать из архива mail.zip из письма от 29 Oct 2005 21:57:00 +0600. Вот выложу его еще сюда с откомпилеными из под v2.23 экзехами. Кстати они до сих пор выглядят по разному. (поясняю для всех остальных: Они отличаются только способом загрузки битмапа - 66 грузит из файла, и отображается  коректнее чем 55, который грузит из ресурсов).
http://www.homm86.narod.ru/files/mail.zip

ЗЫ Завтра ровно месяц, как Владимир обещался посмотреть мою реализацию прозрачности контолов. Осталось два года и одиннадцать месяцев. Тем кто пользуется уже сейчас, не забудте WndProcPaint подправить, с ней Владимир тоже хотел что-то сделать, не сделал пока...

ЗЗЫ Может я слишком резко выразил свои мысли, просто действительно накипело.


 
MTsv DN ©   (2005-12-23 13:07) [6]

2 homm
Ну неужели у меня у одного Convert2Mask всегда глючит?
Нет... Не только у тебя... Я вообще использую KOL 2.23, а Convert2Mask из 2.21. И gRush 0.29... Просто в такой связке, под Windows от 98 и выше, все работает корректно, быстро и без глюков...

С Уважением MTsv DN


 
LazyC0DEr   (2005-12-23 18:10) [7]

2 ECM
По поводу 4) , мне кажется, что надо в baselib.pas добавить


{$IFDEF Pcode}
procedure AddWord_StoreByte;
{$IFDEF Psource}
AddWord_StoreByte PROC SMART //--by PCompiler:line#947
 Baselib.ParamWord + Baselib.StoreB
 EXIT
 ENDP
{$ENDIF Psource}
{$ELSE OldCode}
procedure AddWord_StoreByte;
asm
 //
end;
{$ENDIF Pcode}


На счет 6) у меня помогло добавление подчеркивания после TControl в mirror.pas

Так же в baselib.pas пришлось добавить
 
  procedure xNOT;
  asm
     not  dword ptr [esp+4]
  end;

 
  procedure xyAnd;
  asm
     pop  ebx
     pop  eax
     and  [esp], eax
     jmp  ebx
  end;

 
  {$IFDEF Psource}
  &   PROC INLINE
      Baselib.xyAND
      ENDP
 {$ENDIF Psource}
 {$IFDEF Psource}
  ~   PROC INLINE
      Baselib.xNOT
      ENDP
 {$ENDIF Psource}


 
Vladimir Kladov   (2005-12-23 21:06) [8]

Я обновил версию до 2.24.

2homm: я бываю очень занят, и не только программированием. Есть еще и семья, и работа. Давно бы уже нашли багу в асм-коде сами и выслали что исправить. Или вы думаете что это так легко: сидеть в асм-командах разбираться, баги отлавливать.


 
homm ©   (2005-12-23 23:42) [9]


> Давно бы уже нашли багу в асм-коде сами и выслали что исправить
Эта фраза у меня кроме улыбки сегодня ничего не вызывает. СЕГОДНЯ ровно мэсаЦ ......

Вот только та версия прозрачности, что Вы включили устарела. Конечно и мой промах тоже, что не соощил об изменениях, но согласитесь не всегда охото и приятно общатся с человеком в одностороннем порядке. Последняя версия на www.homm86.narod.ru. Кроме того я неоднократно говорил, а Вам в особености, что прозрачность (и ваша в том числе) не работает правильно без правки WndProcPaint. Нужно либо убрать строки
if fUpdRgn <> 0 then
 SelectClipRgn( fPaintDC, fUpdRgn );

либо, если Вы так хотите сохранить В КОРНЕ НЕ ПРАВИЛЬНУЮ РЕАКЦИЮ НА свою прозрачность для контролов, использующих переопределение OnPaint, нужно изменить хотябы так:
if (fUpdRgn <> 0) and not (Self_.homm_fSelfRequirePaint or
   Self_.homm_fParnetRequirePaint) then
 SelectClipRgn( fPaintDC, fUpdRgn );

Хотя я например не понимаю зачем теперь нужна старая прозрачность. Я бы предпочел, чтобы Вы заменили прозрачность полностью, а на случай проблем ввели бы какой нибудь символ (версии на четыре - пять), включающий старую прозрачность вместо новой. Но так бы предпочел я, а как будет на самом деле решать конечно же Вам.


 
SPeller ©   (2005-12-24 06:59) [10]

homm ©   (23.12.05 23:42) [9]
Эта фраза у меня кроме улыбки сегодня ничего не вызывает

Зря ты так. У человека работа, семья и личные дела, и он никому ничего не должен. Поэтому лучше воспользуйся советом самостоятельно найти баг. А насчет обновок - надо всё писать лично письмами, а не на форуме.


 
Vladimir Kladov   (2005-12-24 22:54) [11]

Выкладываю версию 2.25.

Новости от 24 декабря 2005 г.
 

Новости KOL и MCK (v2.25):

[-]MCK: устранено создание лишних файлов xxxx.pas_1.inc вместо xxxx_1.inc.
[-]MCK: исправлена генерация П-кода для большинства контролов и объектов.
[-]Collapse: некоторые исправления в PCompiler, Collapse.pas, документации, дистрибутиве. Теперь он в основном функционален.
[*]KOL: небольшие изменения в исходном коде (в основном удаление устаревшего и закомментированного кода, чтобы уменьшить файл до 64K строк и отладчик Delphi опять смог работать).

Collapse уже вполне рабочий. На 3х (очень больших по числу контролов и по размерам меню) формах код уменьшился на 10К, после общего сжатия upx-ом - на 3К (т.е. байт-код жмется также примерно втрое).


 
Vladimir Kladov   (2005-12-25 11:37) [12]

Впрочем еще не все. Только что поправил меню и попап-меню, но еще что-то не так с обработкой нажатий кнопок на тулбаре, причем в ситуации, когда на форме 2 и более тулбаров, причем в одном случае все ок, а в другом какие-то неприятности. Еще вылезла проблема с длинными строками, тоже вылечил. Может сегодня еще обновление будет. Вот таблица сравнения размеров на 4 формах, с которыми я успел плотно поработать и коллапсировать:


 новый старый
 размер размер

form1  11156 26036
form2    5900 14220
formOpen                2292   5540
formWait             264     556

всего            1922048 1948672 -26624


-26К может и немного, но у меня 40 форм с лишком, и некоторые еще больше.


 
homm ©   (2005-12-25 12:18) [13]


> Давно бы уже нашли багу сами и выслали что исправить

Нашли: OnPaint делает нерабочим Transparent и DoubleBuffered
Сами: Убрать if fUpdRgn <> 0 then SelectClipRgn( fPaintDC, fUpdRgn );
Выслали: См [9] и давнишнее письмо.

Думаете стандартные контролы при реакции на WM_PAINT делают что-то подобное? Зачем же при переопредилении прорисовки это добавлять?

ЗЫ Абсолютно согласен с SPeller, в том что Вы никому ничего не должны, даже обяснять причины по которым у вас нет времени, просто сами же просите - присылать исправления, и не реагируете никак.


 
Vladimir Kladov   (2005-12-25 20:47) [14]

версия 2.26:

Новости от 25 декабря 2005 г.

Новости KOL и MCK (v2.26):
[-]MCK: изменено правило сравнения новой (сгенерированной) версии кода с предыдущей версией в inc-файле: теперь не учитывается код, полученный в результате работы П-компилятора (меньше изменений inc-файлов на дисек, более быстрая работа Delphi)
[-]MCK: испрвлена генерация П-кода для оставшихс объектов (надеюсь, теперь действительно большинство из них готово к работе с Collapse).
[*]KOL: небольшие изменения в WndProcPaint (удалено клипование по fUpdRgn).

Я про эту строку не понял. Сначала шлете письмо, в котором говорите, что она мешает. Потом еще кучу писем, и никакого упоминания. Я так решаю, что уже не мешает. А теперь опять про нее вспоминаете. Аккуратнее письма надо писать, и оформлять изменения аккуратно. Уж во всяком случае, должно быть понятно, что, куда, вместо чего и почему. На всестороннее исследование присланного мне кода у меня нет ресурсов. Или мне трудно поверить, что у меня есть свои планы, и что, если появляется свободное время, я в первую очередь буду делать то, что мне кажется важнее, чем разбор почты. Сейчас для меня важнее закончить collapse, уменьшить свой большой проект, чтобы иметь возможность дальше с ним работать. Мои планы на новогодние каникулы - полностью заняться коллапсом. Так что доделывайте прозрачность и буферизацию до логического финала, шлите конечный код, вставим ВМЕСТО старого - с превеликим удовольствием. Я же верю что оно лучше прежнего, какие претензии к моей любви к прежнему коду. Просто надо будет тестить на совметимость старых приложений, а не только GrushControls (которых у меня кстати и нет вовсе). С Наступающим!


 
MTsv DN ©   (2005-12-26 08:40) [15]

Всем привет...

2 Vladimir Kladov
Владимир, Вы слегка "накосячили" с линками на родном сайте (.../kolmck225to225.zip -> .../kolmck225to226.zip) и с самим апдейтом kolmck220to225.zip (вторая версия - это 2.26, и внутреннее имя в upd-файле правил в HEX-редакторе). Причем, прогрейженный kolmck220to226 KOL (не KOL.PAS, другие PAS"ы), отличается от грейженного kolmck225to226.....

2 ALL
Обновил сборку: KOLnMCK 2.26 (26.12.2005) + KOLadd (19.12.2005) + fakeVariant.pas, по адресу: http://www.uus4u.com/download/modules/KOLnMCK/KOLnMCK.rar

а также? для тех кто собирается использовать gRush Controls НЕ ТОЛЬКО в Windows XP:
KOLnMCK 2.26 with Convert2Mask v.2.21 (26.12.2005) + KOLadd (19.12.2005) + fakeVariant.pas, по адресу: http://www.uus4u.com/download/modules/KOLnMCK/KOLnMCK_oldC2M.rar
gRush Controls 0.29 (01.11.2005), по адресу: http://www.uus4u.com/download/modules/KOLnMCK/grush029.rar

Не забудьте сделать ReBuild KOLnMCK и ВСЕХ ПАКЕТОВ

P.S. Такая связка KOL и gRush работает корректно, быстро и без глюков под все Windows (не тестировал под Windows 95 и Vista...и 3.1 :о) )...
P.S.S. Да простит меня homm за перепаковку архива :о)

ПОЗДРАВЛЯЮ ВСЕХ С НАСТУПАЮЩИМ НОВЫМ ГОДОМ И РОЖДЕСТВОМ !!! ЖЕЛАЮ ВСЕМ СЧАСТЬЯ И УСПЕХОВ !!!

С Уважением MTsv DN


 
homm86   (2005-12-26 11:34) [16]

2MTsvdn
дак в 0.30.1 же поправлена 9х


 
MTsv DN ©   (2005-12-26 11:49) [17]

Привет...

Не тестил еще... Не было времени...

С Уважением MTsv DN


 
Vladimir Kladov   (2005-12-26 20:17) [18]

ссылку я поправил, а вот различий не нашел. Только файл VERSION в одном случае говорит 220to226 а в другом 220to225. Проверял в WinMerge.


 
MTsv DN ©   (2005-12-26 21:23) [19]

Привет...
Извиняюсь... "Приглючилось"...вернее,папку перепутал :о)
С Уважением MTsv DN


 
Vladimir Kladov   (2005-12-29 17:08) [20]

Выпустил 2.27:

Новости от 29 декабря 2005 г.

Новости KOL и MCK (v2.27):

[*]MCK: еще изменения для минимизации числа сохранений inc-файлов на диск и ускорения работы в Delphi

[-]KOL: в Rich Edit, исправлено свойство TControl.RE_URL.

Прочие новости:

[+]добавлен архив KOLODBC для работы с базами данных из KOL и VCL через ODBC.


 
MTsv DN ©   (2005-12-29 19:13) [21]

KOLnMCK 2.27 (29.12.2005) + KOLadd (19.12.2005) + fakeVariant.pas, по адресу: http://www.uus4u.com/download/modules/KOLnMCK/KOLnMCK.rar

А также? для тех кто собирается использовать gRush Controls НЕ ТОЛЬКО в Windows XP:
KOLnMCK 2.27 with Convert2Mask v.2.21 (29.12.2005) + KOLadd (19.12.2005) + fakeVariant.pas, по адресу: http://www.uus4u.com/download/modules/KOLnMCK/KOLnMCK_oldC2M.rar
gRush Controls 0.29 (01.11.2005), по адресу: http://www.uus4u.com/download/modules/KOLnMCK/grush029.rar

Не забудьте сделать ReBuild KOLnMCK и ВСЕХ ПАКЕТОВ

ПОЗДРАВЛЯЮ ВСЕХ С НАСТУПАЮЩИМ НОВЫМ ГОДОМ И РОЖДЕСТВОМ !!! ЖЕЛАЮ ВСЕМ СЧАСТЬЯ И УСПЕХОВ !!!

С Уважением MTsv DN


 
homm ©   (2005-12-29 19:27) [22]

2 MTsv DN

> P.S.S. Да простит меня homm за перепаковку архива :о)
За это конечно прощу, НО я же не раз говорил не использовать присланый мной для ЛИЧНОГО пользования в КОНКРЕТНОМ приложении, котором уже не имело смысла вручную править dfm"ы, файл MCKGRushControls.pas в своих демах, а вместо этого ты его в открытый архив воткнул.

2 Kladoff
Пись-пись-пись-письмо-о-о-о!

Any other
Может есть мОзги с глубокими познаниями по системе сообщений Windows, или просто люди с свободным временем и возможностью покапатся в MSDN? Милости прошу смотреть такой вопрос:
http://delphimaster.net/view/4-1132859053/


 
Vladimir Kladov   (2005-12-29 20:14) [23]

не получал писем от homm с 3 декабря. То ли что-то с почтой, то ли не знаю, но последнее время поток спама ушел в ноль. Я получаю максимум 5-10 сообщений против прежних 40-80, так что пропустить мимо просто невозможно.


 
homm ©   (2005-12-29 20:27) [24]

насчет колапса:
{ $C0 } DD TControl.SetCtlColor --> { $C0 } DD TControl_.SetCtlColor
{ $C7 } DD TControl_.SetEraseBackground --> Нет такого метода вовсе
Зачем столько дебага в компилере. У меня, после вытряски лишнего стал 51к весить, а работает как раньше.

насчет EditBox:
Раньше не мог поменять выравнивание текста. Причем смотрел гдето в версии 1.80. Сейчас выравнивается (вроде в новостях небыло заметок), но нижняя полоса прокрутки не прорисовывается (вообще никак, остается то, что было до нее)


 
homm ©   (2005-12-29 20:34) [25]


> Vladimir Kladov   (29.12.05 20:14) [23]
Не проблема:
http://www.homm86.narod.ru/files/2kladov.zip
там и текстовик и вложение (UPD файл).


 
homm ©   (2005-12-29 22:25) [26]

Взялся за приручение колапса для GRush. Сразу вошел в ступор - вот в UnitX_1.inc обычно с
{ KOL MCK } // Do not remove this line!
const Sizeof_TForm1 = Sizeof(TForm1);
type TControl_ = object( TControl ) end;
type TObj_ = object( TObj ) end;
type _TObj_ = object( _TObj ) end;

начинается. А как туда
type TGRushContol_ = object( TGRushContol ) end; то вставить?


 
homm ©   (2005-12-30 08:28) [27]

PcodeProgrammingMCKcomp_ru.htm

> P_ProvideFakeType
> Этот специальный метод добавлен в предок всех зеркал невизуальных
> объектов с тем, чтобы возможно было добавить в генерируемый
> inc-файл формы объявления вроде type TThread_ = object(
> KOL.TThread ) end; и получить таким образом доступ к защищенным
> (protected) полям и методам объекта
А визуальным, прошу прощения, лапу сосать?

ЗЫ Колапсу в гршах быть! Процнтов на сорок уже готово. Копипаст в MCK рулит!


 
homm ©   (2005-12-30 08:47) [28]

TKOLCustomControl.P_DoAssignEvents
if EventAssignProc[ I ] then
     begin
       if p = "" then p := "Set" + s
       else p := s;
       {P}SL.Add( " LoadSELF Load4 ####T" + ParentKOLForm.FormName + "." +
         ParentForm.MethodName( EventHandlers[ I ] ) );
       {P}SL.Add( " C2 TControl_." + p + "<1>"
                  );
     end

А кто же о GRush"ах подумает?


 
homm ©   (2005-12-30 09:27) [29]

Ширина строк, загруженых
LoadAnsiStr "Button1" #0
становятся больше на несколько пикселей (может пробел в конце?).


 
homm ©   (2005-12-30 09:40) [30]

[29]: Сори, мой косяк. Все потому что свойство ContentOffsets для колапса не сделал. А не сделал потому что не могу понять как вызвать
procedure SetAll_ContentOffsets(Val: TRect);


 
Vladimir Kladov   (2005-12-30 10:37) [31]

для визуальных есть вроде бы TControl_, оно уже определено. Свои данные которые через CustomData / CustomObject - должно было бы видно определение своей структуры (хотя я еще не пробовал).

А зачем такая спешка? Переелывать стоит под П-код, если уже не планируется изменения в коде. Иначе потом опять все переделывать. П-код переделывать не так просто как паскаль.


 
ECM ©   (2005-12-30 10:55) [32]


> [+]добавлен архив KOLODBC для работы с базами данных из
> KOL и VCL через ODBC.

Ну вот... только сам сел рисовать KOLODBC.... :))
Thanx!!!


 
homm ©   (2005-12-30 12:09) [33]

Я так понимаю, что изначально Вы предпологали, что наследник TControl, это что-то вроде вашего
THilightMemo = object( TControl )
 protected
   procedure Init; virtual;
   function GetEdit: PHilight;
 public
   property Edit: PHilight read GetEdit;
   destructor Destroy; virtual;
 end;

Но гн Сидоров написал статью, про то как нужно с его сточки зрения писать компоненты для KOL (и по видимому не нужно с вашей). Так уж вышло что я смотрел на эту статью и исходники RBControls, а не в исходники HilightMemo и не знал как правильно. В результате у моих компонентов бешеное количество свойств SetXXXX у объекта TGRushControl вместо TGRushData. И все их мне нужно видеть в XXX_1.inc. Хотя я не понимаю, как поможет если эти Set/GetXXXX будут у CustomObj, ведь они все равно останутся в секции protected, и понадобится их Fake.

А вот насчет P_DoAssignEvents придется свою версию делать. Может Вам ее сделать виртуальной?

Еще мне кажется что Вам было бы неплохо взятся за зеркало для HilightMemo - убъете сразу трех зайцев.
1) Отличное зеркало для отличного компонента - всегда отлично.
2) Посмотрте на Колапс с моей точки зрения, увидете то о чем я говорю.
3) Отличный солюшн о том, как писать колапс зеркала именно для наследованных компонентов.

ЗЫ
> Переелывать стоит под П-код, если уже не планируется изменения
> в коде.
Модуль MCKGRushControls.pas я уже версий так пять не трогал.

ЗЗЫ
> А зачем такая спешка?
Дык сессия же с 7-го числа ;)


 
Vladimir Kladov   (2005-12-30 12:31) [34]

Мне по работе надо было, требование заказчика: никаких ADO/MDAC ставить нельзя, БД MS SQL 6.5, NT4SP5 IE3. Секретность, все что новее требует сертификации. Так что я вынужден был.

А поле для доделки еще есть: нет работы с блобами, нет параметров (мне-то они не нужны, я без них обходиться привык, а насчет большей эффективности этого механизма очень не уверен).

Кстати без ADO приемка от сервера больших объемов данных стала намного быстрее. И появилась возможность ускорять работу вдвое: несколько запросов, возвращающих result sets, объединяются в один, и сервер их пытается запараллелилить, и можно их получать через More.

2homm: письмо получил, ответ отправил.


 
Vladimir Kladov   (2005-12-30 12:32) [35]

SetAll_ContentOffsets - если параметр var или const то будет проще, потому что просто передается указатель на структуру.


 
homm ©   (2005-12-30 12:48) [36]

Встроеный ASM ругается на строковую константу длиной всего 163 символа. (D5)


 
homm ©   (2005-12-31 16:36) [37]

MaxProgress не ставится в Колапсе. SetMaxProgress принимает 2 параметра (первый - индекс).

До нового года остальсь 6 часов. Всех с наступающим!


 
Vedun   (2006-01-03 17:22) [38]

Решил попробовать Коллапс. Сделал проект с большим кол-вом контролов. После компиляции П-кода и проекта вцелом (с Pcode) размер exe уменьшился. Но в работающей программе все EditBox и некоторые Group залиты черным цветом. При компиляции с noPcode все работает нормально.
Тогда создал новый проект с одним EditBox на форме. Откомпилировал с Pcode - все нормально, ЭдитБокс белый, а не черный.
Сегодня буду разбираться, когда появляется чернота.


 
Vladimir Kladov   (2006-01-04 15:06) [39]

Новости от 4 января 2006 г.

Новости KOL и MCK (v2.28):

[*]KOL: добавлен символ условной компиляции USE_PROP: если он есть в свойствах проекта, то работает прежний метод GetProp/SetProp для ассоции объекта TControl со своим окном, иначе (теперь по умолчанию) используются GetWindowLong / SetWindowLong и ассоциация сохраняется в поле GWL_USERDATA (чуть быстрее, чуть меньше размер кода, но поле GWL_USERDATA в этом случае не может использоваться для других целей).

[*]KOL: свойства TControl.DoubleBuffered, TControl.Transparent полностью заменены новым, полностью переработанным кодом от homm.

[-]KOL/MCK: восстановлена совместимость с Delphi2/Delphi3 (символ NOT_USE_KOLCTRLWRAPPER включается для этих старых версий Delphi для полного предотвращения использования KOL-контролов (wrappers) на этапе разработки).

[*]KOL: небольшие изменения в реализации графических контролов (градиентная панель теперь может быть родителем графических контролов не утрачивая свою градиентную заливку).

[-]KOL: исправление в функции NewDibBitmap: память для изображения DIB выделяется с небольшим запасом (16 байт) для предотвращения записи мимо выделенной памяти в методе TBitmap.Convert2Mask.

[-]MCK: исправлена генерация П-кода для TControl.MaxProgress.
Прочие новости:

[+]обновлен пакет Collapse (переписан PCompiler, и работает теперь за меньшее число проходов, некоторые другие изменения).


 
homm ©   (2006-01-04 17:29) [40]


> [*]KOL: свойства TControl.DoubleBuffered, TControl.Transparent
> полностью заменены новым, полностью переработанным кодом
> от homm.
От себя добавлю, что новая прозрачность нисщадно тестировалась Владимиром около недели. В ходе тестирования было выловлено большое количество глюков (в том числе и в КОЛ, в том числе и не всегда даже относящихся к прозрачности непосдедственно), поправлены некоторые фундоментальные (я бы даже сказал догматические) функции KOL (причем чаще в сторону удаления более не нужного кода), счетчик версий самой функции равен примерно десяти.

Собственно что дает новая функция?
1) Контролы НЕ моргают своей неклиентской частью.
2) Количество перерисовок значительно сокращено.
3) Она значительно легче предидущей прозрачности (1472 байта против 3172 в версии 2.27).
4) Новую прозрачность можно не только ставить, но и УБИРАТЬ! Этим до сих пор грешат многие КОЛовские свойства. Новая прозрачность и буферизация же может быть назначена и убрана в любом порядке и не влияет на производительность после отключения (чего не скажеш о предидущем решении).

ЗЫ Знаю, что хвастать не хорошо, прочто это мой первый ЗНАЧИТЕЛЬНЫЙ, вклад в КОЛ (надеюсь не посленний) :)


 
Vedun   (2006-01-04 17:35) [41]

Для чего создаются файлы CollapseProcTable*.inc? Дело в том, что не всегда создается CollapseProcTable1.inc, без которого отказывается компилироваться весь проект. Поэтому хотелось бы знать, что это за файлы.


 
homm ©   (2006-01-04 18:07) [42]

Владимир, а что вот с ЭТИМ вот делать?

CollapseProcConst.inc:
************
 n_TGRushControl__SetAll_Antialia = $12A0;
 n_TGRushControl__SetAll_BorderRo = $13A0;
 n_TGRushControl__SetAll_BorderRo = $14A0;
 n_TGRushControl__SetAll_BorderWi = $15A0;
 n_TGRushControl__SetAll_ColorOut = $16A0;
 n_TGRushControl__SetAll_ColorTex = $17A0;
 n_TGRushControl__SetAll_DrawFocu = $18A0;
 n_TGRushControl__SetAll_DrawProg = $19A0;
 n_TGRushControl__SetAll_DrawProg = $1AA0;
 n_TGRushControl__SetAll_GlyphIte = $1BA0;
 n_TGRushControl__SetAll_Gradient = $1CA0;
 n_TGRushControl__SetAll_ShadowOf = $1DA0;
 n_TGRushControl__SetDef_BorderCo = $1EA0;
 n_TGRushControl__SetDef_BorderRo = $1FA0;
 n_TGRushControl__SetDef_BorderRo = $20A0;
 n_TGRushControl__SetDef_BorderWi = $21A0;
 n_TGRushControl__SetDef_ColorFro = $22A0;
 n_TGRushControl__SetDef_ColorOut = $23A0;

*************
[Error] CollapseProcConst.inc(59): Identifier redeclared: "n_TGRushControl__SetAll_BorderRo"
[Error] CollapseProcConst.inc(65): Identifier redeclared: "n_TGRushControl__SetAll_DrawProg"
[Error] CollapseProcConst.inc(71): Identifier redeclared: "n_TGRushControl__SetDef_BorderRo"

А так же вот с этим?
[Error] Unit1_1.inc(890): String constant too long
(см [36])


 
homm ©   (2006-01-04 18:11) [43]


>  Дело в том, что не всегда создается CollapseProcTable1.inc
Не всегда создается потому что не всегда есть функции для размещения в нем, а значит в этих случаях он должен быть пустой. Создайте его сами.


 
OldNaum ©   (2006-01-04 18:41) [44]

сорри, я далек от проекта KOL/MCK, но в свое время оочень заинтересовался веткой Владимира по поводу его Collapse :) я с нетерпением ждал релиза, так сказать ) и тут вот вижу релиз. хотел спросить народ, насколько реально технология Collapse позволяет ужимать KOL проекты. насколько я понимаю Collapse не возможно использовать в привычных VCL проектах?

Collapse ведь не только уменьшает существенно размер проекта. Он ведь и затрудняет взлом ) по сути, как я понимаю мы имеем аналог VM? :)


 
Vladimir Kladov   (2006-01-04 21:27) [45]

в инструкции я написал, что делать с длинными идентификаторами: сокращать до 30 символов. Потому что встроенный ассемблер все равно их режет до 32, плюс небольшой префикс "n_" я решил добавлять вначале. Работа невелика: в проекте пройтись по слишком длинным названиям обработчиков событий и укоротить их по возможности.

Длинную строку я если бы знал где, обрезал бы в MCK. В Caption метки режется, потму что мне такое попалось. А еще где? На крайний случай можно присвоение длинной строки сделать в OnFormCreate, а в дизайнере вычистить (вы же знаете, о какой троке речь).

Насчет не-создания inc-файла CollapseProcTableX.inc, это я поправлю в П-компиляторе, конечно. Но можно создать и вручную пока.

2OldNaum: мало уменьшает. Да и VCL тут не при чем. Если только вы не собираетесь П-код руками писать. Для инициализации форм в VCL вообще не годится, там они грузятся из ресурсов, и кода для этого в программу вставлятся (цензоред) очень много в общем.


 
homm ©   (2006-01-04 21:57) [46]


>  Работа невелика: в проекте пройтись по слишком длинным
> названиям обработчиков событий и укоротить их по возможности
А потом меня MTsv DN (на пару с другими пользователями моих любимых контролов) с говном съедять. И правильно сделают! Т.к. мне тоже кажется что нефиг что-то переделовать, если люди пользуются. Все-же возможно вопрос с переименовыванием свойств будет решатся более глобально, без совместимости с предидущими версиями.


>  В Caption метки режется, потму что мне такое попалось.
А разве этим MCK должен заниматся? ИМХО - оди раз реализовать в компиляторе и подобных вопросов больше не будет никогда!


> Collapse ведь не только уменьшает существенно размер проекта.
>  Он ведь и затрудняет взлом ) по сути, как я понимаю мы
> имеем аналог VM? :)
МалаЦА! Это ведь и впрямь отлитчная защита от взлома. Редкий кракер проссыт про двухстековую машину, да и дебагеры на запрещенную инструкцию обязательно свой обработчик прикрутят.


 
homm ©   (2006-01-04 23:27) [47]


> Насчет не-создания inc-файла CollapseProcTableX.inc, это
> я поправлю в П-компиляторе, конечно.
Неплохо бы еще и
 {$IFDEF PCode}
 Collapse,
 {$ENDIF}
в uses *.dpr файла добавить (в MCK).

Еще см в [24]


 
-=Mike=-   (2006-01-05 04:53) [48]

Господа!
А где скачать версию 2.28???
На офсайте (http://bonanzas.rinet.ru/r_downloads.htm) нет ее.


 
Vladimir Kladov   (2006-01-05 08:38) [49]

Названия обработчиков должен уменьшать программист (програмирующий проект). А я что ли виноват в том, что БАСМ только 32 символа воспринимает? Да дело не только в обработчиках. Если в проекте просто не задумываясь о последствиях компонентам давать длиннющие имена, формам, то потом и получается хвостатое. Адаптация проекта к П-коду (если она нужна программисту) потребует переименований на более короткие, в любом случае. По-моему, это небольшая жертва.

Кракеры разберутся. Тем более что кракеры ломают не код, им вообще все едино, как код работает. Они ломают данные (пароли, сернумы). Война с краком меня и Collapse не касается. И все равно ломаться будет все: против лома нет приема. Единственное средство и единственный возможный выход для шароварщиков: обеспечивайте поддержку. Пусть покупатель платит не за копирование софта, а за поддержку со стороны разработчика. (А то что не требует поддержки в принципе, вообще должно быть бесплатно).

Downloads | Updates, как обычно.


 
homm ©   (2006-01-05 09:48) [50]


> [-]MCK: исправлена генерация П-кода для TControl.MaxProgress.
Ну... осталась самая малость:
L(180000000) L(-2079980537) C1 TControl_.SetMaxProgress<3>  -->  L(180000000) L(-2079980537) C2 TControl_.SetMaxProgress<3>


 
MTsv DN ©   (2006-01-05 14:40) [51]

KOLnMCK 2.28 (04.01.2006) + KOLadd (19.12.2005) + fakeVariant.pas, по адресу: http://www.uus4u.com/download/modules/KOLnMCK/KOLnMCK.rar

А также? для тех кто собирается использовать gRush Controls НЕ ТОЛЬКО в Windows XP:
KOLnMCK 2.28 with Convert2Mask v.2.21 (04.01.2006) + KOLadd (19.12.2005) + fakeVariant.pas, по адресу: http://www.uus4u.com/download/modules/KOLnMCK/KOLnMCK_oldC2M.rar
Рекомендуется использовать gRush 0.30.1

Не забудьте сделать ReBuild KOLnMCK и ВСЕХ ПАКЕТОВ

С Уважением MTsv DN


 
Vladimir Kladov   (2006-01-05 20:56) [52]

Новости от 5 января 2006 г.

Новости KOL и MCK (v2.29):
[-]KOL: Исправлена отрисовка графических контролов.
[-]MCK: исправлена генерация П-кода для TControl.MaxProgress и TOpenDirDialogEx.Title (требуется для Collapse).
Прочие новости:
[+]обновлен пакет Collapse (PCompiler работает еще быстрее, файлы CollapseProcTableX.inc создаются в том числе для пустых таблиц процедур, так как в любом случае они требуются для компиляции).


 
homm ©   (2006-01-05 22:46) [53]

Я писал в [24], я писал в [47] посмотреть в [24], теперь здесь пишу:
{ $C0 } DD TControl.SetCtlColor --> { $C0 } DD TControl_.SetCtlColor
{ $C7 } DD TControl_.SetEraseBackground --> Нет такого метода вовсе

Сие означает что нужно добавить подчеркивание для метода SetCtlColor, т.к. он приватный, а метод SetEraseBackground заменить чем-либо или дописать.

Еще мне интересно чем задача "обеспечить разбиение длинных строковых констант для каждого свойства" легче "обеспечить разбиение констант а компиляторе и забыть об этом", или я в чем-то не прав?

ЗЫ проблему длинных свойств я решил, причем не в ущерб последних. Просто название Фейка сделал в пять символов вместо прежних тринадцати.


 
-=Mike=-   (2006-01-06 06:23) [54]

Преогромно извиняюсь! Опера прокешировала страницу, вот и не увидел обновления :)))


 
OldNaum ©   (2006-01-06 09:12) [55]

взлом однозначно будет затруднен ) щас самыми реальными протекторами как раз являются протекторы которые по мимо всего используют VM с различной степенью виртуализации (EXECryptor, for example). ну еще раз скажу что я далек от KOL, потому не до конца понимаю где именно и как используется ваша виртуальная машина, так что все-таки с выводами спешить не стоит ) полез перечитывать старую ветку ) ладно, сорри что влез к вам в KOL-огород.

з.ы. опера маст дай.


 
homm ©   (2006-01-06 10:37) [56]

2 Владимир Кладов
AddLongTextField( SL, "LoadAnsiStr ", fCaption, " #0", " DB " );
Что это? В p-code генерится асембленрная инструкция, распознаваемая компиляторам как процедура.

Эта строка взята из MCK. Встречается во многих P_SetupFirst. Еще раз - легче сделать разбиение в компиляторе!


 
homm ©   (2006-01-06 11:09) [57]

Удалено модератором
Примечание: Оффтопик


 
Vladimir Kladov   (2006-01-06 12:50) [58]

Новости от 6 января 2006 г.

Новости KOL и MCK (v2.30):
[ ]KOL: не изменился.
[-]MCK: исправлена генерация П-кода для TKOLEdit.Text , TRichEdit.Text , TControl.SetCtlColor, TKOLCustomControl.EraseBkgnd. Решена проблема слишком длинных (truncated) строк.
Прочие новости:
[+]обновлен пакет Collapse (PCompiler: проблема слишком длинных строк в asm-коде).


 
homm ©   (2006-01-06 13:07) [59]

2 Владимир Кладов
Опять же AddLongTextField( SL, "LoadAnsiStr ", fCaption, " #0", "" ); выдает вот такой вот результат:
LoadAnsiStr ""
"Wake up. Grab a brush and put a little make-up. Hide the sca"
"rs to fade away the shakeup. Why""d you leave the keys upon t"
"he table? Here you go, create another fable."
#0

А BASM похоже "" воспринимает как байт ноль. В результате исполняется буквально "Wake up...., а не следуюший за строкой код.

Сделайте разбиение в компиляторе! Плиз. Ну ведь проблем реально меньше будет ИМХО.


 
homm ©   (2006-01-06 13:09) [60]

Сори... Еще не видел Vladimir Kladov (06.01.06 12:50) [58] когда писал.


 
Vedun   (2006-01-06 18:50) [61]

Как я понял, строчке


Result.EditBox1.Color := clWindow;


соответствует конструкция


L(-16777211)
C1 TControl_.SetCtlColor<2>


Так вот, константа -16777211 неправильно понимается (не знаю правда кем) и вместо белого фона компонента имеем черный. Удаление минуса исправляет положение.


 
SPeller ©   (2006-01-07 10:29) [62]

Видимо, где-то Color2RGB не выполняется.


 
яяя   (2006-01-07 11:26) [63]

Всем привет. у меня проблемы с коллапсом. поставил кол и мск 2.30 и последний коллапс. Перекомпилил пдебаг и пкомпилер как написан в риадми. Пробую компилить демо 1 или демо 2 и нечиге не пашет, что делать?


 
Vedun   (2006-01-07 12:08) [64]


> Как я понял, строчке
>
>
> Result.EditBox1.Color := clWindow;
>
>
> соответствует конструкция
>
>
> L(-16777211)
> C1 TControl_.SetCtlColor<2>
>
>
> Так вот, константа -16777211 неправильно понимается (не
> знаю правда кем) и вместо белого фона компонента имеем черный.
>  Удаление минуса исправляет положение.

Во время выполнения константа clWindow имеет значение -2147483643. Заменяю в откомпилированном П-коде все -16777211 на -2147483643 и все нормально работает.
Смотрю в KOL. Там:

clWindow = TColor(COLOR_WINDOW or $80000000);

Смотрю в System.pas моего Д7:

clWindow = TColor(clSystemColor or COLOR_WINDOW);

где

clSystemColor = $FF000000;

Вот из-за отличия этих констант и получается глюк.


 
homm86   (2006-01-07 14:39) [65]


> яяя   (07.01.06 11:26) [63]
А инмтрукцию читать пробывал?


 
Vladimir Kladov   (2006-01-07 17:54) [66]

Новости от 7 января 2006 г.

Новости KOL и MCK (v2.31):
[-]KOL: исправлена прозрачная отрисовка графических контролов и отрисовка обычных контролов (панели) в качестве родителя графических контролов.
[-]MCK: Исправлена генерация П-кода для TKOLRichEdit.Font , TKOLBitBtn , TKOLToolbar.generateVariables (так же исправлена генерация обычного кода для этого случая), TKOLFrame. Вызов SetCtlColor исправлен в Delphi7 (возможные проблемы с отрицательными числами во встроенном ассемблере).
Прочие новости:
[*]пакет Collapse обновлен (добавлена опция /A для Pcompiler для полной перекомпиляции всех модулей, содержащих П-код).

уменьшил на 100К свой проект. Теперь вот думаю, руками переписывать участки кода, которые не генерит MCK (в OnFormCreate, в OnShow, у меня там километры), или уже сразу приступать к компилятору Паскаль->П-код...


 
Vladimir Kladov   (2006-01-07 17:57) [67]

а насчет той константы в Delphi7. До конца я все-таки не понял. Просто заменил IntToStr на IntToHex, та же самая константа FF000005 работает совершенно верно, если вставлена как шестнадцатиричная, а не десятичная. И 80000005 тоже работает.


 
SPeller ©   (2006-01-07 23:09) [68]

Vladimir Kladov   (07.01.06 17:54) [66]
или уже сразу приступать к компилятору Паскаль->П-код

Это, я думаю, людям будет очень полезно. Учитывая, что вы уже как-то делали такой компилятор, но чем всё закончилось - неизвестно.


 
Vedun   (2006-01-08 22:33) [69]


>  Вызов SetCtlColor исправлен в Delphi7 (возможные проблемы
> с отрицательными числами во встроенном ассемблере).

Не знаю, может у меня битый компилятор, но он упорно не хочет понимать отрицательные числа. Ни один системный цвет (clWindow, clBtnFace и т.д.) не работает. Положение исправляет удаление минуса.

Может мне кто-нибудь объяснит, почему цвет должен задаваться отрицательными константами?


 
SPeller ©   (2006-01-09 04:11) [70]

Vedun   (08.01.06 22:33) [69]
почему цвет должен задаваться отрицательными константами

Отрицательное число, т.е. число с 1 в 32 бите говорит о том, что использоваться должен системный цвет.


 
Vladimir Kladov   (2006-01-09 08:00) [71]

В новой версии нет ведь минусов, там 16-ричные числа используются. Может надо просто добиться чтобы MCK перегенрировал код (сдвинуть форму хотя бы).


 
френк   (2006-01-09 08:52) [72]

Vladimir Kladov   (07.01.06 17:54) [66]
или уже сразу приступать к компилятору Паскаль->П-код

имхо, енто было бы круто ) ждемс ;)


 
Vladimir Kladov   (2006-01-09 10:41) [73]

я нашел первую версию такого компилятора, но она не подойдет. Надо не для масм, а для басм, с выборочной компиляцией отдельно указанных паскаль-процедур, компиляция нужна на месте, а не в отдельный выходного файл своего формата. В общем я приступил, может и получится. В самом Collapse придется поправочку сделать: EBP использовать как указатель стека на момент вызова П-процедуры, и адресовать через него локальные переменные и параметры, а SELF хранить в кадре возврата П-стека (интересно, что на код это вообще не влияет, П-компилятор переделывать не надо, генерацию П-кода в МСК тоже).


 
иосиф   (2006-01-09 11:04) [74]

Владимир, а что именно даст компилятор Паскаль->П-код?


 
SPeller ©   (2006-01-09 15:49) [75]

иосиф   (09.01.06 11:04) [74]
Можно будет VCL в п-код перегнать для уменьшения размера :))


 
Vedun   (2006-01-10 22:42) [76]


> В новой версии нет ведь минусов, там 16-ричные числа используются.
>  Может надо просто добиться чтобы MCK перегенрировал код
> (сдвинуть форму хотя бы).

А в байт-коде остались все те же отрицательные константы

DD (-16777211)

Кажется, это в PCompiler-е надо исправить.


 
Vedun   (2006-01-10 23:16) [77]

2 Vladimir Kladov

> а насчет той константы в Delphi7. До конца я все-таки не
> понял. Просто заменил IntToStr на IntToHex, та же самая
> константа FF000005 работает совершенно верно, если вставлена
> как шестнадцатиричная, а не десятичная. И 80000005 тоже
> работает.


$FF000005 не работает. Зато работает $80000005. И обратите внимание на [76].


 
MTsv DN ©   (2006-01-11 13:05) [78]

KOLnMCK 2.31+ (07.01.2006) + KOLadd (19.12.2005) + fakeVariant.pas, по адресу: http://www.uus4u.com/download/modules/KOLnMCK/KOLnMCK.rar

Версия KOL и MCK (v2.31+):
[+] Введена директива условной компиляции OLD_CONVERT2MASK - подключает Convert2Mask версии 2.21.
2 Vladimir Kladov
Добавьте, пожалуйста, эту директиву в следующую версию... Т.к. в Windows 9x при большом числе "прозрачных" элементов (не только gRush Controls), прорисовка нечинает притормаживать...

Не забудьте сделать ReBuild KOLnMCK и ВСЕХ ПАКЕТОВ

С Уважением MTsv DN


 
MTsv DN ©   (2006-01-11 14:16) [79]

Привет...
Занялся Collapse... Все настроил, но только один вопрос...
Где взять "CollapseProcConst.inc"?..

С Уважением MTsv DN


 
Vladimir Kladov   (2006-01-11 16:47) [80]

Он сам должен сделаться, его П-компилятор делает.


 
Vladimir Kladov   (2006-01-11 16:53) [81]

Сейчас обновил Collapse. Причина: исправление работы в NT4. Точнее, симптомы могли проявиться в том числе и в других системах, например ничего неизвестно про 9х. В общем, пришлось помурыжить со входом в П-эмулятор через SEH-перехват команд $E4-$E7, оказалось, что увеличивать в момент перехвата стек и подсовывать в него адрес возврата на точку входа, а вместо ip подставлять адрес эмлятора - такое только на ХР и 2К прокатывает, а на NT4 уже нет (а может и еще где). Завтра смогу проверить на работе под NT4, если у кого 98 под рукой проверьте плиз новую версию.

Да, под Атлон 64 и новая не пойдет, там контекст совсем не такой, еще думать надо будет. А у кого просто атлоны, тоже хочетс услышать, как оно новое  идет или нет, вроде бы там такой же CONTEXT? (ну вот нету у меня ни одного атлона поблизости, хоть тресни. Решено - следующий обязательно атлон буду брать).


 
BeZ   (2006-01-11 17:40) [82]

у меня как раз на Атлоне ХР (дома) старая версия не работала
хот я на работе П4 (но там тоже траблы)
PS всетаки я что  то наверное не так делал


 
Vladimir Kladov   (2006-01-11 19:10) [83]

Если верить файлу winnt.h, то в атлонах в контексте потока (структура CONTEXT) все регистры 64-разрядные, даже обычные вроде EAX. Но верится слабо, скорее всего это только 64-разрядных, а обычные атлоны скорее всего имеют такой же котекст как и интел. Еще вроде бы есть отдельно структура для IA64. Хотелось бы проверить. Вчерашняя версия не показательная, там просто непонятки было (и было вообще удивительно что пахало на ХР и 2К, если всмотреться в отладчике, то наверняка что-то портилось на стеке - просто в NT4 это вызвало крах сразу и стабильно, а в 2К и ХР мимо ушей проходило как то).


 
-=Mike=-   (2006-01-12 04:58) [84]

сорри за возможный оффтоп, но кажется ссылка на апдейт 2.20 => 2.30 (41K) не работает:
http://bonanzas.rinet.ru/upd/kolmck220to230.zip


 
GMax   (2006-01-13 20:53) [85]

Обновился с 2.22 до 2.31 и вылезла старая бага с ListView с собственными иконками для чекбоксов.
раньше помогало включить прозрачность невидимой панели, лежащей рядом... сейчас не помогает.
"помогает" включение DoubleBuffered на сам ListView, только вот портится всё остальное.
бага здесь - http://www.terraspace.ru/gmax/progs/lvbug.zip (20k)
исходник и скомпилированный проект.
первая галочка - старое лечение, вторая - новое "лечение"...


 
homm ©   (2006-01-15 11:38) [86]

2 GMax
Моя дурацкая блин, ошибка, почти описка.

2 Vladimir Kladov
 SetWindowOrgEx(PDC, -fParentCoordX, -fParentCoordY, nil);
 GetClientRect(Msg.hwnd, TR);
 IntersectClipRect(PDC, 0, 0, TR.Right, TR.Bottom);
 SendMessage(Wnd, WM_PAINT, PDC, 0);


 SetWindowOrgEx(PDC, -fParentCoordX, -fParentCoordY, nil);
 GetClientRect(WND, TR);
 IntersectClipRect(PDC, 0, 0, TR.Right, TR.Bottom);
 SendMessage(Wnd, WM_PAINT, PDC, 0);


Надеюсь и понятно где исправить ;)


 
homm ©   (2006-01-15 11:46) [87]

2 Vladimir Kladov
Кстати исправьте вот еще что (так, на всякий случай):
Строчку ValidateRect(Sender.fHandle, nil); (6-5 строка снизу) поместите сюда:
   case Msg.message of
       WM_ERASEBKGND:
           begin
               Result := TRUE;
           end;
       WM_PAINT:
           begin
               ValidateRect(Sender.fHandle, nil);


 
homm ©   (2006-01-15 15:19) [88]

2 Vladimir Kladov
TControl.SetWindowState --> TControl_.SetWindowState


 
homm ©   (2006-01-15 15:24) [89]

2 Vladimir Kladov
Все думал что нахожу недоделки, а это оказывается система такая... Ну ведь не сложно же поиском по mirror пройтись с маской поиска "TControl.Set" и где надо подчеркивание поставить.


 
Vladimir Kladov   (2006-01-16 21:11) [90]

Везде-то ставить не надо. И сколько там раз встречается TControl.Set ?


 
Vladimir Kladov   (2006-01-20 15:02) [91]

На сегодня обнаружилась проблема Collapse+9x - не работает, потому что in/out не являются привилегировнными командами. Пытаюсь сделать все-таки версию с командой call RunPCollaseN в качестве префикса (5 байтов вместо 1, но зато должно работать быстрее, т.к. исключения не задействуются). Пробовал INT n (2х-байтный префикс), но похоже, он в 98 тоже пытается выполниться, на обработчик исключения управление даже не передается, сразу в синем экране 98 ругается, хотя и не фатально для продолжения работы системы. Еще есть варианты?


 
homm ©   (2006-01-20 16:01) [92]


> И сколько там раз встречается TControl.Set ?

mirror:
   TControl.SetWindowState;
   TControl.SetIcon;
   TControl.SetStayOnTop;
   TControl.SetTransparent;
   TControl.SetAlphaBlend;


*.upd файл высылать, или Вы все-же сами найдете и исправите?


 
Vladimir Kladov   (2006-01-20 22:24) [93]

Поправлю так, и нречего ехидничать.

Исправления в Collapse в связи с совместимостью с 9х (и атлон64) будут завтра. Я доделал (и сделал основным) вариант, когда в качестве префикса каждой переделанной в П-код процедуря является не привилегированная команда с опкодом E4-E7, а обычный 5-байтовый call (E8). Нынешний вариант останется с символом NT_ONLY.


 
mp3 ringtones   (2006-08-18 16:09) [94]

<a href="http://www.yahoo.com"></a> http://www.la-ringtones.com/tones/ <a href="http://www.la-ringtones.com">real ringtones</a>. <a href="http://www.la-ringtones.com ">motorola ringtones</a>: Best free samsung ringtones, Cingular ringtones and more, Ringtones for free. [url]http://www.la-ringtones.com/ring/[/url] [link=http://www.la-ringtones.com]tracfone ringtones[/link] from site .


 
funny ringtones   (2006-08-18 16:10) [95]

http://www.la-ringtones.com/mp3/ ringtones site free. [URL=http://www.la-ringtones.com]qwest ringtones[/URL]: Best free samsung ringtones, Cingular ringtones and more, Ringtones for free. [url=http://www.la-ringtones.com]nextel ringtones[/url] from website .


 
funny ringtones   (2006-08-18 16:10) [96]

http://www.la-ringtones.com/mp3/ ringtones site free. Best free samsung ringtones, Cingular ringtones and more, Ringtones for free. from website .


 
free ringtones   (2006-12-27 05:19) [97]

fav1m1jm0b4z6g fav1m1jm0b4z6g fav1m1jm0b4z6g fav1m1jm0b4z6g fav1m1jm0b4z6g8



Страницы: 1 2 3 вся ветка

Форум: "KOL";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.78 MB
Время: 0.044 c
8-1162985232
OlDirtyBastard
2006-11-08 14:27
2007.08.12
Label над точками в TChart


2-1184870250
bagos
2007-07-19 22:37
2007.08.12
крашенный stringgrid


2-1184257976
Ivolg
2007-07-12 20:32
2007.08.12
Вопрос про MainMenu


15-1184451994
lookin
2007-07-15 02:26
2007.08.12
Интернет-ресурс с контурными изображениями


15-1184256508
TUser
2007-07-12 20:08
2007.08.12
Таки он есть :)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский