|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Изменение свойств кнопки по переменной
Как изменить свойство TButton на другой форме, номер которого зависит от переменной count?
С лэйблом работает такое: Код:
TLabel(Form1.Components[count]).Visible := True; Код:
TButton(Form1.Components[count]).Visible := True; |
#2
|
||||
|
||||
Цитата:
Вообще лучше проверять что там действительно кнопка: Код:
if Form1.Components[count] is TButton then TButton(Form1.Components[count]).Visible := True else ShowMessage('Это не кнопка!'); |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
SHIFT999 (26.11.2012)
|
#3
|
|||
|
|||
Мда, выдается сообщение, что это не кнопка... Активируется вообще почему-то лейбл, хоть и написано TButton.
Может другой способ найдется? |
#4
|
|||
|
|||
Цитата:
Form1.Components это список всех элементов на форме а цифра в [] это номер конкретного элемента, делай выводы |
#5
|
||||
|
||||
Вот так точно будет работать, "проверено электроникой" :-:
Код:
for i := 0 to form2.ComponentCount-1 do if (form2.Components[i] is TButton) and (i= count) then (form2.Components[i] as TButton).Visible:= true; Код:
if (form2.Components[count] is TButton)then (form2.Components[count] as TButton).Visible:= true; Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 26.11.2012 в 22:58. Причина: Переработка |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
SHIFT999 (26.11.2012)
|
#6
|
|||
|
|||
Цитата:
|
#7
|
||||
|
||||
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 26.11.2012 в 23:44. |
#8
|
||||
|
||||
Цитата:
Код:
var i: Integer; sl: TStringList; begin sl := TStringList.Create; try for i := 0 to Form1.ComponentCount - 1 do begin sl.Add(Format('Номер=%d'#9'Компонент="%s"'#9'Имя="%s"', [i, Form1.Components[i].ClassName, Form1.Components[i].Name])); end; ShowMessage(sl.Text); finally sl.Free; end; end; |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
SHIFT999 (27.11.2012)
|
#9
|
|||
|
|||
Ага, он 28-й! Теперь пусть и некрасиво, но работает
Код:
TButton(Form1.Components[count+28]).Visible := True; |