Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 01.08.2012
Сообщений: 7

Обратиться к объекту по индексу

01.08.2012, 22:52. Показов 1641. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Такая ситуация: есть три массива Label1(),Label2() ,Label3()
1.Как сделать чтобы цифры 1,2,3 заменить в Label & 1 и т.п. ..2..3 и передать как объект в процедуру.
2. Что неправильно делаю ? есть процедура Public Sub nLabel_add(nForm As Form, nFrame AS Frame, nLabel As Label)
когда передаю в нее значения Call nLabel_add(Form1, Frame1(), Label()) последние два аргумента процедура не распознает как объекты
P/S Frame() и Label() - массивы элементов.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.08.2012, 22:52
Ответы с готовыми решениями:

Как обратиться к созданному объекту, если переменной присвоен уже другой объект?
Всем привет, Допустим, у меня есть класс, назовем его MyClass. Я объявляю переменную x, затем присваиваю ей новый созданный объект на...

Обращение к объекту не по индексу, а по имени
Не знаю как словами описать, лучше пример приведу: type TButtons = class Name:string; ...

Как обратиться к контролу по индексу
int i = xxx; textBox .Text ="dfsdfds"; как такое сделать?

8
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
02.08.2012, 08:33
Лучший ответ Сообщение было отмечено как решение

Решение

Надеюсь, правильно понял оба вопроса?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Form_Load()
Dim F%, L%
For F = 1 To 2 '2 - к-во массивов Frame()
  For L = 1 To 3 '3 - к-во массивов Label()
     'передаем в nLabel_add форму, последнюю рамку каждого из массивов FrameF и последнюю метку каждого из массивов LabelF
     nLabel_add Me, _
                Controls("Frame" & F)(Controls("Frame" & F).Count - 1), _
                Controls("Label" & L)(Controls("Label" & L).Count - 1)
  Next L
Next F
End Sub
 
Public Sub nLabel_add(nForm As Form, nFrame As Variant, nLabel As Variant)
  MsgBox nForm.Name & ":" & nFrame.Name & "(" & nFrame.Index & "):" & nLabel.Name & "(" & nLabel.Index & ")"
End Sub
Добавлено через 1 час 5 минут
Кстати, я не увидел смысла в передаче nForm и nFrame в процедуру.
Оба объекта можно (непонятно только зачем) получить из свойств nLabel (закомментировано)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Sub nLabel_add_A(nLabel As Variant)
'Dim nFrame As VB.Frame: Set nFrame = nLabel(0).Container
'Dim nForm As VB.Form: Set nForm = nLabel(0).Parent
Load nLabel(nLabel.Count)
With nLabel(nLabel.Count - 1)
  .Visible = True
  .Top = nLabel(nLabel.Count - 2).Top + nLabel(nLabel.Count - 2).Height
  .Left = nLabel(nLabel.Count - 2).Left
End With
End Sub
 
Private Sub Form_Click()
nLabel_add_A Label1
End Sub
3
0 / 0 / 0
Регистрация: 01.08.2012
Сообщений: 7
02.08.2012, 09:36  [ТС]
смысл имеется, т.к. обращение пойдет с разных форм
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
02.08.2012, 09:40
Цитата Сообщение от pwal Посмотреть сообщение
обращение пойдет с разных форм
Ну и что?
Если задача только в том, чтобы добавить Label1(I) в рамку (Label1(0) там уже находится, надеюсь?),
то последний код с этим справляется
1
0 / 0 / 0
Регистрация: 01.08.2012
Сообщений: 7
02.08.2012, 11:29  [ТС]
Да, они имеются. Весь замут в том, что массивы из Label программно не создать ((
а куча Label - это интерфейс делаю http:// clip2net . com / s / 2aCzt , и при изменении размера окна - надо приводить в пропорции все эти элементы

Добавлено через 16 минут
Кстати, не подскажите как лучше сделать эту ситуацию
Visual Basic
1
2
3
4
5
6
7
nnx = nLabel.Count
If nnx > a Then
Else
Load nLabel(a) 'nForm.
End If
Set nLabel(a).Container = nForm.Frame1(nFrame)
nLabel(a).Visible = True
т.к. проверяется загружен или нет элемент

Добавлено через 5 минут

сделал так Public Sub nLabel_add(nForm As Form, nFrame, nLabel As Object)
и заработала )
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
02.08.2012, 11:50
Цитата Сообщение от pwal Посмотреть сообщение
т.к. проверяется загружен или нет элемент
Загружен ли nLabel(a) - это имелось ввиду?
Если да, то как-то так можно проверить.
Visual Basic
1
2
3
4
5
6
7
8
9
10
dim f as vb.frame
on error resume next
set f=nLabel(a)
if err then
  'элемент не загружен
  err.clear
else
  'элемент загружен
endif
on error goto 0
1
0 / 0 / 0
Регистрация: 01.08.2012
Сообщений: 7
02.08.2012, 13:20  [ТС]
Спасибо! Все работает!
Скажите - есть контрол Calendar
как я понял, у него нет такой возможности чтобы можно было программно делать другим цветом несколько ячеек? Есть ли альтернатива ему? чтобы можно было добавлять к ячейкам(дням) или комментарии или устанавливать цвет
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
02.08.2012, 13:36
Цитата Сообщение от pwal Посмотреть сообщение
Calendar? ... чтобы можно было добавлять к ячейкам(дням) или комментарии или устанавливать цвет
Напиши свой. За основу можно это взять - Как наложить на форму количество лейблов, соответствующих количеству дней в месяце?
1
0 / 0 / 0
Регистрация: 01.08.2012
Сообщений: 7
02.08.2012, 13:50  [ТС]
А может лучше DataGrid использовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.08.2012, 13:50
Помогаю со студенческими работами здесь

Обратиться к полю таблицы по индексу
Доброго времени суток всем. Что-то заклинило. Гугл подсказал как получить список таблиц базы и как получить список полей таблицы. А мне...

Обратиться к свойству кнопки по индексу
У меня более 50 кнопок на форме button1. button2... button50 Хотел задать в переменной string name = new string; Текст кнопки ...

Обратиться к объекту по строке
Не знаю как правильно сформулировать вопрос, допустим есть несколько кнопок (Button1,Button2 и т.д.): мне нужно узнать их тег в...

Как обратиться к объекту?
Всем привет! y меня есть название объекта к которомy я хочy обратиться. string sname = "textBox" + Convert.ToString(i); ...

Обратиться к объекту из метода
Здраствуйте! Есть 10 панелей-квадратов, по щелчку квадрат должен менять цвет на сохраненный в переменной thisColor. Хотел приписать общий...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru