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

Вниз

Приложение зависает под win98 при выполнении bitmap.loadfromfile   Найти похожие ветки 

 
Сергей Петров   (2004-02-26 02:29) [0]

Собственно, сабж.

Так происходит с двумя абсолютно разными проектами.
Зависает оно не на каждом loadfromfile, на третьем или четвертом, но всегда на одном и том же.

Симптомы - мышка ездит, все остальное мертво.

То же самое происходит и на других компьютерах.

Под winxp все хорошо.

Виснет и при stepbystep и при запуске вне ide.

В чем может быть дело.


 
_DB_   (2004-02-26 02:34) [1]

Код-та приведи хоть кусок


 
Сергей Петров   (2004-02-26 02:37) [2]

Вот. Если это дело закомментить - все работает. Виснет то ли на третьем loadfromfile, то ли на четвертом.

mouseoff.loadfromfile(extractfilepath(application.exename)+"\res\mouseoff.bmp");
mouseoff.TransparentMode := tmFixed;
mouseoff.TransparentColor := clWhite;
mouseoff.Transparent := true;
mouseon.loadfromfile(extractfilepath(application.exename)+"\res\mouseon.bmp");
mouseon.TransparentMode := tmFixed;
mouseon.TransparentColor := clWhite;
mouseon.Transparent := true;
mousesel.loadfromfile(extractfilepath(application.exename)+"\res\mousesel.bmp");
mousesel.TransparentMode := tmFixed;
mousesel.TransparentColor := clWhite;
mousesel.Transparent := true;
mouseon2.loadfromfile(extractfilepath(application.exename)+"\res\mouseon2.bmp");
mouseon2.Transparent := true;
mouseon2.TransparentColor := clWhite;
mouseon2.TransparentMode := tmFixed;
mouseoff2.loadfromfile(extractfilepath(application.exename)+"\res\mouseoff2.bmp");
mouseoff2.Transparent := true;
mouseoff2.TransparentColor := clWhite;
mouseoff2.TransparentMode := tmFixed;
mousesel2.loadfromfile(extractfilepath(application.exename)+"\res\mousesel2.bmp");
mousesel2.Transparent := true;
mousesel2.TransparentColor := clWhite;
mousesel2.TransparentMode := tmFixed;


 
Сергей Петров   (2004-02-26 02:43) [3]

Поменял везде extractfilepath(application.exename) на переменную, в которую заранее его положил.

Виснуть перестало. Зато теперь безостановочно ругается на нехватку памяти и вылетает с десятком Access Violations.

Куда память-то уходит, если это самое начало инициализации программы?


 
_DB_   (2004-02-26 02:45) [4]

че такое mouseon и дркгие, че за переменная?


 
Сергей Петров   (2004-02-26 02:48) [5]

tbitmap.

Теперь все уже определенно - после загрузки около 1.5 мегабайт bmpшек - на очередном loadfromfile вылезает что-то вроде "нехватает памяти для выполнения действия".


 
Defunct   (2004-02-26 02:59) [6]

Сергей Петров (26.02.04 02:48) [5]

Скорее нехватка ресурсов. Есть там такое, побороть не удалось. До сих пор есть проект который на win98 работает на-половину. Т.е. в XP загружается сколько угодно Bitmap а Win98/Me только 150-160 шт. как раз примерно на 1.5Mb и вылетает.

С моем стороны, могу только предложить определять версию винды, и если это Win 9x/ME - уменьшить объем картинок, или сократить их число.


 
_DB_   (2004-02-26 03:05) [7]

хуй знает все работает.
не поленись закинь-ка весь код.


 
_DB_   (2004-02-26 03:15) [8]

давай весь код


 
Сергей Петров   (2004-02-26 03:16) [9]

понятно. спасибо. попробую поворочать с картинками...

Проблема главная в том, что там большой бекграунд для формы. Как бы его уменьшить?


 
Сергей Петров   (2004-02-26 03:16) [10]

_DB_: Понятно ведь уже в чем дело.. Надо думать, как картинки уменьшить..


 
_DB_   (2004-02-26 03:17) [11]

ну как хочешь


 
_DB_   (2004-02-26 03:19) [12]

bmp ты не уменьшишь сам знаешь, если поверх никаких других картинок с прозрачным фоном лепить не будешь, залей jpg, и вобще объясни хотябы в двух словах че надо сделать, трудно понять, может есть более грамотное решение.


 
Сергей Петров   (2004-02-26 03:38) [13]

Объясняю.

Судя по всему моя программа зависает под win98 из-за того, что ей не хватает памяти под хранение картинок.

Главный трабл в том, что есть бекграунд формы, который по onpaint рисуется. Он занимает 1.5мб. Уменьшить не получится.

jpg из него тоже делать смысла нет, все равно в bitmap переделывать придется.


 
_DB_   (2004-02-26 04:07) [14]

Если я правильно все понял, вот тебе код:

procedure TForm1.FormPaint(Sender: TObject);
var
MyBitmap:TBitmap;
begin
MyBitmap:=TBitmap.Create;
MyBitmap.LoadFromFile("f:\1.bmp");
Canvas.Draw(0,0,MyBitmap);
end;


Так вот 1.bmp это в моем случае рисунок в 20 мегабайт
все происходит мгновенно.


 
Сергей Петров   (2004-02-26 04:18) [15]

Я вроде бы разобрался. Действительно, дело не размере (или не столько в размере).

Все прекрасно работает, если transparent = false.

У меня есть несколько bitmaps с включенной прозрачностью. Под XP - все супер, под 98 - моментально съедает все ресурсы. Только что отключив прозрачность добился стабильной работы. Включил назад - все похерилось.

Есть идеи как это исправить? Трабл в том, что позрачность нужна... Хотя если нельзя - справлюсь и без нее.



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

Форум: "Основная";
Текущий архив: 2004.03.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
4-25966
Pantera111
2003-12-29 08:02
2004.03.09
Хук на ролик мышки


11-25726
SPeller
2003-06-20 14:57
2004.03.09
Значок у темы ветки


3-25688
stud
2004-02-06 11:54
2004.03.09
обработка ошибок interbse


1-25778
siriusP
2004-02-26 11:58
2004.03.09
Массив компонент в Run-Time


7-25953
Stefan
2003-12-20 20:14
2004.03.09
Завис или не завис ?





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