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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 08.08.2009, 04:37   #1
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию Как создать событие OnClick...

//Смотрите пост #3

Последний раз редактировалось zotox; 08.08.2009 в 20:22.
zotox вне форума
Старый 08.08.2009, 05:33   #2
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
компонент на форме создается через код
Программно что ли?)

Допустим на форме есть MyLabel и обработчик нажатия для него... Тогда возможно что-то вроде этого:
Код:
Var i: Integer =0; n: Integer =1;

...

Procedure TForm1.MyLabelClick(Sender: TObject);
Begin
i:=i+1;
Form1.Caption:=IntToStr(i);
End;

Procedure TForm1.Button1Click(Sender: TObject);
Var mylabel: TLabel;
Begin
mylabel:=TLabel.Create(Self);
mylabel.Parent:=Form1;
mylabel.Name:='Label'+IntToStr(n);
mylabel.Caption:='Label'+IntToStr(n);
mylabel.AutoSize:=True;
mylabel.Left:=Random(Width-100);
mylabel.Top:=Random(Height-100);
mylabel.OnClick:=Form1.MyLabelClick;
mylabel.Visible:=True;
n:=n+1;
End;
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума
Старый 08.08.2009, 06:22   #3
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

DomiNick спасибо! :-)

Вот такой еще вопрос...
MyLabelClick(Sender: TObject);
Если поменять на
MyLabelClick(Sender: TObject;lbl: integer);

Мне нужно чтобы можно было записывать так...

MyLabelClick(3);

Но он не пашет так (так как мешает Sender: TObject)(не твердо стою на процедурах/функциях)...

Подскажите как разрешить вот такую проблему?

Последний раз редактировалось zotox; 08.08.2009 в 07:00.
zotox вне форума
Старый 08.08.2009, 20:22   #4
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Ап. Вопрос в посте #3 все еще интересует!
zotox вне форума
Старый 08.08.2009, 20:45   #5
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,762
По умолчанию

А зачем? Что из этого числа должно вытекать?
может вашу задумку както по другому можно сделать?

Последний раз редактировалось vovk; 08.08.2009 в 20:47.
vovk вне форума
Старый 08.08.2009, 20:51   #6
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
А зачем? Что из этого чиста должно вытекать?
может вашу задумку както по другому можно сделать?
Да... Можно будет по другому но будет совсем не удобно (точно щас не могу сказать можно ли это будет реализовать или нет, в разработке скажем так)
Вытекать должно следующие...

В процедуре будет массив, процедура будет выглядеть примерно так:

Код:
procedure TForm1.MyLabelClick(Sender: TObject;lbl: integer);
begin
 edit1.text:=p[lbl];
end;
Массив уже заполнен конечно же (сам массив --> переменная "p" (без ковычек))
zotox вне форума
Старый 08.08.2009, 21:24   #7
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,762
По умолчанию

да решения есть, можно при создании к примеру в tag номер записывать
Код:
....
mylabel:=TLabel.Create(Self);
mylabel.Parent:=Form1;
mylabel.Name:='Label'+IntToStr(n);
mylabel.Caption:='Label'+IntToStr(n);
mylabel.Tag:=n+5;
....
....
и использовать так
Код:
procedure TForm1.MyLabelClick(Sender: TObject;lbl: integer);
begin
 edit1.text:=p[Tlabel(Sender).Tag];
end;
или вообще Caption использовать
Код:
...
mylabel.Caption:=IntToStr(n);
...

procedure TForm1.MyLabelClick(Sender: TObject;lbl: integer);
begin
 edit1.text:=p[StrToInt(Tlabel(Sender).Caption)];
end;

Последний раз редактировалось vovk; 08.08.2009 в 21:36.
vovk вне форума
Закрытая тема


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как создать событие при печати документа funthing Microsoft Office Excel 2 07.08.2009 11:28
Отключить событие OnClick у MenuItem с SubMenu Juni Компоненты Delphi 0 17.05.2009 12:17
Событие onclick в списке <select> Killer_djon JavaScript, Ajax 5 28.04.2009 17:20
Как создать событие(которое выполняется в определённое время) micaell Общие вопросы Delphi 5 13.12.2006 18:35