Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2011, 14:42   #1
Rydj
Пользователь
 
Регистрация: 22.01.2011
Сообщений: 17
Вопрос [Delphi] Работа с компонентом TButton в режиме run-time

Всем привет. Не могли бы мне помочь. Задача: Управление компонентами в режиме run-time. Разработать программу динамического создания и управления различными элементами управления на форме (TButton, TLabel).

Цитата:
var
Form1: TForm1;
button:TButton;
label1:TLabel;

procedure TForm1.B1Click(Sender: TObject);
begin
if RB1.Checked=true //Если истина то создаём кнопку
then
begin
Button:= TButton.Create(self);
Button.Parent := Form1;
Button.Name:= EName.Text;
Button.Left := StrToInt(ELeft.Text);
Button.Top := StrToInt(ETop.Text);
end
else
С созданием компонента впринципе всё понятно, а вот как им управлять неочень. К примеру я создал 3 кнопки, и вдруг мне понадобилось изменить свойства одной из них, как мне к ней обратиться?
Rydj вне форума Ответить с цитированием
Старый 29.01.2011, 14:51   #2
baster128
Форумчанин
 
Аватар для baster128
 
Регистрация: 24.04.2010
Сообщений: 205
По умолчанию

Не понял вопроса. Так и обратиться:
Button.Name:= EName.Text;
Button.Left := StrToInt(ELeft.Text);
Button.Top := StrToInt(ETop.Text);
из твоего кстати кода
baster128 вне форума Ответить с цитированием
Старый 29.01.2011, 14:56   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
Button.Name:= EName.Text;
вот и обращайся к ней по этому имени
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 29.01.2011, 14:58   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Сообщение от Rydj Посмотреть сообщение
Всем привет. Не могли бы мне помочь. Задача: Управление компонентами в режиме run-time. Разработать программу динамического создания и управления различными элементами управления на форме (TButton, TLabel).



С созданием компонента впринципе всё понятно, а вот как им управлять неочень. К примеру я создал 3 кнопки, и вдруг мне понадобилось изменить свойства одной из них, как мне к ней обратиться?
Найти её на фоме по исени, а потом обращатся.
Код:
var
btn_temp:TComponent;
begin
btn_temp:= Form1.FindChildControl('ddd');
if Assigned(btn_temp) then
if btn_temp is TButton then
(btn_temp as TButton).Caption:='та самая';
PS : Действительно не заметил, переменная то глобальная, согласен с *Mad_Cat* и *baster128*

Последний раз редактировалось vovk; 29.01.2011 в 15:06.
vovk вне форума Ответить с цитированием
Старый 29.01.2011, 15:00   #5
baster128
Форумчанин
 
Аватар для baster128
 
Регистрация: 24.04.2010
Сообщений: 205
По умолчанию

Извини дошло. Создай строковый массив ButName:array of string и пиши в него нейм каждой созданой кнопки и потом через соответствующий нейм обращайся к свойствам. А еще лучше брось на форму два ComboBox и в него все неймы из него выбираещь кнопку а из другого свойства (которые предварительно туда введешь).
baster128 вне форума Ответить с цитированием
Старый 29.01.2011, 15:03   #6
Rydj
Пользователь
 
Регистрация: 22.01.2011
Сообщений: 17
По умолчанию

Процедура которую я написал создаёт кнопку с параметрами которые задал пользователь, предположим пользователь создал 3 кнопки и решил изменить координаты 2-ой кнопки как ему к ней обратиться?
Rydj вне форума Ответить с цитированием
Старый 29.01.2011, 15:05   #7
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Хотя точно кнопка то не одна)) так как в первых 2 постах, только к последне обратишся, в общем или поиск как я писал, или массив как baster128 предлагает.

Последний раз редактировалось vovk; 29.01.2011 в 15:09.
vovk вне форума Ответить с цитированием
Старый 29.01.2011, 15:05   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
//имя то кнопки 2 он надеюсь помнит)
ИмяВторойКнопки.Left
ИмяВторойКнопки.Top
ИмяВторойКнопки.Width
ИмяВторойКнопки.Height
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 29.01.2011, 15:09   #9
Rydj
Пользователь
 
Регистрация: 22.01.2011
Сообщений: 17
По умолчанию

Цитата:
Сообщение от baster128 Посмотреть сообщение
Извини дошло. Создай строковый массив ButName:array of string и пиши в него нейм каждой созданой кнопки и потом через соответствующий нейм обращайся к свойствам. А еще лучше брось на форму два ComboBox и в него все неймы из него выбираещь кнопку а из другого свойства (которые предварительно туда введешь).
По идее так не получится я создавал переменную типа стринг которая знает имя текущей кнопки, Компилятор не воспринимает стринг как компонент поэтому ругается когда пишем CName:string ... CName:=EName.Text; CName.(и тут делфа ругается).
vovk спс ща твой вариант попробую
Rydj вне форума Ответить с цитированием
Старый 29.01.2011, 15:11   #10
Rydj
Пользователь
 
Регистрация: 22.01.2011
Сообщений: 17
По умолчанию

Планирую в Комбобоксе хранить имена, а их наверно пропускат через поиск который дал vovk
Rydj вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Run-time error 13 olimpus Microsoft Office Excel 11 25.12.2010 22:49
управление компонентами в режиме run-time. KrisPipis Помощь студентам 3 08.12.2010 01:11
ActionManager - работа в run - time chingiz Компоненты Delphi 0 10.10.2009 08:48
Run-time загрузка таблиц MS SQL Server в DBGrid Delphi 7 Ketra БД в Delphi 3 21.08.2009 16:31
При создание edit, в режиме run-time, нет стандартного контекстного меню slips Общие вопросы Delphi 6 08.11.2008 17:05