Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Публичный двумерный массив


Автор: HeJIenOcTb 13.4.2007, 10:38
Здравствуйте.
У меня такая проблема. В одной процедуре нужно заполнить массив, а в другой потом использовать эти данные. Всё на одной форме. 
Так вот, в General области объявляю 
Код

Public itog As String
 если укажу размерность прямо здесь, то вылетает ошибка "Массивы фиксируемой длины недопускается использовать как общие"
Вот собственно и вопрос, как правильно объявить и указать размерность данного массива? Помогите пожалуйста, работа стоит.

Автор: mihanik 13.4.2007, 10:45
Насколько помню, более грамотно вставить в проект отдельный модуль и все глобальные переменные объявлять там...

Попробуй!!!

Автор: HeJIenOcTb 13.4.2007, 10:53
Цитата(mihanik @ 13.4.2007,  10:45)
Попробуй!!!

Большое спасибо, всё так просто оказалось smile
Всё работает.

Автор: Akina 13.4.2007, 10:56
не более грамотно, а единственно правильно.

Автор: Black_Star 14.4.2007, 09:51
mihanik, Akina, вы оба не правы! 
Понятие глобальная переменная - относительно. Глобально относительно всего проекта, или глобальная относительно модуля?
И ежели у HeJIenOcTb все в одной форме, 
Цитата(HeJIenOcTb @  13.4.2007,  10:38 Найти цитируемый пост)
Всё на одной форме

то достаточно объявить в General
Код

Private itog as string
или 
Dim itog as string
Верно?

Автор: HeJIenOcTb 14.4.2007, 10:08
Цитата(Black_Star @ 14.4.2007,  09:51)
то достаточно объявить в General
Код

Private itog as string
или 
Dim itog as string
Верно?

думаю, что нет
если объявить в General, то размерность там задать нельзя. А если размерность задать в процедуре, то массив виден только в этой процедуре. Я писал выше
Цитата
Так вот, в General области объявляю код Visual Basic
  
Код

Public itog As String

 если укажу размерность прямо здесь, то вылетает ошибка "Массивы фиксируемой длины недопускается использовать как общие"


Автор: bom 14.4.2007, 10:30
Локальные - область видимости: процедура события.
Уровня модуля -  область видимости: модуль (форма или класс).
Глобальные - область видимости: весь проект.

Цитата(mihanik @  13.4.2007,  13:45 Найти цитируемый пост)
отдельный модуль и все глобальные переменные объявлять там

True
Цитата(Akina @  13.4.2007,  13:56 Найти цитируемый пост)
единственно правильно

Исходя из контекста, имеются в виду  глобальные переменные.
Поэтому, тоже True


Цитата(Black_Star @  14.4.2007,  12:51 Найти цитируемый пост)
глобальная относительно модуля

Такой не бывает. False
Цитата(Black_Star @  14.4.2007,  12:51 Найти цитируемый пост)
достаточно объявить в General
код Visual Basic    
Private itog as string    
или  
Dim itog as string    
Верно?

Верно, но не единственно-верно. Можно объявить в модуле, как и предложил mihanik

Цитата(HeJIenOcTb @  14.4.2007,  13:08 Найти цитируемый пост)
если объявить в General, то размерность там задать нельзя

Можно.

Автор: HeJIenOcTb 14.4.2007, 10:34
Цитата
Можно.

bom, а можно пример кода, как в General объявить размерность? Потому что как не однократно писал, при попытке указать размерность в General, выдаёт ошибку. Если возможно указать размерность, то хотелось бы знать на будующее, как это сделать.
Заранее спасибо.

Автор: bom 14.4.2007, 11:05
Код

Private itog(12) As String

Автор: HeJIenOcTb 14.4.2007, 11:13
Цитата(bom @ 14.4.2007,  11:05)
Код

Private itog(12) As String

Хм.... Верно, работает. Ошибка возникала при обявлении переменной как Public.
Ладно, спасибо, будем знать.

Автор: Black_Star 14.4.2007, 15:46
Цитата(bom @  14.4.2007,  10:30 Найти цитируемый пост)

Цитата(Black_Star @  14.4.2007,  12:51 )
глобальная относительно модуля

Такой не бывает. False

smile 

Исходя из того, что я так ее назвал? Тем не менее она видна в любой ф-и модуля/формы. Потому - глобальна для всего модуля. Смысл не меняется.

Автор: bom 14.4.2007, 22:52
Меняется вывод: 
Цитата(Black_Star @  14.4.2007,  12:51 Найти цитируемый пост)
mihanik, Akina, вы оба не правы!
 на противоположный. 
 smile 
По поводу названий... Можно, конечно и "VB" назвасть "VC++", от этого его работа не изменится, но кое-кто будет введен в заблуждение smile

Цитата(Black_Star @  14.4.2007,  12:51 Найти цитируемый пост)
Понятие глобальная переменная - относительно

Это понятие - абсолютно. Область видимости глобальной переменной - весь проект и единственно правильное ее размещение, как и единственно возможное - отдельный модуль проекта.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)