Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 925

/ вопрос решён /

Приветствую, уважаемые эксперты!

Подскажите пожалуйста, что нужно сделать, чтобы в моей процедуре заработал FindComponent.

Выдает ошибку: Undeclared identifier: 'FindComponent'

Приложение:
  1. Procedure Profile_Draft;
  2. Var X : LongInt;
  3. Begin
  4.  
  5. X:=(FindComponent('Form1.Image1') As TImage);
  6.  
  7. End;


NSS Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: NSS (статус: Посетитель)
Вопрос отправлен: 17 января 2011, 10:00
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

FindComponent - это метод формы. Вызывать его нужно либо из метода той же формы, либо явно:

Procedure Profile_Draft;
Var X : TImage;
Begin
  X:= TImage(Form1.FindComponent('Image1'));
  if Assigned(X)
    then // ...
End;

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 17 января 2011, 10:31
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 14; последнее сообщение — 22 января 2011, 18:05; участников в обсуждении: 3.
NSS

NSS (статус: Посетитель), 17 января 2011, 13:29 [#1]:

Ой! Я не полностью указал формулу, нужно так:


X:=TImage(Form1.FindComponent('Image1') As TImage).Width;
Вадим К

Вадим К (статус: Академик), 17 января 2011, 13:32 [#2]:

а зачем два раза приводить???
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 17 января 2011, 13:43 [#3]:

Цитата (NSS):

Ой! Я не полностью указал формулу, нужно так:
X:=TImage(Form1.FindComponent('Image1') As TImage).Width;

Нет, нужно вот так:
Procedure Profile_Draft;
Var 
  X: Integer;
  Image: TImage;
Begin
  Image:= TImage(Form1.FindComponent('Image1'));
  if Assigned(Image)
    then X:= Image.Width;
End;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
NSS

NSS (статус: Посетитель), 17 января 2011, 13:45 [#4]:

Я профан в области программирования, поэтому не совсем Вас понял
что приводить? Формулу? Если да, то в певый раз забыл добавить Width.
min@y™

min@y™ (статус: Доктор наук), 17 января 2011, 13:45 [#5]:

А можно ещё проще:
Procedure Profile_Draft;
Var 
  X: Integer;
Begin
  X:= Form1.Image1.Width;
End;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
NSS

NSS (статус: Посетитель), 17 января 2011, 13:46 [#6]:

Большое спасибо за помощь, теперь все пошло).
min@y™

min@y™ (статус: Доктор наук), 17 января 2011, 13:47 [#7]:

Цитата (NSS):

что приводить? Формулу?

Он имел в виду примедение типов TComponent --> TImage.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

17 января 2011, 13:48: Статус вопроса изменён на решённый (изменил автор вопроса — NSS)

NSS

NSS (статус: Посетитель), 17 января 2011, 13:56 [#8]:

>А можно ещё проще:

дело в том, что мне надо перебирать из моей процедуры свойства компонентов TImage
min@y™

min@y™ (статус: Доктор наук), 17 января 2011, 15:04 [#9]:

Цитата (NSS):

дело в том, что мне надо перебирать из моей процедуры свойства компонентов TImage

А сколько TImage заранее не известно?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
NSS

NSS (статус: Посетитель), 22 января 2011, 15:53 [#10]:

Известно, 12 штук.
min@y™

min@y™ (статус: Доктор наук), 22 января 2011, 16:30 [#11]:

Цитата (NSS):

Известно, 12 штук.

Тогда собери их в один список и не парься. И никакой FindComponent() нах(рен) не нужен.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
NSS

NSS (статус: Посетитель), 22 января 2011, 16:44 [#12]:

Я извиняюсь, а как??
min@y™

min@y™ (статус: Доктор наук), 22 января 2011, 17:02 [#13]:

Цитата (NSS):

Я извиняюсь, а как??

TList - список указателей. Добавь в него все ImageX и будешь в шоколаде.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
NSS

NSS (статус: Посетитель), 22 января 2011, 18:05 [#14]:

Спасибо, попробую )))

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 16:42
Выполнено за 0.03 сек.