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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2009, 13:10   #1
Juggernaut
Пользователь
 
Регистрация: 18.04.2009
Сообщений: 55
По умолчанию Получение вызывателя процедуры

Здравствуйте. У меня такая проблема: у меня есть массив из ста компонентов TStaticText, которые динамически создаются таблицей 10х10. Мне нужно, что бы по нажатию на один из компонентов, он менял свой заголовок на какой нибудь другой (например 0 на 1). Когда я описал объявление массива, я обработчику OnClick присвоил процедуру SetCell, которая должна менять заголовок. Но вот проблема, я не могу получить из процедуры SetCell объект, который ее вызвал. Прикрепляю код если кому не понятно.

Код:
procedure TForm18.SetCell(Sender: TObject);
begin
// здесь должен меняться заголовок выбранонго StaticText
// Self не работает, если просто пытаться менять Caption, меняется заголовок формы
end;

procedure TForm18.FormActivate(Sender: TObject);
  var i,j,c:integer;
begin
for j:=1 to 10 do
begin
  for i:=1 to 10 do
  begin
    st[i,j]:=TStaticText.Create(self);
    st[i,j].AutoSize:=false;
    st[i,j].Width:=25;
    st[i,j].Height:=25;
    st[i,j].Name:='st'+IntToStr(i)+'x'+IntToStr(j);
    st[i,j].BorderStyle:=sbsSingle;
    st[i,j].Caption:='0';
    st[i,j].Alignment:=taCenter;
    st[i,j].Top:=j*25;
    st[i,j].Left:=i*25;
    st[i,j].Tag:=c;
    st[i,j].Parent:=Form18;
    st[i,j].OnClick:=SetCell;
    inc(c);
  end;
end;
end;
Я конечно могу объявить 100 StaticText и 100 обработчиков, но это будет очень долго....
Весы слева, не забыли?

Абсурдопедия

Последний раз редактировалось Juggernaut; 18.04.2009 в 13:19.
Juggernaut вне форума Ответить с цитированием
Старый 18.04.2009, 13:32   #2
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Попробуй
TStaticText(Sender).Caption:='klmn' ;
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 18.04.2009, 13:34   #3
Juggernaut
Пользователь
 
Регистрация: 18.04.2009
Сообщений: 55
По умолчанию

Ой, спасибо кончено, но я это сам только что нашел и сработало. Все равно спасибо!
Весы слева, не забыли?

Абсурдопедия
Juggernaut вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение доступа Ламер_001 C/C++ Сетевое программирование 0 20.01.2009 08:51
Получение данных с БД. urgu_st SQL, базы данных 5 13.01.2009 15:11
получение 1 списка из 2-х Neznau Помощь студентам 0 10.12.2008 22:16
Запуск процедуры из процедуры с дополнением 1sal1 Общие вопросы Delphi 3 06.10.2008 21:54
Получение почты NoName_emaNoN Win Api 0 29.11.2007 20:47