Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
Proidoha
521 / 356 / 28
Регистрация: 04.11.2013
Сообщений: 1,476
18.11.2014, 16:51  [ТС]

Оптимизация передачи классов и методов и их обработки в разных модулях

18.11.2014, 16:51. Просмотров 388. Ответов 1
Метки (Все метки)

Ответ

Вобщем, хрен с ним с методом. Пропишу отдельно используя If.
Пытаюсь передать массив в отдельный модуль чтобы вызывать его (массив) из любого другого модуля в любое время. Нихрена не выходит - массив пустой.

На форме делаю так :
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
  Public Class points_options
 
    Public F(5) As Integer ' Числовое значение формы. 0 - кружок
    Public R(5) As Double ' Радиус мм
    Public O(5) As Double ' толщина линии мм
    Public Fi(5) As String ' заливка цвет
    Public fill(5) As Integer ' заливка в формате RGB
    Public k As Integer 'количество строк в массиве
 
    Private Function ColorShape(ByVal Fi As String) ' Функция к делу не относится - возвращает РГБ значение
 
        Dim RGB_R As Integer
        Dim RGB_G As Integer
        Dim RGB_B As Integer
 
        If Fi = "Без заливки" Then
            RGB_R = 111
            RGB_G = 111
            RGB_B = 111
 
        ElseIf Fi = "Черный" Then
            RGB_R = 0
            RGB_G = 0
            RGB_B = 0
' И т. д.
 
       Return RGB(RGB_R, RGB_G, RGB_B)
    End Function
 
  Private Sub Button_ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_ok.Click
 
        Me.F(1) = Forma1.Text
        me.R(1) = Val(Razmer1.Text)
        Me.O(1) = Outline1.Text
        Me.fill(1) = ColorShape(Fill1.Text)
        k = 1
 
        If CheckBox2.CheckState = CheckState.Checked Then
            k = 2
            Me.F(2) = Forma2.Text
            Me.R(2) = Val(Razmer2.Text)
            Me.O(2) = Outline2.Text
            Me.fill(2) = ColorShape(Fill2.Text)
        End If
 
        If CheckBox3.CheckState = CheckState.Checked Then
            k = 3
            Me.F(3) = Forma3.Text
            Me.R(3) = Val(Razmer3.Text)
            Me.O(3) = Outline3.Text
            Me.fill(3) = ColorShape(Fill3.Text)
        End If
 
      ' Аналогично еще 2 чекбокса
 
       P_options_data.main(k) 'сюда пытаюсь передать массив
       Me.Close()
Модуль P_options_data выглядит так:

vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Module P_options_data
    Public F(5) As String
    Public R(5) As Double
    Public O(5) As String
    Public Fi(5) As String
    Public k As Integer
 
    Public Sub main(ByVal k)
 
        For i = 1 To k
            F(i) = points_options.F(i)
            R(i) = points_options.R(i)
            O(i) = points_options.O(i)
            Fi(i) = points_options.Fi(i)
        Next i
    End Sub
End Module
Если я в другом модуле в последствии сделаю так, то значения будут пустые.

vb.net
1
2
3
4
5
6
 For u = 1 To k
       F(u) = P_options_data.F(u)
       R(u) = P_options_data.R(u)
       O(u) = P_options_data.O(u)
       Fi(u) = P_options_data.Fi(u)
 Next u
Как сделать, чтобы данные в модуле P_options_data хранились все время работы программы?

Вернуться к обсуждению:
Оптимизация передачи классов и методов и их обработки в разных модулях
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2014, 16:51
Готовые ответы и решения:

Оптимизация хранения и передачи информации в модульном приложении
Доброго времени! У меня есть несколько написанных программ в виде отдельных...

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

Вызов методов с одинаковыми именами для разных классов
В функцию func можно передать один из двух классов A или B. У них есть функции...

Возможно ли использовать один массив в разных модулях?
Возможно ли использовать один массив в разных модулях? Количество элементов...

Как использовать одну переменную в разных модулях
Дорогие форумяне! Есть макросы, имена которых добавлены в событие листа, но с...

1
Другие темы раздела
Visual Basic .NET Запрет на запуск сторонней программы http://www.cyberforum.ru/vb-net/thread1297420.html
Здравствуйте!!! Помогите пожалуйста с вопросом: необходимо при запуске программы запретить запуск калькулятора в виндусе. После закрытия программы разрешить!!! Спасибо!!!
Visual Basic .NET Как проверить съемный носитель на факт готовности Кароч,есть проблема! задрало уже! программа на всех дисках ищет выбраный файл,но прикол в том что когда попадается диск что тупит или просто пустой он выдает ошибку что диск не готов,как обойти... http://www.cyberforum.ru/vb-net/thread1297307.html
Невозможно привести аргумент expression к типу textbox Visual Basic .NET
Здравствуйте! При написании программы а-ля "калькулятор" выскакивает ошибка, указанная в заголовке. Программный код прилагается. Что я делаю не так, и как это исправить? Заранее спасибо за помощь. ...
Поворот PictureBox по часовой стрелке Visual Basic .NET
Как организовать вращение PictureBox по часовой стрелке ?
Visual Basic .NET Обработка события при нажатии на DataGridViewButtonColumn http://www.cyberforum.ru/vb-net/thread1297009.html
Доброе время суток! подскажите как сделать разное события на кнопку и чтобы менялась сам кнопки в строке где например в базе поменялся статус вот что типо такого ниже приведено до чего я дошол а...
Visual Basic .NET Закрасить ячейки, лежащие выше главной и дополнительной диагоналей красным цветом Помогите пжл на VB.Net Дана матрица NxN (4<N<10). Закрасить ячейки, лежащие выше главной и дополнительной диагоналей красным цветом. Наработки: Dim i, j As Integer For i = 0 To n ... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru