powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как можно обратиться к компоненту label из цикла?
12 сообщений из 12, страница 1 из 1
Как можно обратиться к компоненту label из цикла?
    #33820749
SVR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SVR
Гость
Здравствуйте!
У меня на форме размещено 256 компонентов label с именами
label1, label2, ... label256.
Я присваиваю этим компонентам значения таким образом:
ThisForm.label1.Caption='значение1'
Можно ли всем этим компонентам присваивать значения в таком цикле?
for i=1 to 256
<присваиваем значение>
endfor
Как в этом случае обращаться к компоненту label?
...
Рейтинг: 0 / 0
Как можно обратиться к компоненту label из цикла?
    #33820814
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, например с помощью макроподстановки
Код: plaintext
1.
2.
3.
4.
5.
6.
LOCAL  m.lcCommand,  m.lcValue 
FOR m.i =  1  TO  256 
   m.lcValue = 'Бла-Бла'
   m.lcCommand = [ThisForm.label] + CAST(m.i AS V( 3 )) + [.Caption='] + ;
   m.lcValue +[']
   &lcCommand
ENDFOR
Возможно тоже самое сделать через коллекцию THISFORM.Objects

С уважением, Алексей
...
Рейтинг: 0 / 0
Как можно обратиться к компоненту label из цикла?
    #33820906
SVR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SVR
Гость
Выдает ошибку:
Function name is missing ).
...
Рейтинг: 0 / 0
Как можно обратиться к компоненту label из цикла?
    #33821137
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вы сообщайте версию VFP !
Если у вас не 9, то вместо CAST(m.i AS V(3)) надо ALLTRIM(STR(m.i))
С уважением, Алексей
...
Рейтинг: 0 / 0
Как можно обратиться к компоненту label из цикла?
    #33821411
Al_fa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Макроподстновка здесь будет избыточна , хватит и именованного выражения

Код: plaintext
1.
2.
3.
FOR m.i =  1  TO  256 
   store 'Бла-Бла' to ('ThisForm.label' + transform(m.i) + '.Caption')
ENDFOR 
...
Рейтинг: 0 / 0
Как можно обратиться к компоненту label из цикла?
    #33821783
SVR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SVR
Гость
Все нормально. Получилось и тем, и другим способом. Спасибо!
...
Рейтинг: 0 / 0
Как можно обратиться к компоненту label из цикла?
    #33821790
piva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Луше бы сделал массив из Label меньше проблем было бы
...
Рейтинг: 0 / 0
Как можно обратиться к компоненту label из цикла?
    #33822808
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я бы все-таки сделал через коллекцию Objects.
Более эстетичнее выглядит код и не зависит от кол-во обектов Lable на форме

Код: plaintext
1.
2.
3.
4.
FOR EACH loLable IN THISFORM.Objects
	IF loLable.BaseClass = "Label"
		loLable.Caption = "Мой текст"
	ENDIF
ENDFOR
С уважением, Алексей
...
Рейтинг: 0 / 0
Как можно обратиться к компоненту label из цикла?
    #33822973
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-KТак вы сообщайте версию VFP !
Если у вас не 9, то вместо CAST(m.i AS V(3)) надо ALLTRIM(STR(m.i))
С уважением, АлексейВот уж совсем не ALLTRIM, а PADR уж тогда ;-)
...
Рейтинг: 0 / 0
Как можно обратиться к компоненту label из цикла?
    #33823139
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Urri Aleksey-KТак вы сообщайте версию VFP !
Если у вас не 9, то вместо CAST(m.i AS V(3)) надо ALLTRIM(STR(m.i))
С уважением, АлексейВот уж совсем не ALLTRIM, а PADR уж тогда ;-)
И почему СОВСЕМ не ALLTRIM, а PADR ?
С уважением, Алексей.
...
Рейтинг: 0 / 0
Как можно обратиться к компоненту label из цикла?
    #33823735
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-K
Беру свои комментарии назад. Не въехал в контекст. Показалось, речь идет о select
...
Рейтинг: 0 / 0
Как можно обратиться к компоненту label из цикла?
    #33827588
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Aleksey!

В качестве ещё одной альтернативы:

loObj = GETPEM(ThisForm, "label" + ALLTRIM(STR(m.i)))
loObj.Caption = "Надпись # " + ALLTRIM(STR(m.i))

Это в ряде случаев даёт приличный выигрыш по скорости (GETPEM заметно
быстрее макро, а создание временной "короткой" ссылки позволяет сразу
обработать кучу свойств/методов объекта, не получая каждый раз эту ссылку
заново)

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как можно обратиться к компоненту label из цикла?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]