Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Недостаточно памяти. (Ошибка 7) ВБА-5.0 Эксель-97 Добавлено: 28.04.03 16:26  

Автор вопроса:  Mwambuna-Mboa

Сделал я форму. Она состоит из двух MultiPage. Внешний MultiPage1 и внутренний MultiPage2 На MultiPage2 - 6 vertical page в каждой по 500 TextBox.

 Итого 3000 Текстбоксов. Запускаю макрос. Отладчик доходит до: Load NewForm и выдает эту ошибку.  ОЗУ не перегружается реально (256м). То есть это что то связано с внутренней памятью (?) ВБА. Может можно как-то увеличить ресурсы или почитстить что?

Хэлп...

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #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-сайт: basicproduction.nm.ru
 Профиль | | #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

Понятно процента на 72% Щас буду парится... Но ты далеко не отходи, у меня еще к тебе много глупых вопросов ;););)

ЗЫ. Сэнкс за консалтинг

Ответить

Номер ответа: 5
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #5 Добавлено: 30.04.03 12:16
Тут надо использовать безоконные текстбоксы, попросту, рисовать их прямо на форме, и чтоб все события приходили на форму.

Ответить

Номер ответа: 6
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #6
Добавлено: 01.05.03 21:23

А внешний вид можно имитировать StretchBlt.

Tут правда проблема поиском координат будет. Цикл длинный получится. Хотя можно разбить на ряды и колонки: например 25 рядов по 20 колонок.

Здесь и приходим к тому, с чего я начинал - используй таблицу.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам