|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.06.2011, 20:38 | #1 |
Форумчанин
Регистрация: 04.06.2011
Сообщений: 120
|
Проблема с Tag в динамических объектах
Вот у меня кнопка, при нажатии на которую создается LAbel.
Tex[nom]:=tlabel.Create(self); Tex[nom].Left:=5; Tex[nom].Top:=w+5; Tex[nom].Tag:=tag+nom; Tex[nom].Caption:=' '+sename.text+' '+name.text; Tex[nom].Parent:=Form1.panel4; Tex[nom].Autosize:=False; Tex[nom].OnClick:=Form1.LabelClick; Tex[nom].Cursor:=crHandPoint; Tex[nom].Width:=300; Tex[nom].Height:=25; w:=w+27; nom:=nom+1; Вот так он описан: Tex:array [1..20] of TLabel; Вот процедура OnClick для динамического объекта: procedure TForm1.LabelClick(Sender: TObject); begin case TLabel(Sender).Tag of 0:Form3.infostudent.Lines.LoadFromF ile(dirName+'/'+floattostr(0)+'.txt'); 1:Form3.infostudent.Lines.LoadFromF ile(dirName+'/'+floattostr(1)+'.txt'); 2:Form3.infostudent.Lines.LoadFromF ile(dirName+'/'+floattostr(2)+'.txt'); 3:Form3.infostudent.Lines.LoadFromF ile(dirName+'/'+floattostr(3)+'.txt'); end; Form3.Show; end; Не могу понять в чем ошибка. При компиляции ошибок нет, вот только при компиляции он делает не то что нужно. Помогите |
06.06.2011, 20:39 | #2 |
Форумчанин
Регистрация: 04.06.2011
Сообщений: 120
|
прошу прощения. Не при компиляции. а при запуске
|
06.06.2011, 21:52 | #3 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
Чему равна nom при старте?
|
06.06.2011, 22:17 | #4 |
Форумчанин
Регистрация: 04.06.2011
Сообщений: 120
|
. .............
nom:=1 |
06.06.2011, 22:31 | #5 |
Форумчанин
Регистрация: 04.06.2011
Сообщений: 120
|
Вот вобщем щас аокыврял чето, и понял что Tag вобще не изменяется. Как задал я его один, так он все время один остается:9 почему так
|
06.06.2011, 22:45 | #6 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
nom - глобальная переменная? tag - глобальная переменная? Если nom = 1 при старте, то каким образом TLabel(Sender).Tag может быть равна нулю?
|
06.06.2011, 23:14 | #7 |
Форумчанин
Регистрация: 04.06.2011
Сообщений: 120
|
да это не так важно. МОжно и удалить вариант 0 из case. Все равно не получается ведь
|
06.06.2011, 23:25 | #8 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
Что не получается? Вы в обработчике присваиваете Tex[nom].Tag:=tag+nom
Где-то есть переменная tag с каким-то значением (зачем?). Может она у Вас изменяется в зависимости от переменной nom ? Откуда мы знаем логику вашей программы - видим только кусок кода. |
06.06.2011, 23:48 | #9 |
Форумчанин
Регистрация: 04.06.2011
Сообщений: 120
|
все извиняюсь. можно даже тему удалять. Моя ошибка. После каждого добавления nom + 1 у меня потом чуть ниже опять к этой ном присваивалось 1) невнимательность
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разработка способа автомотической видеорегистрации и оповещения на охраняумых объектах | meego | Помощь студентам | 0 | 25.05.2011 23:35 |
использование одной переменной в разных объектах | SUDALV | Visual C++ | 0 | 20.04.2011 20:12 |
tag select | serres | JavaScript, Ajax | 6 | 05.04.2011 18:06 |
Проблема с созданием динамических объектов. (Delphi7) | Dalagardi | Помощь студентам | 2 | 15.03.2010 17:15 |
Получить Tag экземпляра TImage | neizerth | Общие вопросы C/C++ | 1 | 17.02.2009 11:49 |