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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как обратиться к объекту по его имени? 
V
    Опции темы
ZLOvar
Дата 3.11.2010, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте, уважаемые форумчане. Не подскажите, как такое реализовать:
Код

var
 i : Ineteger;
 sObjName : String;
BEGIN
 For i := 1 to 10 do
  begin
   sObjName :='A' + IntToStr(i);
   // Теперь обращаемся к обьекту (при условии, что он существует) по имени sObjName
  end;
END.
 
Всем заранее спасибо.
--------------------
Если хочешь чтобы работало - используй написанное.Если хочешь что-то понять - пиши сам. (с)
PM MAIL WWW   Вверх
casinosoftguru
Дата 3.11.2010, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



например так
Код

var
i: integer;
btn: string;
begin
btn := 'Button1';
  for i  := 0 to Form1.ComponentCount - 1 do
     begin
      if Form1.Components[i].Name = btn then
       with Form1.Components[i] as TButton do Click;
      end;
  

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


Шустрый
*


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

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



casinosoftguru, 
Спасибо, попробую, о результатах отпишусь.
--------------------
Если хочешь чтобы работало - используй написанное.Если хочешь что-то понять - пиши сам. (с)
PM MAIL WWW   Вверх
ZLOvar
Дата 3.11.2010, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



casinosoftguru, 
Да, это подходит, но можно ли это как-нибудь организовать без цикла?
--------------------
Если хочешь чтобы работало - используй написанное.Если хочешь что-то понять - пиши сам. (с)
PM MAIL WWW   Вверх
Данкинг
Дата 3.11.2010, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(ZLOvar @  3.11.2010,  18:13 Найти цитируемый пост)
но можно ли это как-нибудь организовать без цикла? 

Нет, а как ты себе это представляешь? В цикле мы перебираем все компоненты формы и если находим нужный - с ним уже работаем.


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


Опытный
**


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

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



Код

TButton(FindComponent('Button1')).Click;


Это сообщение отредактировал(а) Qu1nt - 3.11.2010, 21:15
PM MAIL   Вверх
Данкинг
Дата 3.11.2010, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Qu1nt, о как. Запомним. smile 


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


Шустрый
*


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

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



Qu1nt, 
То, что нужно! smile  Спасибо!  smile  +1

Это сообщение отредактировал(а) ZLOvar - 4.11.2010, 12:03
--------------------
Если хочешь чтобы работало - используй написанное.Если хочешь что-то понять - пиши сам. (с)
PM MAIL WWW   Вверх
Matematik
Дата 4.11.2010, 12:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

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



Цитата(Qu1nt @  3.11.2010,  21:14 Найти цитируемый пост)
TButton(FindComponent('Button1')).Click;

Только надо не забывать, если такой кнопочки не будет или это будет некнопочка - мы получаем access violation at address
Код

bnt := FindComponent();
if Assigned(btn) and (btn is TButton) then
  (btn as TButton).Click();


---
Искренне ваш, К.О.

PM MAIL WWW ICQ   Вверх
1000000dollars
Дата 5.11.2010, 12:28 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



ну и ещё  одно дополнение: всё вышеперечисленное работает с объектами:
1) наследованными от TComponent;
2) размещёнными на форме.

В общем случае ответ на поставленный вопрос - никак.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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