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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2008, 14:11   #1
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
Плохо Вопрос о "создании" процедуры

Здравствуйте, у меня такая проблема:
Сначало я создаю массив Labelов и кнопку:
public
variant:array[1..5] of TLabel;
Button1:TButton;
...
{ Public declarations }
end;

Затем в цикле Labelы у меня создаются на форме+кнопка:
for i:=1 to 5 do
begin
variant[i]:=TLabel.Create(Self);
...
end;
Button1:=Tbutton.Create(Self);

Теперь обьявляю процедуру для кнопочки
public
procedure Button1Click(Sender: TObject);
...
{ Public declarations }
end;

Далее
Button1.OnClick:=Button1Click;
...
end;
procedure TForm2.Button1Click(Sender:Tobject) ;
begin
...
end;
А как данную операцию сделать для массива Labelов???

Помогите пожалуйста!Заранее спасибо!
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 20.08.2008, 14:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я не понял вопроса но напишу как понял:
Код:
for i:=1 to 5 do
begin
variant[i]:=TLabel.Create(Self);
variant[i].OnClick:=Button1Click;// или Label1Click если соизволишь его создать
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.08.2008, 14:28   #3
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию

Variant[1].OnClick:=Variant1Click;
Variant[2].OnClick:=Variant2Click;
Variant[3].OnClick:=Variant3Click;
Variant[4].OnClick:=Variant4Click;
Variant[5].OnClick:=Variant5Click;
я так сделал, а нельзя покрасивее???
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 20.08.2008, 15:43   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

можно, создать один обработчик и проверять кто его вызвал (sender)
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 20.08.2008, 18:25   #5
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию

И каким образом?
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 20.08.2008, 18:37   #6
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Держите пример:

Код:
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    variant : array[1..5] of TLabel;
    procedure variantClick(Sender: TObject);
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
   for i:=1 to 5 do begin
     variant[i]         := TLabel.Create(Self);
     variant[i].Parent  := Self;
     variant[i].Top     := 10+i*12;
     variant[i].Left    := 10;
     variant[i].tag     := i;
     variant[i].Caption := 'aaa';  // будет меняться по Click
     variant[i].OnClick := variantClick;
   end;
end;

procedure TForm1.variantClick(Sender: TObject);
var l:TLabel;
begin
   if not (Sender is TLabel) then exit;
   l := Sender as TLabel;
   //l.Tag - номер в массиве
   l.Caption := intToStr(l.Tag); 
end;
alexBlack вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder AleksP C++ Builder 7 11.04.2009 13:06
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49