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

Вниз

Ошибка в 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 вся ветка

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

Наверх





Память: 0.45 MB
Время: 0.037 c
2-1128592873
leonidus
2005-10-06 14:01
2005.10.30
ANSI код символа EOF


1-1128334065
Ugrael
2005-10-03 14:07
2005.10.30
как вывести в about номер билда ?


3-1127359637
V-A-V
2005-09-22 07:27
2005.10.30
Пароль на MDB


3-1127061927
suharew
2005-09-18 20:45
2005.10.30
Транзакции в Interbase


8-1117885721
Dr. Andrew
2005-06-04 15:48
2005.10.30
Как "перехватить" и сохранить wav от звуковой карты?





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