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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2012, 20:56   #1
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию Delphi. компонент TLabel

При нажатии на 1 кнопку с помощью программного кода создать компоненты Tlabel от 4 до 8 штук. В первый занести "Вариант 2" зеленым шрифтом и 12 размера.
При нажатии на 2 кнопку переписать все свойства из 1 лэйбла во 3 с помощью метода Assign.
вот, что у меня получилось
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var i,a:integer;
begin
a:=Random(4)+3;
For i:=0 to a do
 begin
 lb:=Tlabel.Create(form1);
 lb.Parent:=Form1;
 lb.Name:='a'+inttostr(i);
 lb.Caption:='';
 lb.AutoSize:=false;
 lb.width:=100;
 lb.Height:=25;
 Lb.Top:=30*i;
 lb.Left:=50;
 lb.color:=clwhite;
 if lb.Name='a0' then
  begin
   lb.caption:='Вариант 2';
   lb.Font.Color:=clgreen;
   lb.Font.Size:=12;
  end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
findcomponent((lb.name+'a'+inttostr(0)).font.assign(label2.font));
end;

end.
2 кнопка не работает вообще!
как я понял, то нужно переделать как-то вот это
Код:
Label1.Font.assign(label2.Font);
Еще думаю, что это как-то связано с FindComponent.
Женька Good вне форума Ответить с цитированием
Старый 17.03.2012, 21:14   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А причем тут фонт?
Код:
Label2.Font.Assign(Label1.Font);
Работает как полагается.
Цитата:
это как-то связано с FindComponent.
Да. Она тебе ничего не возвращает, потому что ты обьявил имя:
Цитата:
lb.Name:='a'+inttostr(i);
а пытаешся найти
Цитата:
(lb.name+'a'+inttostr(0))
Убери lb.name+
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.03.2012, 21:19   #3
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

как мне переделать вот эту строку
Код:
findcomponent(('a'+inttostr(0)).assign(label2.font));
Женька Good вне форума Ответить с цитированием
Старый 17.03.2012, 21:37   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да. Примерно так, если конечно не учитывать отсутствие проверки на nil, если findcomponent ничего не найдет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.03.2012, 21:47   #5
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Да. Примерно так, если конечно не учитывать отсутствие проверки на nil, если findcomponent ничего не найдет.
но оно не работает

findcomponent(('a'+inttostr(0)).assign(label2.font));
Там где красная точка выдает ошибку
Женька Good вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. Компонент-предок, компонент-родитель amico Помощь студентам 1 23.09.2015 21:20
Создание run-time TLabel как в Delphi? SovereignSun Общие вопросы Delphi 0 22.11.2011 16:30
[Поиск] Компонент локализации строковых ресурсов и сторонних компонент delphi Человек_Борща Компоненты Delphi 3 23.08.2011 10:44
Файл типа TLabel (Delphi) edmynt Помощь студентам 12 12.02.2010 12:48
не видно компонент TLabel IVANSour Общие вопросы Delphi 3 19.01.2009 12:41