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

Вниз

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

 
Vladimir Kladov   (2005-11-04 09:00) [0]

Новости от 4 ноября 2005 г.

Новости KOL и MCK (v2.20):
[+]KOL: добавлена функция DesktopPixelFormat.
[-]KOL: исправлен метод TBitmap.SetHandle (и asm- и pas-версии) для монохромных битмапов (могло приводить к ошибкам в Windows98 в последующих вызовах DrawTransparent и возможно, в других случаях). Спасибо Truf за the bug report.
[-]KOL: исправлена функция NewRichEdit (правильно работала только для первого вызова). Спасибо flea за bug report.
[-]KOL: поправлен метод TControl.Destroy (PAS-version) - приведен в соответствие с asm-версией (уничтожение CustomObj и CustomData смещено ниже по коду). По предложению homm.
Прочие новости:
[*]kol_err: обновлен модуль MMX.PAS в архиве kol_err.zip (изменена функция GetCPUType и теперь возвращает результат другого типа - множество способностей вместо единственного идентификатора способности на упорядоченной последовательности. Дополнительно, возвращаются теперь такие возможности AMD как MMX+, 3DNow! и 3DNow+. Код, использующий эту функцию, должен быть изменен, например, выражение GetCPUType >= cpuMMX должно быть заменено на cpuMMX in GetCPUType.

А тоя вчера посылал, посылал, а сервер не соединился. Если у кого AMD, проверьте, что 3DNow! определяется в MMX.GetCPUType, пожалуйста. У меня все 4 компа дома и все компы на работе - Intel.


 
SPeller ©   (2005-11-06 10:11) [1]

3DNow и 3DNow+ определяются нормально.


 
Vladimir Kladov   (2005-11-06 11:05) [2]

Сасибо, уже проверили. А никто не знает, какие команды относятся к MMX+ (если такие вообще есть)?


 
homm86   (2005-11-06 14:13) [3]


> [-]KOL: исправлен метод TBitmap.SetHandle (и asm- и pas-
> версии) для монохромных битмапов (могло приводить к ошибкам
> в Windows98 в последующих вызовах DrawTransparent и возможно,
>  в других случаях). Спасибо Truf за the bug report.
Может я сейчас глупостью занимаюсь, но причем здесь Truf?
IMHO Спасибо ECM, gent, homm за the bug report.


 
Vladimir Kladov   (2005-11-06 19:26) [4]

не надо жадничать :)
ладно, исправил - в новостях


 
Vladimir Kladov   (2005-11-06 19:26) [5]

А все-таки, владельцы AMD, кто-нибудь знает, что такое MMX+. Все перерыл, но но так и не нашел пока.


 
SPeller ©   (2005-11-06 21:19) [6]

Да, я тоже пока ничего не нашёл по этим командам.. )


 
gent   (2005-11-07 14:03) [7]

> [-]KOL: исправлен метод TBitmap.SetHandle ...

И все же TBitmap.DrawTransparent глючит под Win98 (начиная с KOL 2.04). Приходится выкручиваться через ImageList. Ниже - пример программы, которая показывает ошибку и способ ее обхода (Win98  + D5 + KOL2.21).

program Test;

uses Windows, KOL;

type
 PForm1 = ^TForm1;
 TForm1 = object(TObj)
   Form: PControl;
   procedure Paint(Sender: PControl; DC: HDC);
 end;

{$R "test.res"}

{$DEFINE use_BitMap}


var Form1: PForm1;
{$IFDEF use_BitMap}      bmp: PBitmap;
{$ELSE == use ImageList} il : PImageList; {$ENDIF}

procedure TForm1.Paint(Sender: PControl; DC: HDC);
 begin
{$IFDEF use_BitMap}      bmp.DrawTransparent(DC, 0, 0, clFuchsia);
{$ELSE == use ImageList} il.Draw(0, DC, 0, 0);                    {$ENDIF}
 end;

begin
 New(Form1); Form1.Form := NewForm(nil, ""); Form1.Form.OnPaint := Form1.Paint;
{$IFDEF use_BitMap}      bmp := NewBitmap(0, 0);  bmp.LoadFromResourceName(hInstance, "BMP");
{$ELSE == use ImageList} il := NewImageList(nil); il.LoadBitmap("BMP", clFuchsia);           {$ENDIF}
 Run(Form1.Form);
end.

Здесь в ресурсах содержится 16-цветный битмап BMP (фоновый цвет - clFuchsia).
Если закомментировать {$DEFINE use_BitMap}, то будет использоваться ImageList. Извращение, в каком-то смысле, но работает. Заодно и размер ЕХЕшника на 1.5Кб меньше. :-)


 
Vladimir Kladov   (2005-11-07 20:53) [8]

этот глюк ухудшился в 2.20. Здесь явно ос-зависимый кусок кода, и надо в условие добавлять проверку версии Windows. Но даже самые древние версии KOL что-то не очень хорошо делают DrawTransparent для 9х. Я взял две фигуры , красную и зеленую - на фоне фуксия (прозрачный). Так вот, красный - в порядке, а зеленый - тоже стал прозрачным.


 
gent   (2005-11-08 01:23) [9]

Года 3 назад обнаружил подобную ошибку в D7 VCL. Там, насколько помню, приходилось подправлять палитру битмапа - стандартная палитра работала всегда, а для остальных не то черный, не то белый, не то еще какие-то цвета должны были находиться на "своих" местах. А ImageList, кажется, затягивает картинки во внутреннее 24-битовое представление (могу ошибаться).
В KOL 2.21 игры с палитрой не проходят, но у меня всё работает, если заменить код TBitMap.SetHandle на аналог из версии 2.03 (честно говоря, так и не понял, зачем он был изменен).



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

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

Наверх





Память: 0.47 MB
Время: 0.037 c
15-1153202637
ПЛОВ
2006-07-18 10:03
2006.08.13
Даже и не думал!


8-1139987525
Fly
2006-02-15 10:12
2006.08.13
Как Сохранить в PNG


2-1153655617
vain
2006-07-23 15:53
2006.08.13
Сливание вспомогательных файлов


2-1153554912
malyar
2006-07-22 11:55
2006.08.13
воспроизведение звукового файла


6-1143450349
_Владимир_
2006-03-27 13:05
2006.08.13
Загруженность сетевого интерфейса





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