Форум: "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