![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравстуйте, у меня есть такой вопрос. Можно ли обратиться к объекту зная лишь имя? Т.е. например на форме находится 3 кнопки. При нажатии на каждую из этих кнопок в глобальную переменную сохраняется имена этих кнопок.
Код:
var Form1: TForm1; btnname: string; implementation {$R *.dfm} procedure TForm1.sSpinEdit1Change(Sender: TObject); var a: TsButton; begin a.Name:= btnname; sSpinEdit1.Value:= a.Top; a.Top:= sSpinEdit1.Value; end; procedure TForm1.sButton1Click(Sender: TObject); begin btnname:= 'sButton1'; end; procedure TForm1.sButton2Click(Sender: TObject); begin btnname:= 'sButton2'; end; procedure TForm1.sButton3Click(Sender: TObject); begin btnname:= 'sButton3'; end; procedure TForm1.sSpinEdit2Change(Sender: TObject); var a:TsButton; begin a.Name:= btnname; sSpinEdit2.Value:= a.left; a.left:= sSpinEdit2.Value; end; end. |
#2
|
||||
|
||||
![]() Во-первых, можно сохранить не имя, а Sender, переданный в функцию sButton1Click. Это и есть кнопка.
Во-вторых, есть FindComponent jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
![]() Код:
procedure TForm1.sSpinEdit1Change(Sender: TObject); var MyComponent: TComponent; begin MyComponent:= FindComponent(btnname); TsButton(MyComponent).Top:= sSpinEdit1.Value; end; Последний раз редактировалось BlackMonsta, 23.03.2015 в 22:05. |
#4
|
||||
|
||||
![]() А ведь в том же сообщении было и куда более адекватное и логичное решение, но его ты решил проигнорировать.
![]() jmp $ ; Happy End! The Cake Is A Lie. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
Freeman (24.03.2015)
|