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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2008, 23:21   #1
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию Модернизация проги

Здравствуйте!
В программе у меня нужно чтобы при нажатии на Лабел - он становился подчеркнутым и в конце нужна проверка
Помогите модернизировать мой код пожалуйста:
Код:
var variant:array[0..5] of TLabel;// описание
...
{а это уже создание Label ов}
 variant[0]:=TLabel.Create(Self);
     variant[0].Left:=-100;
     for i:=1 to 5 do
      begin
       variant[i]:=TLabel.Create(Self);
       variant[i].Parent:=Panel1;
       variant[i].Font.Size:=14;
       variant[i].Font.Color:=clHotlight;
       variant[i].Left:=variant[i-1].Left+100;
       variant[i].Top:=300;
       variant[i].AutoSize:=True;
       variant[i].Cursor:=crHandPoint;

      end;
      variant[1].Caption:='Язык';
      variant[2].Caption:='Нос';
      variant[3].Caption:='Ухо';
      variant[4].Caption:='Глаз';
      variant[5].Caption:='Кожа';
      Variant[0].Free;

   Variant[1].OnClick:=Variant1Click;
   Variant[2].OnClick:=Variant2Click;
   Variant[3].OnClick:=Variant3Click;
   Variant[4].OnClick:=Variant4Click;
   Variant[5].OnClick:=Variant5Click;
{создал и выбрал действия, нельзя ли это сделать как то поудобнее, побыстрее}

//далее идут процедуры которые вызываются при нажатии на лабел,
// ,но нужно чтобы их стало меньше}
procedure Tform3.Variant1Click(Sender: TObject);
begin
    if variant[1].Font.Style=variant[1].Font.Style+[fsUnderline]
     then
      variant[1].Font.Style:=variant[1].Font.Style-[fsUnderline]
     else
    variant[1].Font.Style:=variant[1].Font.Style+[fsUnderline];
end;
procedure Tform3.Variant2Click(Sender: TObject);
begin
    if variant[2].Font.Style=variant[2].Font.Style+[fsUnderline]
     then
      variant[2].Font.Style:=variant[2].Font.Style-[fsUnderline]
     else
    variant[2].Font.Style:=variant[2].Font.Style+[fsUnderline];
end;
procedure Tform3.Variant3Click(Sender: TObject);
begin
    if variant[3].Font.Style=variant[3].Font.Style+[fsUnderline]
     then
      variant[3].Font.Style:=variant[3].Font.Style-[fsUnderline]
     else
    variant[3].Font.Style:=variant[3].Font.Style+[fsUnderline];
end;
procedure Tform3.Variant4Click(Sender: TObject);
begin
    if variant[4].Font.Style=variant[4].Font.Style+[fsUnderline]
     then
      variant[4].Font.Style:=variant[4].Font.Style-[fsUnderline]
     else
    variant[4].Font.Style:=variant[4].Font.Style+[fsUnderline];
end;
procedure Tform3.Variant5Click(Sender: TObject);
begin
    if variant[5].Font.Style=variant[5].Font.Style+[fsUnderline]
     then
      variant[5].Font.Style:=variant[5].Font.Style-[fsUnderline]
     else
    variant[5].Font.Style:=variant[5].Font.Style+[fsUnderline];
end;
{это проверка}
procedure TForm3.Proverka3Click(Sender:Tobject);
begin
 if  (variant[2].Font.Style=variant[2].Font.Style+[fsUnderline])
 and (variant[1].Font.Style=variant[1].Font.Style-[fsUnderline])
 and (variant[3].Font.Style=variant[3].Font.Style-[fsUnderline])
 and (variant[4].Font.Style=variant[4].Font.Style-[fsUnderline])
 and (variant[5].Font.Style=variant[5].Font.Style-[fsUnderline])
     then  Showmessage('Молодец')
     else  Showmessage('внимательно прочитай задание');
end;
{Очень прошу помочь модернизировать код!Заранее спасибо!}
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 24.11.2008, 23:29   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

как-то так:
Код:
...
variant[i] := VariantClick;
...
procedure Tform3.VariantClick(Sender: TObject);
var
  SenderLabel: TLabel;
begin
  SenderLabel := (Sender as TLabel); // Определяем по какому лэйблу ткнули

  if (fsUnderline in SenderLabel.Font.Style)
    then SenderLabel.Font.Style := SenderLabel.Font.Style - [fsUnderline]
    else SenderLabel.Font.Style := SenderLabel.Font.Style + [fsUnderline];
end;
pu4koff вне форума Ответить с цитированием
Старый 25.11.2008, 02:00   #3
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию

спасибо большое, а можно модернизировать проверку?(Proverka3Click)
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
интересные проги kipish Софт 85 18.12.2022 01:03
Требуется модернизация сайта NurSulTan Фриланс 1 21.01.2008 17:39
Заморозка проги wwww Общие вопросы Delphi 3 09.10.2007 09:36
мои проги bill Помощь студентам 2 17.07.2007 21:33
Модернизация кода по выключению компьютера 01001 Помощь студентам 1 12.04.2007 19:16