Страница: 1 |
Сделал я форму. Она состоит из двух MultiPage. Внешний MultiPage1 и внутренний MultiPage2 На MultiPage2 - 6 vertical page в каждой по 500 TextBox. Итого 3000 Текстбоксов. Запускаю макрос. Отладчик доходит до: Load NewForm и выдает эту ошибку. ОЗУ не перегружается реально (256м). То есть это что то связано с внутренней памятью (?) ВБА. Может можно как-то увеличить ресурсы или почитстить что? Хэлп...
А какой правильный, подскажи, о мудрый гуру! (И я так понял что расширить память нельзя... Придется наверно работать с кучей загруз-выгружаемых форм да?) Про кучу форм ничего не могу сказать. Могу предложить использовать таблицу. Понятно? Нет? А и хрен с ним Понятно процента на 72% Щас буду парится... Но ты далеко не отходи, у меня еще к тебе много глупых вопросов ЗЫ. Сэнкс за консалтинг А внешний вид можно имитировать StretchBlt. Tут правда проблема поиском координат будет. Цикл длинный получится. Хотя можно разбить на ряды и колонки: например 25 рядов по 20 колонок. Здесь и приходим к тому, с чего я начинал - используй таблицу. Страница: 1 |
Вопрос: Недостаточно памяти. (Ошибка 7) ВБА-5.0 Эксель-97
Добавлено: 28.04.03 16:26
Автор вопроса: Mwambuna-Mboa
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #1
Добавлено: 28.04.03 23:23
Там наверное не оперативки не хватает, а USER или GDI перегружается. А вообще, вроде, у винды есть ограничение на максимальное количество окон.
Правда не помню какое. Я думаю такой подход создания программы неверен.
Номер ответа: 2
Автор ответа:
Mwambuna-Mboa
Вопросов: 4
Ответов: 8
Профиль | | #2
Добавлено: 29.04.03 08:14
Номер ответа: 3
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #3
Добавлено: 29.04.03 10:33
Есть ещё ручной вариант. Принцип такой.
Создаёшь коллекцию типов.
Например
Type VirtualTextBox
Left as integer
Top as integer
Width as integer
Height as Integer
Text as string
End Type
И каждому элементу коллекции происваиваешь свои уникальные координаты и текстовую переменную. Затем, что бы показать их все делаешь в цикле:
CurrentX=MyCollection.Item(n).Left: CurrentY=MyCollection.Item(n).Top
Object.Print MyCollection.Item(n).Text
Когда пользователь кликает по определённому объекту(форме или контролу) ты сверяешь координаты в Object_Click со свойствами Left и Top элементов коллекции.
И подставляешь туда единственное текстовое поле со свойством Text, равным свойству Text найденного элемента коллекции.
P.S. Коллекция создаётся в Class Module.
Номер ответа: 4
Автор ответа:
Mwambuna-Mboa
Вопросов: 4
Ответов: 8
Профиль | | #4
Добавлено: 29.04.03 16:57
Номер ответа: 5
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #5
Добавлено: 30.04.03 12:16
Тут надо использовать безоконные текстбоксы, попросту, рисовать их прямо на форме, и чтоб все события приходили на форму.
Номер ответа: 6
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #6
Добавлено: 01.05.03 21:23