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

Вниз

Количество TImage   Найти похожие ветки 

 
Германн ©   (2004-12-25 04:05) [0]

Если кто, что, знает. Есть ли какие-то ограничения в Win9x насчет количества созданных в Дэлфи компонент TImage?

Столкнулся тут давеча с тем, что в WinXP программа нормально создает ~500 компонент TImage, а в Win98 - все рушится намертво!


 
Германн ©   (2004-12-25 04:07) [1]

Ёшкин кот! Хотел запостить в "Основную", а получилось в "Потрепаться" :(((


 
Чеширский_Кот ©   (2004-12-25 06:45) [2]

привычка?


 
Fenik   (2004-12-25 15:15) [3]

500 Timage? Вы извращенец?


 
Чеширский_Кот ©   (2004-12-25 15:20) [4]

имеет на то полное право!


 
uny ©   (2004-12-25 16:12) [5]

раньше по количеству tmediaplayer пробовал - бросаешь на форму пока дельфи не кончится. около 30 с чем то получалось. у одноклассника больше, потом он доводы приводил что это не показатель крутости компа...
короче накидывать, пока не кончится))


 
DrPass ©   (2004-12-25 16:18) [6]


> Если кто, что, знает. Есть ли какие-то ограничения в Win9x
> насчет количества созданных в Дэлфи компонент TImage?

Есть. В первую очередь - количеством доступных дескрипторов GDI, во вторую - доступным объемом памяти


 
Германн ©   (2004-12-27 01:10) [7]

2 DrPass ©   (25.12.04 16:18) [6]
По возможности насчет "количества доступных дескрипторов GDI" поподробнее пожалуйста. (Объем памяти дело третье, поскольку речь шла в сабже оь одном и том же компе).

2Fenik   (25.12.04 15:15) [3]
>500 Timage? Вы извращенец?

Пока до сих пор не замечал за собой такое. :)
А суть дела такова - В моей основной программе пользователь должен иметь возможность видеть картинку, которая графически изображает некий объект(устройство), на котором изображены некие датчики. Состояние их в данный момент отображается цветом их фона. Кроме того, при желании пользователя, рядом с ними отображается некий текст, характеризующий параметры данного датчика. При этом месторасположение датчиков (как и их графический вид) определяется самим пользователем.
В основной программе мне достаточно считать из базы данных координаты пиктограммы и ее файл и скопировать битмап пиктограммы в битмап картинки объекта. Но вот в программе, в которой пользователь "размещает" датчики по битмапу объекта, мне нужно чтобы пользователь видел, какие "пиктограммы датчиков" в данный момент выделены, в зависимости от параметров. И иметь возможность задействовать OnMouseDown/OnMouseUp. Поэтому я и использую для каждого из них TImage.
Кто хочет - бросьте в меня камень, с указанием почему я не прав.


 
DrPass ©   (2004-12-27 01:20) [8]


> По возможности насчет "количества доступных дескрипторов
> GDI" поподробнее пожалуйста

Каждый элемент интерфейса в Windows, будь-то кнопка или битмап требует дескриптор. Или несколько дескрипторов - это может быть как хендл окна или битмапа, так и контекст для рисования на канве. Их в Win9x было не так уж много - 8 тыс GDI и столько же user, насколько я помню. Я не знаю, сколько дескрипторов жрет одна TImage, но подозреваю, что больше одного, ведь она держит в себе код для обработки изображений разных форматов. Если даже 4 - то 500 TImage скушают половину всех доступных. А ведь есть еще другие приложения и сама Windows.
Распознать окончание доступных дескрипторов легко - если сперва появляются такие глюки, как пропадание пиктограмм на кнопках в свежеоткрываемых окнах, например, при открывании Проводника. Еще более верный способ - установить стандартную утилиту Win9x "Индикатор системных ресурсов" и любоваться ею при работе твоего приложения


 
Германн ©   (2004-12-27 01:36) [9]

2 DrPass ©   (27.12.04 01:20) [8]
Спасибо! Меня интересовало конкретно число. "8 тыс" - теперь моя метка контроля.
Ну а распознал я это сразу! И пиктограммы в IDE пропадали и меню Windows пропадало и еще много что "пропадало"!


 
kaif ©   (2004-12-27 11:06) [10]

Я сталкивался с ограничениями на количество картинок в TImageList в 98-ом. Свыше 500 картинок начинались проблемы.


 
DiamondShark ©   (2004-12-27 11:59) [11]


> Кто хочет - бросьте в меня камень, с указанием почему я
> не прав.

Рисовать на экране один битмап, а хранить только координаты и состояние того, что там выделено/нажато/включено.

фрагменты картинки хранить одним битмапом, а когда надо перерисовать, вырезать нужный кусочек и рисовать.

И никаких 500 битмапов.


 
wicked ©   (2004-12-27 12:44) [12]

в добавок к DiamondShark ©   (27.12.04 11:59) [11]:
можно вообще обойтись без битмапа - сохранить изображение в TMemoryStream и использовать для прорисовки кусков ф-цию StretchDIBits...


 
Германн ©   (2004-12-28 00:12) [13]

Спасибо всем ответившим. Приму к сведению все полученные советы. Как сейчас, так и на будущее.



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

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

Наверх





Память: 0.48 MB
Время: 0.04 c
1-1104749217
mega
2005-01-03 13:46
2005.01.16
мерцание в DrawItem ListView


14-1103872779
ocean
2004-12-24 10:19
2005.01.16
Новости с Родины ддля Чеширского кота


3-1102582417
einsam
2004-12-09 11:53
2005.01.16
база данных в файлах *.dbw


1-1104276522
AAAlekzzz
2004-12-29 02:28
2005.01.16
Добавление текста из TMemo в начало любого файла.


1-1104758879
SeriousSam
2005-01-03 16:27
2005.01.16
Мигание кнопки программы в панели задач.





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