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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2011, 18:40   #1
ВалекFCRK
Форумчанин
 
Регистрация: 04.06.2011
Сообщений: 120
Сообщение процедура клика на динамический объект

Есть процедура для клика по динами-кому объекту.

procedure TForm1.LabelClick(p: integer;Sender: TObject);
begin
...
end;

Вот так я ее прописал в type
procedure LabelClick(p: integer;Sender: TObject);

Вот тут создаются динамические Label
Код:
Lab[nom]:=tbevel.Create(self);
Lab[nom].Left:=4;
Lab[nom].Top:=200;
Lab[nom].Tag:=1;
Lab[nom].Width:=545;
Lab[nom].Height:=25;
Tex[nom].OnClick:=TForm1.LabelClick(n);
Lab[nom].Style:=bsRaised;
Lab[nom].Parent:=panel4;
n:=n+1;
Нужно вобщем чтобы при клике на каждый LAbel в процедуре переменная p менялась в зависимости от того, на какой Label я нажал.

Помогите пожалуйста

Последний раз редактировалось Stilet; 04.06.2011 в 21:02.
ВалекFCRK вне форума Ответить с цитированием
Старый 04.06.2011, 22:11   #2
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

сохраняйте n в Tag, а обработчик .OnClick переопределять не надо
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 04.06.2011, 22:27   #3
ВалекFCRK
Форумчанин
 
Регистрация: 04.06.2011
Сообщений: 120
Печаль

К сейчашнему (извините за русский) моменту уже пробовал с Tag. В самой процедуре в case не могу сравнить этот таг.
Вот тут создается:

Tex[nom]:=tlabel.Create(self);
Tex[nom].Left:=5;
Tex[nom].Top:=w+5;
Tex[nom].Caption:=' Имя Фамилия ученика';
Tex[nom].Parent:=panel4;
Tex[nom].Tag:=nom; ///// Тагу присваиваю тотже номер что и у элемента
Tex[nom].OnClick:=LabelClick;
Tex[nom].Autosize:=False;
Tex[nom].Cursor:=crHandPoint;
Tex[nom].Width:=300;
Tex[nom].Height:=25;


Вот пишу в процедуре
case (Sender as TLabel).Tag of
0:Form3.infostudent.Lines.LoadFromF ile(dirName+'/'+floattostr(1)+'.txt');
1:Form3.infostudent.Lines.LoadFromF ile(dirName+'/'+floattostr(2)+'.txt');
2:Form3.infostudent.Lines.LoadFromF ile(dirName+'/'+floattostr(3)+'.txt');
3:Form3.infostudent.Lines.LoadFromF ile(dirName+'/'+floattostr(4)+'.txt');
4:Form3.infostudent.Lines.LoadFromF ile(dirName+'/'+floattostr(5)+'.txt');
end;


Не выходит. Ради эксперимента вывожу на левый Tag, все время показывает что 1. Вывожу переменную nom, все нормально, все время увеличивается. Помогите
ВалекFCRK вне форума Ответить с цитированием
Старый 04.06.2011, 22:52   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ваши куски кода только вводят в заблуждение. Всю прогу на форум слабо выложить?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.06.2011, 15:48   #5
ВалекFCRK
Форумчанин
 
Регистрация: 04.06.2011
Сообщений: 120
По умолчанию

мне всего лишь нужно узнать как правильно прописать в процедуре case (Sender as TLabel).Tag of
ВалекFCRK вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедура вствки элемента в динамический массив Beren42 Помощь студентам 18 26.03.2011 13:20
Динамический массив - или всё таки не динамический? vedro-compota Общие вопросы C/C++ 30 10.12.2010 23:22
Шаблоны - нужно создать объект класса abc в котором вместо aa использовался бы объект класса fff? Farrel Общие вопросы C/C++ 2 13.11.2010 17:37
Рандомный объект в Дельфи, перемещающийся по форме при событии клика мыши Raydi Помощь студентам 1 06.11.2010 19:54
Определение длины пути от клика до клика - как??? Enya Помощь студентам 0 11.05.2009 12:54