Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> один onclick для нескольких image, или как выдернуть из имени его номер  
:(
    Опции темы
darkida
Дата 11.2.2010, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 59
Регистрация: 9.2.2009

Репутация: нет
Всего: нет



Помогите не могу разобраться.
У меня 50 image'в. И есть процедура  myprocedure(i) , где i номер моего image.
Как сделать общий onclick?
Или как выдернуть из имени его порядковый номер.
PM MAIL   Вверх
Данкинг
Дата 11.2.2010, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(darkida @  11.2.2010,  01:10 Найти цитируемый пост)
Как сделать общий onclick?

Выдели контролы мышкой и назначь им процедуру как обычно. smile

Добавлено @ 01:37
А номер можно получить из имени компонента:
Код

procedure TForm1.Image1Click(Sender: TObject);
begin
showmessage(TImage (sender).Name);
end;


Это сообщение отредактировал(а) Данкинг - 11.2.2010, 01:37


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
darkida
Дата 11.2.2010, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 59
Регистрация: 9.2.2009

Репутация: нет
Всего: нет



Наверно не понятно выразился.

вот чтоб этого не делать 50 раз
Код

procedure TForm1.image1Click(Sender: TObject);
begin
myprocedure(1);
end;

procedure TForm1.image2Click(Sender: TObject);
begin
myprocedure(2);
end;

//и т.д.



и я написал порядковый номер, а не просто имя. 
PM MAIL   Вверх
Данкинг
Дата 11.2.2010, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Я же говорю: выдели Image'и мышкой и назначь им OnClick. Тогда по клику на любом из Image'ей будет вызываться процедура  TForm1.image1Click.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
darkida
Дата 11.2.2010, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 59
Регистрация: 9.2.2009

Репутация: нет
Всего: нет



мда тока вот вызываться будет myproce(1)


к примеру если бы был просто button то можно было каждому присвоить номер и писать myproce(strtoint(button.caption)). Но мне нужен именно имеидж.

Это сообщение отредактировал(а) darkida - 11.2.2010, 02:04
PM MAIL   Вверх
darkida
Дата 11.2.2010, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 59
Регистрация: 9.2.2009

Репутация: нет
Всего: нет



Цитата(Данкинг @  11.2.2010,  01:32 Найти цитируемый пост)
А номер можно получить из имени компонента:    
Код

procedure TForm1.Image1Click(Sender: TObject);
begin
showmessage(TImage (sender).Name);
end;


и это не номер, а имя компонента можно получить.  


PM MAIL   Вверх
Данкинг
Дата 11.2.2010, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(darkida @  11.2.2010,  02:22 Найти цитируемый пост)
и это не номер, а имя компонента можно получить.  

А что мешает из имени выдрать номер? И по этому номеру уже вызывать myproce ?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
darkida
Дата 11.2.2010, 03:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 59
Регистрация: 9.2.2009

Репутация: нет
Всего: нет



так в том то и дело, что это я и не знаю.

Ord(.........) in [48..57]  знаю что вот это находит цифры, а как пользоваться не знаю.


Цитата(Данкинг @  11.2.2010,  02:43 Найти цитируемый пост)
А что мешает из имени выдрать номер? И по этому номеру уже вызывать myproce ? 

Собственно это и есть мой вопрос, только читать надо было внимательней.


Это сообщение отредактировал(а) darkida - 11.2.2010, 03:24
PM MAIL   Вверх
darkida
Дата 11.2.2010, 03:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 59
Регистрация: 9.2.2009

Репутация: нет
Всего: нет



ой блин вспомнил.  
Код

var s: string;
begin
  s:=Timage(sender).name;
  delete(s,1,1);
  myproce(strtoint(s));




Это сообщение отредактировал(а) darkida - 11.2.2010, 04:00
PM MAIL   Вверх
Mikel
Дата 11.2.2010, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: нет
Всего: 2



Код

  myprocedure(Timage(sender).Tag);

и пронумеруй их Tag, это ж поле не просто так там сделано  smile 


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Данкинг
Дата 11.2.2010, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Mikel @  11.2.2010,  09:29 Найти цитируемый пост)
и пронумеруй их Tag,

А смысл нумеровать 50 Image'й, если можно получить такой же номер из имени?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Mikel
Дата 11.2.2010, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: нет
Всего: 2



Ну если все 50 вручную создаются то, наверное, действительно никакого  smile 


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Beltar
Дата 16.2.2010, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 0
Всего: 7



Я бы принципиально подумал, не создать ли автоматически, даже если бы точно знал, что их 50.  smile 


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
~FoX~
Дата 16.2.2010, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 5
Всего: 68



Код

procedure TForm1.MyImageClick(Sender: TObject);
begin
  ShowMessage((Sender as TImage).Name);
end;



procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to ComponentCount - 1 do begin
    if Components[i].ClassName = 'TImage' then
    (Components[i] as TImage).OnClick := MyImageClick;
  end;
end;



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0902 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.