Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: CL | DM;

Вниз

Ошибка в KOL / TBitmap.SetHandle.   Найти похожие ветки 

 
gent   (2005-03-02 02:16) [0]

Уже обсуждались проблемы, связанные с обновлением TBitmap.SetHandle в KOL 2.04
(см. http://delphimaster.net/view/11-1109056582/).
Вот еще одна.

Следующая программа не работает под Windows"98 (access violation).
Компиляция через Delphi 5 + KOL 2.05 + {$DEFINE ASM_VERSION} + замена system.dcu.

program rbox;
{$R "rbox.res"}
uses KOL;
begin
 NewBitmap(0, 0).LoadFromResourceName(hInstance, "RBOX");
end.

Здесь ресурс-файл rbox.rc: RBOX BITMAP "rbox.bmp" ,
а rbox.bmp - красный квадрат, 16-цветный битмап размером 200х200.

После обратной замены в Kol.pas кода TBitmap.SetHandle на аналог из версии 2.03 приведенная программа работает без проблем.


 
ECM ©   (2005-03-02 09:22) [1]

>Вот еще одна
Это та же проблема.

procedure TBitmap.SetHandle(const Value: HBitmap);
...
 Move( Dib.dsBitfields, fDIBHeader.bmiColors, 3 * SizeOf(DWORD) );

Пробовали?

Все дело в том, что поле Dib.dsBitfields - это Array[0..2] of DWORD. Естесственно, при копировании 256-ти DWORD-ов, будут
затираться другие переменные или сразу вылезет AV


 
ECM ©   (2005-03-02 09:24) [2]

P.S. упс - неточность: не затираться, просто будет чтение
несуществующей памяти...:)


 
Сергей Близнюков   (2005-03-03 12:40) [3]


>ECM (02.03.05 09:22)
>Вот еще одна
Это та же проблема.


procedure TBitmap.SetHandle(const Value: HBitmap);
...
Move( Dib.dsBitfields, fDIBHeader.bmiColors, 3 * SizeOf(DWORD) );


>Пробовали?


Я, как автор предыдущей ветки (Ошибка TBitmap.LoadFromResource в Win98 Версия KOL >=2.04 ), могу заявить:
Пробовали! Не помогает!!!

Выкрутился так
- {$ELSE ASM_VERSION_NO_USE}  //временно вырубили использование ASM кода //Pascal
- поставил проверку WinVer

 if WinVer() < wvY2k then begin
   // старая процедура из KOL 2.02
   if GetObject( Value, Sizeof( B ), @B ) = 0 then Exit;
   fHandle := Value;
   fWidth := B.bmWidth;
   fHeight := B.bmHeight;
   fHandleType := bmDDB;
 end


По прежнему терпеливо ждём комментарий уважаемого автора - Владимира Кладова!



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

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.055 c
2-1128628970
Gefest80
2005-10-07 00:02
2005.10.30
Помогите с регистром!!!


10-1105988385
BAYES
2005-01-17 21:59
2005.10.30
Сохранение Word


1-1128930375
Leonid
2005-10-10 11:46
2005.10.30
Проблема с библиотекой qtintf70.dll


14-1128791118
Praetor
2005-10-08 21:05
2005.10.30
Субботняя задачка


2-1128425114
Ugrael
2005-10-04 15:25
2005.10.30
форматы дат