Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
186 / 37 / 3
Регистрация: 28.05.2015
Сообщений: 149

Работа с контейнером

01.07.2017, 04:50. Показов 4390. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Первый вопрос.
Вот пример перечисления элементов формы с проверкой типа элемента совместно с его тэгом:
Visual Basic
1
2
3
4
Dim mm As Object
For Each mm In Me
   If (TypeOf mm Is CommandButton) AND (mm.Tag = "option") Then MsgBox mm.Name
Next
Не знаю как перечислить элементы внутри контейнера, например PictureBox. Пока что вышел из ситуации проверкой типа и тэгов в контролах.

Второй вопрос.
В контейнере есть контролы, находящиеся в массиве, а так же и отдельные элементы без массивов. Например, мне нужно, чтобы при MouseMove для каждого элемента(массива элементов) происходило одно и тоже действие - допустим Beep. Можно ли их как-то логически объединить, чтобы для каждого элемента не нагромождать свой "событийный" код, а в целях компактности - для всех сразу?

Третий вопрос.
Создаём контролы в контейнере и пытаемся задать событие:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim WithEvents NewLabel As Label
 
Private Sub Form_Load()
   Delta = 1            'смещение по оси Y
   For i = 0 To 9
      MyName$ = "Elem_" & CStr(i)
      
      Set NewLabel = Controls.Add("VB.Label", MyName$, Pic)
         With NewLabel
            .Width = 900: .Height = 200: .Top = .Top + Delta
            .Visible = True
            .Caption = MyName$
         End With
      Delta = Delta + 300
   Next i
End Sub
 
Private Sub NewLabel_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
   If InStr(NewLabel.Name, "5") Then _
      Me.Caption = NewLabel.Caption
End Sub
Для каждого контрола есть имя MyName$. Но событие MouseMove не будет выполнено. А если в нём закомментировать условие If, но оставить действие Me.Caption, то событие будет выполнено только для последнего контрола в массиве, то есть для Elem_9. Почему? Как обратиться к любому элементу? Ведь имена у всех уникальные.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.07.2017, 04:50
Ответы с готовыми решениями:

Работа с классом-контейнером
Имеется такой класс: class RectangleContainer { private PictureBox _pictBox; private Rectangle mas; public...

Работа с контейнером multimap
Помогите пожалуйста. Вот вся задача: Определить класс autoOwnerDirectory (каталог автовладельцев), хранящий информацию об автовладельцах...

Работа с контейнером string
Допустим инициализирую переменную типа string, никакого значения ей не присваиваю, потом вывожу.Почему выводится пустота?А не к примеру...

24
186 / 37 / 3
Регистрация: 28.05.2015
Сообщений: 149
11.07.2017, 12:54  [ТС]
Студворк — интернет-сервис помощи студентам
Fever Brain, не понял, поэтому и попросил литературу, чтобы попытаться понять.

Добавлено через 4 минуты
The trick, не по теме конечно, но можно тебя попросить объяснить как записать из массива и считать в массив данные, которые были сохранены в exe-файле?
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
11.07.2017, 22:57
Цитата Сообщение от CharlyChaplin Посмотреть сообщение
The trick, не по теме конечно, но можно тебя попросить объяснить как записать из массива и считать в массив данные, которые были сохранены в exe-файле?
Объясни более подробно что требуется. Обычно можно открыть файл и записать данные в конец, можно использовать более экзотические методы.
0
186 / 37 / 3
Регистрация: 28.05.2015
Сообщений: 149
12.07.2017, 13:36  [ТС]
В одном из своих проектов я использовал твою наработку о самосохранении в exe-файле. Ты в своём блоге выкладывал. Кстати, ссылку на него ты сам скинул. Если я правильно понял, то там ты сохранял string-данные в ресурсы exe-файла при помощи "зомби процесса"-cmd.exe, дописывал в ресурсы exe-файла(своего родителя) как только он исчезнет из процессов.

Меня интересует как сделать тоже самое не со строкой, а с массивом. Например, записать данные из массива в ресурсы, а потом при очередном открытии программы инициализировать массив и заполнить его данными уже из сохранённых ресурсов.
А также интересует вопрос. Если будет ситуация, что командная строка запрещена либо Администратором, либо ограничениями политики Пользователя, будет ли такая модель работать?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.07.2017, 17:23
Цитата Сообщение от CharlyChaplin Посмотреть сообщение
А также интересует вопрос. Если будет ситуация, что командная строка запрещена либо Администратором, либо ограничениями политики Пользователя, будет ли такая модель работать?
Я думаю, ты можешь спокойно заменить cmd.exe на "C:\Windows\SysWOW64\explorer.exe"
Цитата Сообщение от CharlyChaplin Посмотреть сообщение
Если я правильно понял, то там ты сохранял string-данные в ресурсы exe-файла при помощи "зомби процесса"-cmd.exe, дописывал в ресурсы exe-файла(своего родителя) как только он исчезнет из процессов.
Тебе все равно придётся сериализовать массив в виде последовательного потока данных, прежде чем передать его куда-то во вне не как объект. На сколько я помню, Put позволяет собрать данные UDT / массивов в единую последовательность. Посмотри этот код от Olaf Schmidt, он позволяет перенаправить запись Put на пайпу, тем самым Put записывает не в файл, а перехватывается твоей же программой, и потом ты эти данные уже сможешь передать в виде строки или чего угодно.
2
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
12.07.2017, 21:58
Цитата Сообщение от CharlyChaplin Посмотреть сообщение
В одном из своих проектов я использовал твою наработку о самосохранении в exe-файле. Ты в своём блоге выкладывал. Кстати, ссылку на него ты сам скинул. Если я правильно понял, то там ты сохранял string-данные в ресурсы exe-файла при помощи "зомби процесса"-cmd.exe, дописывал в ресурсы exe-файла(своего родителя) как только он исчезнет из процессов.
Да проще будет себе в "хвост" записать данные, без всяких "зомби" процессов.
Цитата Сообщение от CharlyChaplin Посмотреть сообщение
Меня интересует как сделать тоже самое не со строкой, а с массивом. Например, записать данные из массива в ресурсы, а потом при очередном открытии программы инициализировать массив и заполнить его данными уже из сохранённых ресурсов.
Да все тоже самое, учитывая что строка и есть массив байтов.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.07.2017, 21:58

Работа с контейнером библиотеки STL
Помогите реализовать программу на с++ 2010 года , не понимаю , как это делать . Задание на картинке П.5.18.Правил Запрещено...

Работа с контейнером map, запрос на выборку
Здравствуйте дамы и господа. Возник вопрос std::map<std::pair<int, int>, Cell> myVek; myVek = Cell(20, 20, false, false); Не...

Работа с контейнером map: найти и вывести те тройки чисел, где последние числа равны
Есть программа, она с файла забирает значения. В файле набор цифр 1 2 45 2 3 60 1 2 60 Вывод я сделал, а вот вторая часть ставит в...

Проблемы с контейнером
имеются следующие типы: typedef int (*CLI_Function ) ( const std::vector <const std::string> arguments, void * data ); typedef std::map...

задача с контейнером
помогите с решение задачи с контейнером Создать контейнер "мультимножество" с элементами типа int. Контейнер пустой. Заполнить его...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru