Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/54: Рейтинг темы: голосов - 54, средняя оценка - 4.52
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,218
Записей в блоге: 2

Как создать глобальную константу для объекта

30.03.2012, 12:40. Показов 10538. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Может я просто терминологию где-то неверно использую - заранее не кидайтесь пустыми бутылками)))
Есть 5 процедур, работающих с 3 объектами: кнопкой и 2 листбоксами
По идее эти пять функций планируется использовать для разных групп кнопок и листбоксов
Насколько я понимаю - речь может идти о классе.

Хотелось бы задать 3 глобальных константы, доступные всем пяти процедурам в равной степени
по типу
Visual Basic
1
2
3
Const listBxVar As Object = ListBox1
Const listBxVar2 As Object = ListBox2
Const comboBx As Object = ComboBox1
Но при размещении этих выражений в разделе глобальных переменных и констант возникает ошибка
Invalid data type for constants
Как добиться желаемого?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.03.2012, 12:40
Ответы с готовыми решениями:

Как создать глобальную константу для всего проекта?
как создать?

Как объявить глобальную константу?
Пример из хелпа не работает: ' Declare Public constant. Public Const MyString = 'HELP'

Как qt создать глобальную переменную для двух классов?
Как qt создать глобальную переменную для двух классов, которой не будет в mainwindow.cpp?

14
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
30.03.2012, 12:49
Можно задать константы - имена объектов, например
Visual Basic
1
Const listBxVarName = "ListBox1"
и обращаться к ним с помощью
Visual Basic
1
MyForm.Controls(listBxVarName)
Но какой во всем этом смысл? Константы так же неизменны во время выполнения, как кодовые имена объектов.
1
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,218
Записей в блоге: 2
30.03.2012, 12:58  [ТС]
Смысл в том, чтобы одним действием переназначить другой компонент при переносе кода или при обращении к коду. Думаю, что это обеспечит мобильность использования кода. Что-то типа класса получается. Хотя я плохо в создании классов разбираюсь. Но если этот вопрос решу - опубликую здесь всю наработку - хотя бы для того, чтобы обсудить косяки
0
 Аватар для Апострофф
9908 / 3919 / 742
Регистрация: 11.10.2011
Сообщений: 5,902
30.03.2012, 13:32
Цитата Сообщение от AndreA SN Посмотреть сообщение
Есть 5 процедур, работающих с 3 объектами: кнопкой и 2 листбоксами
По идее эти пять функций планируется использовать для разных групп кнопок и листбоксов
Может быть, так можно выкрутиться:
На форме соответствующие объекты
Visual Basic
1
2
3
Private Sub CommandButton1_Click()
Proc1 CommandButton1, ListBox1, ListBox2
End Sub
В отдельном модуле процедуры типа
Visual Basic
1
2
3
4
Sub Proc1(cb As MSForms.CommandButton, lb1 As MSForms.ListBox, lb2 As MSForms.ListBox)
 'lb1.AddItem cb.Caption
  'lb2.AddItem StrReverse(cb.Caption)
End Sub
которым можешь передавать любую комбинацию объектов указанного типа из любой формы проекта.
1
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,218
Записей в блоге: 2
30.03.2012, 13:56  [ТС]
Казанский, твой способ работает внутри функций
Но вот такое не работает.
Visual Basic
1
Private Sub comboBx_Change()
что в этом случае делать?

Добавлено через 18 минут
может можно как-то назначить процедуру в качестве исполняемой при возникновении события?... ломаю башку...
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
30.03.2012, 14:45
Используйте операторы условной компиляции, можно в сочетании с классами.
В примере константа SelectControl задает - значение какого комбобокса копируется в текстбокс. Константа может принимать значения 1 или 2.
Вложения
Тип файла: doc Doc1.doc (43.0 Кб, 17 просмотров)
1
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,218
Записей в блоге: 2
30.03.2012, 16:36  [ТС]
В архиве то, что я пытаюсь сделать.
Идея такова: в файле Excel имеется одна таблица, размеры которой измеряются тысячами строк.
Заполнена по принципу - встретился документ - вручную или с помощью FineReader внесли строку. В результате имеются дубликаты, разночтения и т.п. - которые я должен отобрать, выделить правильный и случайно попавшие исключения, затем заменить оставшийся мусор на правильный вариант.

В файле реализация выбора:
По номеру (или любому другому элементу) выбираются дубликаты - отображаются в ListBox5 - в виде таблички
С помощью комбобох - выбираем правильный на наш взгляд вариант - этот вариант исчезает из списка вариантов ListBox5
Если какие-то варианты будут выделены галочкой в ListBox5 - номера строк отображаются в listBox6
они будут считаться исключениями при обработке вариантов в дальнейшем

Вызов всей этой бодяги делается по нажатию кнопки на форме
Но сейчас вызов не проходит. И никаких сообщений об ошибке не выдается...

За код не ругайте - самопал я. Пишу так, чтоб сам разобрался потом))) Но за любой совет по оптимизации буду благодарен - лишь бы я его понял)))
Вложения
Тип файла: rar многоколоночный комбобокс.rar (85.7 Кб, 13 просмотров)
0
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,218
Записей в блоге: 2
30.03.2012, 17:51  [ТС]
извиняюсь... сообщение об ошибке выдается: Method or data memeber not found

Добавлено через 53 минуты
Решил проблему))
сейчас будете смеяться)))
Я пытался privat-процедуру вызывать из пространства вне класса)))
заменил на Public ))) тестим дальше)))

Добавлено через 48 секунд
53 минуты жизни и нервов на собственный дебилизм потрачено... с ума сойти... хорошо хоть пиво не тратил...
0
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,218
Записей в блоге: 2
30.03.2012, 18:40  [ТС]
Готовый вариант... вроде работает... кто-нибудь - протестируйте на глупости. Буду искренне благодарен)))
Вложения
Тип файла: rar многоколоночный комбобокс.rar (92.7 Кб, 23 просмотров)
0
1705 / 574 / 74
Регистрация: 10.04.2009
Сообщений: 9,283
30.03.2012, 19:08
можно для 2003 го?
0
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,218
Записей в блоге: 2
31.03.2012, 22:29  [ТС]
Эндрю - вот сохраненный файл под 2003
Малость доработаны косяки всякие. теперь всё работает как надо вроде
Плюс два разных варианта - на двух кнопках реализовано
Вложения
Тип файла: rar многоколоночный комбобокс.rar (80.0 Кб, 18 просмотров)
0
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,218
Записей в блоге: 2
31.03.2012, 23:16  [ТС]
перед всеми извиняюсь за почти сутки молчания...пытался настроить домашнюю группу - сетка глюкнула так, что "мама не горюй"! в результате сутки без интернета и всё равно без домашней группы)))
0
1705 / 574 / 74
Регистрация: 10.04.2009
Сообщений: 9,283
01.04.2012, 11:05
качнул, есть файл:многоколоночный комбобокс.xls
и где там спрятан весь функционал?
0
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,218
Записей в блоге: 2
01.04.2012, 12:30  [ТС]
Прилепил кнопку запуска формы

Иначе:
ALt+F11 - запуск VBA
Userform1 открываем в обозревателе - и жмем F5
Вложения
Тип файла: xls многоколоночный комбобокс.xls (79.5 Кб, 21 просмотров)
0
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,218
Записей в блоге: 2
01.04.2012, 12:40  [ТС]
чуть позже сброшу вариант - когда возвращаются отдельно выбранный вариант (combobox.value) и массив для обработки (ListBox5 без исключенных вариантов ListBox6)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.04.2012, 12:40
Помогаю со студенческими работами здесь

Как создать глобальную переменную для доступа из других файлов?
TStringList* SL = new TStringList; Как создать не в функции, а как глобальную переменную для доступа из других файлов?

Как создать константу для нескольких файлов проекта
Создал константу, если писать в несколько заголовочных файлов а потом инклюдить в один вызывается ошибка

Как создать глобальную переменную?
Доброй ночи. Спасайте. Надо создать глобальную переменную string, Значение которой будет задаваться в одном классе, а использоваться в...

Как создать глобальную метку?
Имеется таймер с кодом: void __fastcall TForm1::Timer1Timer(TObject *Sender) { sec++; Label1->Caption=60*prov_kvit-sec; ...

Как создать глобальную структуру?
В Unit1 создал структуру: struct baza { String name; int n; float price; } ;


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru