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


Автор: ИгнатьевАлексей 28.8.2006, 13:52
Друзья! Подскажите пожалуйста!

Есть у меня массив, надо его передать в процедуру, а ничего не выходит. Пишу
Код

Sub arrayPrint(ByVal subMyArray(5) As Integer)
    ............
End Sub

ничего не выходит!

Заранее благодарен!

Автор: cardinal 28.8.2006, 15:33
Код

Option Explicit
Dim subMyArray(1 To 5) As Integer

Private Sub Command1_Click()
Dim i As Integer
For i = 1 To 5
    subMyArray(i) = 10
Next
arrayPrint subMyArray
End Sub

Sub arrayPrint(subMyArray() As Integer)
    subMyArray(3) = 0
End Sub

Автор: ИгнатьевАлексей 28.8.2006, 16:18
Большое спасибо! 

Автор: cardinal 28.8.2006, 17:00
Не за что. smile 

Автор: ИгнатьевАлексей 28.8.2006, 18:19
А объявление переменных, которые локальны на уровне модуля,  не считается "плохим тоном"?  smile 

Автор: cardinal 28.8.2006, 20:45
Цитата(ИгнатьевАлексей @  28.8.2006,  17:19 Найти цитируемый пост)
А объявление переменных, которые локальны на уровне модуля,  не считается "плохим тоном"?

Когда я на скорую руку ляпаю пример я не очень задумываюсь о хорошем тоне. smile 

Автор: ИгнатьевАлексей 28.8.2006, 21:02
Я не в укор! Огромное спасибо за ответ!
Я всего лишь принципиально правильно кодировать хочу научиться. Поэтому и обращаюсь к вам, господа программисты!
Просто меня приучили, что глобальные переменные - это всегда очень плохо, а вот как массив в функцию кинуть без этого я нигде не нашел!!!  smile 

Автор: cardinal 28.8.2006, 22:02
Цитата(ИгнатьевАлексей @  28.8.2006,  20:02 Найти цитируемый пост)
это всегда очень плохо, а вот как массив в функцию кинуть без этого я нигде не нашел!!!  

Не понял, без чего? Без глобальных переменных? Тогда вот
Код

Option Explicit

Private Sub Command1_Click()
Dim subMyArray(1 To 5) As Integer
Dim i As Integer
For i = 1 To 5
    subMyArray(i) = 10
Next
arrayPrint subMyArray
End Sub

Sub arrayPrint(subMyArray() As Integer)
    subMyArray(3) = 0
End Sub

Цитата(ИгнатьевАлексей @  28.8.2006,  20:02 Найти цитируемый пост)
Я не в укор! Огромное спасибо за ответ!

А я и не обижался, просто написал почему код выглядит так, как он выглядит... smile 
Цитата(ИгнатьевАлексей @  28.8.2006,  20:02 Найти цитируемый пост)
Просто меня приучили, что глобальные переменные - это всегда очень плохо

В принципе да. Тоже стараюсь это дело обходить, как только можно. Но иногда приходится пользоваться именно глобальными. В свое время (на Си) я не нашел лучше способа (которого может и нет), чем управления потоком из главного процесса при помощи глобальной переменной. Но от одной такой переменной проблемы обычно не возникают, особенно, если ты о ней помнишь, а вот когда их до фига и проект большой, то...

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