Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
22.08.2021, 08:18
|
|||
---|---|---|---|
|
|||
Динамическое обращение к объектам |
|||
#18+
На форме имеется 10 объектов TLabel, возможно ли в цикле через переменную обращаться к свойстам данных объектов? Например, Код: pascal 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.08.2021, 10:59
|
|||
---|---|---|---|
|
|||
Динамическое обращение к объектам |
|||
#18+
AnWa, Можно, сделав массив ссылок на них. Либо установив в Tag нужный номер и перебором ComponentCount. Либо перебором ComponentCount и анализом Name/Caption ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.08.2021, 12:10
|
|||
---|---|---|---|
|
|||
Динамическое обращение к объектам |
|||
#18+
Gerasimenko Насколько я понял, если перебором, то Component[i] не обязательно равен Label[i] А в массив ссылок получается можно привязать индекс к конкретному объекту? Т.е.: Код: pascal 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.08.2021, 12:54
|
|||
---|---|---|---|
|
|||
Динамическое обращение к объектам |
|||
#18+
AnWa Gerasimenko Насколько я понял, если перебором, то Component[i] не обязательно равен Label[i] А в массив ссылок получается можно привязать индекс к конкретному объекту? Т.е.: Код: pascal 1. 2. 3. 4. 5.
1. Если использовать Tag в качестве индекса, то можно перебором 2. Да ps в твоем случае лучше использовать массив record - ов типа Код: pascal 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.08.2021, 13:01
|
|||
---|---|---|---|
Динамическое обращение к объектам |
|||
#18+
AnWa На форме имеется 10 объектов TLabel, возможно ли в цикле через переменную обращаться к свойстам данных объектов? Возможно, но массив именно TLabel нужно построить: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.08.2021, 13:02
|
|||
---|---|---|---|
|
|||
Динамическое обращение к объектам |
|||
#18+
AnWa, И, да, если использовать в имени компонента нумерацию, то можно через FindComponent ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.08.2021, 13:33
|
|||
---|---|---|---|
Динамическое обращение к объектам |
|||
#18+
AnWa На форме имеется 10 объектов TLabel, возможно ли в цикле через переменную обращаться к свойстам данных объектов? Возможно всё. А если выбирать для каждой задачи правильное решение, то многое возможное становится не нужным. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.08.2021, 16:00
|
|||
---|---|---|---|
|
|||
Динамическое обращение к объектам |
|||
#18+
Gerasimenko То, что нужно, благодарю. Код: pascal 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.08.2021, 10:22
|
|||
---|---|---|---|
|
|||
Динамическое обращение к объектам |
|||
#18+
var Labels := TArray<TLabel>.Create(Label1, Label2, ...) ну и дальше шуровать по нему ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.08.2021, 13:54
|
|||
---|---|---|---|
Динамическое обращение к объектам |
|||
#18+
AnWa, Только каждый FindComponent() - то тоже цикл for с перебором всех компонентов. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.08.2021, 15:59
|
|||
---|---|---|---|
Динамическое обращение к объектам |
|||
#18+
Gerasimenko 1. Если использовать Tag в качестве индекса, то можно перебором 2. Да ps в твоем случае лучше использовать массив record - ов типа Код: pascal 1. 2. 3. 4. 5. 6.
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
шутка ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.08.2021, 17:55
|
|||
---|---|---|---|
Динамическое обращение к объектам |
|||
#18+
AnWa Gerasimenko То, что нужно, благодарю. Код: pascal 1. 2. 3.
плохое решение. лучше так: Код: pascal 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.08.2021, 15:50
|
|||
---|---|---|---|
|
|||
Динамическое обращение к объектам |
|||
#18+
makhaon, а как в таком решении убедиться, что Label[I] получила 'Текст ' + IntToStr(I)? Нужен бцдут еще один цикл.. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.08.2021, 17:01
|
|||
---|---|---|---|
Динамическое обращение к объектам |
|||
#18+
AnWa, Ну добавь еще одну переменную: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.08.2021, 18:36
|
|||
---|---|---|---|
|
|||
Динамическое обращение к объектам |
|||
#18+
makhaon, мне надо, чтобы Label1.Caption := 'Текст 1', Label2.Caption := 'Текст 2', ..., Labeli.Caption := 'Текст i' Код: pascal 1.
а как тут, я могу быть уверен, что Components[1]==Label1, Components[2]==Label2, ..., Components[i]==Labeli? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.08.2021, 19:19
|
|||
---|---|---|---|
Динамическое обращение к объектам |
|||
#18+
AnWa, Использовать Tag. Говорили же уже 5 раз. Указать его, а затем в цикле на него ориентироваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.08.2021, 19:26
|
|||
---|---|---|---|
Динамическое обращение к объектам |
|||
#18+
AnWa makhaon, мне надо, чтобы Label1.Caption := 'Текст 1', Label2.Caption := 'Текст 2', ..., Labeli.Caption := 'Текст i' Код: pascal 1.
а как тут, я могу быть уверен, что Components[1]==Label1, Components[2]==Label2, ..., Components[i]==Labeli? Код: pascal 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.08.2021, 20:09
|
|||
---|---|---|---|
Динамическое обращение к объектам |
|||
#18+
AnWa Код: pascal 1. 2. 3. 4. 5.
Судя по наличию TLabel и TEdit - Вам бы очень подошел какой-либо Grid (самое простое - TStringGrid, но могут быть и ньюансы) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2021, 00:21
|
|||
---|---|---|---|
|
|||
Динамическое обращение к объектам |
|||
#18+
makhaon AnWa, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
До меня дошло, если имена объектов возрастают соответственно их добавлению, а не были присвоены после и в разброс, то код справидлив, только j начинать с 1 makhaon Код: pascal 1. 2. 3. 4. 5. 6. 7.
Своим примером я хотел показать, что в конкретный лэйбел, мне нужно конкретное значение, а не так буквально))) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2021, 00:24
|
|||
---|---|---|---|
|
|||
Динамическое обращение к объектам |
|||
#18+
YuRock AnWa, Использовать Tag. Говорили же уже 5 раз. Указать его, а затем в цикле на него ориентироваться. А если findcomponent тот же цикл, если ли смысл использовать другой цикл? Но, да, вариант с Tag я как то пропустил ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2021, 00:30
|
|||
---|---|---|---|
|
|||
Динамическое обращение к объектам |
|||
#18+
[quot x1ca4064#22364365] AnWa Судя по наличию TLabel и TEdit - Вам бы очень подошел какой-либо Grid (самое простое - TStringGrid, но могут быть и ньюансы) Да, я тоже начинаю склоняться к использованию Grid, вот можно было бы там также просто менять цвет яцейки свойством Color( Код: pascal 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2021, 03:01
|
|||
---|---|---|---|
|
|||
Динамическое обращение к объектам |
|||
#18+
AnWa YuRock AnWa, Использовать Tag. Говорили же уже 5 раз. Указать его, а затем в цикле на него ориентироваться. А если findcomponent тот же цикл, если ли смысл использовать другой цикл? Но, да, вариант с Tag я как то пропустил Лично я уже давно говорил, что findcomponent это функция придуманная троешниками для троешников. Грамотному разработчику она никогда не может быть необходима. И с очень большой вероятностью никогда не может быть полезна. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2021, 09:33
|
|||
---|---|---|---|
Динамическое обращение к объектам |
|||
#18+
AnWa Да, я тоже начинаю склоняться к использованию Grid, вот можно было бы там также просто менять цвет яцейки свойством Color( Код: pascal 1.
http://avemey.narod.ru/zcolorstringgrid/zcolorstringgrid.html ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2021, 16:21
|
|||
---|---|---|---|
Динамическое обращение к объектам |
|||
#18+
AnWa YuRock AnWa, Использовать Tag. Говорили же уже 5 раз. Указать его, а затем в цикле на него ориентироваться. А если findcomponent тот же цикл, если ли смысл использовать другой цикл? Но, да, вариант с Tag я как то пропустил 1. findcomponent ты вызываешь уже в цикле. В итоге у тебя N+1 циклов. 2. findcomponent сравнивает строки, что намного хуже, чем числа. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=58&mobile=1&tid=2037079]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 270ms |
total: | 426ms |
0 / 0 |