![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.03.2011
Сообщений: 12
|
![]()
здравствуйте! у меня такой вопрос.
программно создается n-ное количество shape-ов. а как потом работать с ними. например мне нужно по отдельности их использовать. какое у них будет name? shape у всех? Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
saltonik
сейчас проверил (перебрал через Код:
Поэтому, если Вы для чего-то нужно имя (ну и для удобства/красоты не помешает!) добавьте в Ваш код присвоение имени: Код:
Добавлено позвольте ещё небольшое лирическое отступление... А ещё, как и многих других VCL компонентов у TShape есть такое поле: .Tag : Integer; туда можно писать что угодно (целые числа, разумеется!) и потом использовать очень просто. Т.е. при создании Вы пишете: shape.Tag := i; потом, в процедуре, например, на OnClick : if TShape(Sender).Tag = 1 then ... или case TShape(Sender).Tag of 1: 'нажали первый шейп' 2: 'второй' ... Последний раз редактировалось Serge_Bliznykov; 03.04.2011 в 13:13. |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 09.03.2011
Сообщений: 12
|
![]() Цитата:
Код:
Код:
|
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
я же не зря писал - в процедуре "OnClick" (ну, размеется, имелось в виду, процедуре, назначенной на OnClick Shape, а не какой-то там абстрактный объект! Поймите, в процедурах обработки событий (events) Sender - это всегда тот объект, который "возбудил" данное событие! (OnClick - на какой объект кликнули, OnMouseDown - на каком объекте нажали кнопкой мышки и т.д.) Вам же предлагаю: 1) Создавайте Shape'ы с именами! Код:
и проверяйте, нашлось ли что-нибудь, или нет. В случае, если таймер сработает до того, как будут созданы Shape - будут проблемы. примерно так можно искать Ваш Shape1: Код:
3) может быть, Вы всё же расскажите, какая у Вас исходная задача? Может быть, Вы вообще не так её решаете... Последний раз редактировалось Serge_Bliznykov; 03.04.2011 в 16:39. |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 06.12.2010
Сообщений: 300
|
![]()
Все эти проблемы хорошо разобраны тут: http://www.delphikingdom.com/asp/vie...?catalogid=342
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
![]()
Создайте массив шэйпов и обращайтесь к ним как к итому элементу массива
Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Делимся или вставляем свои программы созданные | Капитан | Софт | 16 | 19.10.2010 07:29 |
Уничтожать созданные формы при закрытии? Как? | TwiX | Общие вопросы Delphi | 4 | 09.04.2010 09:49 |
Pascal цикл с Shape.Left and Shape.Top | BanzoO | Помощь студентам | 1 | 13.12.2009 21:47 |
события на динамически созданные кнопки. | Gambler | Компоненты Delphi | 13 | 26.11.2009 10:43 |
Как изменять динамически созданные Label | МаксMorfey | Компоненты Delphi | 2 | 03.01.2009 10:23 |