Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 168

Обращение к объекту не по индексу, а по имени

27.12.2015, 10:59. Показов 3468. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не знаю как словами описать, лучше пример приведу:
Delphi
1
2
3
4
5
6
7
8
9
10
  type
 
    TButtons = class
     Name:string;
     List:TList<TSpeedButton>;
     constructor New(NewName:string);
    end;
 
 var
   PF_Buttons:TList<TButtons>;
Смысл в том, что мы создаём класс, добавляем его в Лист PF_Buttons, в каждом классе есть список динамически созданных кнопок в "List:TList<TSpeedButton>;"

Далее идёт обращение, допустим:
Delphi
1
PF_Buttons[0].List[0].Down:=true;
Соответственно хочется обращаться не по индексу PF_Buttons[индекс], а как то по имени, т.к. индексов будет дофига, и код становится не читаемым. на много лучше, если бы было PF_Buttons[имя]. Думаю тут ничего не сделать, но может я чего то не знаю)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.12.2015, 10:59
Ответы с готовыми решениями:

Обращение к объекту в зависимости от имени, передаваемого в функцию
Добрый день. У меня есть форма с TDataGrid и несколькими TImage. Есть процедура, которая копирует изображение из TImage в ячейку...

Обращение к компоненту по индексу
Помогите а как можно обратиться к компоненту frxDBDataset1&quot;Имя поля в таблице access&quot; по индексу чтобы поменять свойство...

Обращение к объекту родителю
Здравствуйте, у меня вот такая ситуация: Я создал два класса: type TClass1 = class //бла, бла, бла procedure...

21
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
30.12.2015, 14:02
Студворк — интернет-сервис помощи студентам
ButtonList.Add('blabla', TList<TSpeedButton>.Creale); // вот один именованый список
ButtonList.Add('fooo', TList<TSpeedButton>.Creale); // вот другой

Как их можно перепутать ?
1
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 168
30.12.2015, 17:21  [ТС]
Всё получилось, сделал так (сразу добавил новую запись в словарь с пустым списком, и затем в него добавлял кнопки)
Delphi
1
ButtonList.Add('Position',TList<TSpeedButton>.Create);
а до этого я отдельно создавал список кнопок, и потом пробовал его добавить в словарь
Delphi
1
2
3
4
5
var But:TList<TSpeedButton>;
But:=TList<TSpeedButton>.Create;
But.Add(TSpeedButton.Create(Form2));
....
ButtonList.Add('Window',But);
Добавлено через 3 часа 8 минут
Обновил код в проекте, намного лучше стало, удобно ориентироваться и нету кучи отдельных списков.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.12.2015, 17:21
Помогаю со студенческими работами здесь

Обращение к объекту не по полю Name.
Ситуация такова: на форме есть шесть компонентов типа TShape(Shape1...Shape6). Как скопировать в !ЦИКЛЕ! цвета заливки первых трех фигур в...

Обращение по имени и индексу
Ребята, ткните носом, как реализовать следующее: Есть список объектов Items. namespace ClassesTest { class...

Обращение к объекту по имени
В ходе скрипта генерируется какое-то количество объектов img с name вида n1,n2 и т.д. Я хочу обработать, например, onmouseover на...

Обращение к объекту по имени
Такая ситуация: Есть много listbox'ов и в один прекрасный момент когда нажимается кнопка TButton на форме мне нужно отловить на каком...

Обращение к объекту не зная его имени
Есть у нас объект tefal в объекте machines, и у него есть метод run(); Зная название объекта &quot;Tefal&quot; мы можем вызвать run таким...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru