Главная страница
    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.45 MB
Время: 0.036 c
8-1113987578
Grief
2005-04-20 12:59
2005.10.30
Превращение bmp в avi.


14-1128604609
Id
2005-10-06 17:16
2005.10.30
WISQL


14-1128433707
oldman
2005-10-04 17:48
2005.10.30
Интересное наблюдение (провокационные ветки)


1-1128491589
denmin
2005-10-05 09:53
2005.10.30
Как передать параметр в вызываемую программу?


2-1128945580
SPACE
2005-10-10 15:59
2005.10.30
Народ никак немогу сделать скриншот из игрушки





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