Форум: "Потрепаться";
Текущий архив: 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.037 c