|
Вопрос # 4 925/ вопрос решён / |
|
Приветствую, уважаемые эксперты!
Подскажите пожалуйста, что нужно сделать, чтобы в моей процедуре заработал FindComponent.
Выдает ошибку: Undeclared identifier: 'FindComponent'
Приложение: Переключить в обычный режим- Procedure Profile_Draft;
- Var X : LongInt;
- Begin
-
- X:=(FindComponent('Form1.Image1') As TImage);
-
- End;
 |
Вопрос задал: 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 (статус: Посетитель), 17 января 2011, 13:29 [#1]:
Ой! Я не полностью указал формулу, нужно так:
X:=TImage(Form1.FindComponent('Image1') As TImage).Width;
|
|
Вадим К (статус: Академик), 17 января 2011, 13:32 [#2]:
а зачем два раза приводить???
Галочка "подтверждения прочтения" - вселенское зло.
|
|
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 (статус: Посетитель), 17 января 2011, 13:45 [#4]:
Я профан в области программирования, поэтому не совсем Вас понял
что приводить? Формулу? Если да, то в певый раз забыл добавить Width.
|
|
min@y™ (статус: Доктор наук), 17 января 2011, 13:45 [#5]:
А можно ещё проще:
Procedure Profile_Draft;
Var
X: Integer;
Begin
X:= Form1.Image1.Width;
End;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
NSS (статус: Посетитель), 17 января 2011, 13:46 [#6]:
Большое спасибо за помощь, теперь все пошло).
|
|
min@y™ (статус: Доктор наук), 17 января 2011, 13:47 [#7]:
Цитата (NSS):
что приводить? Формулу?
Он имел в виду примедение типов TComponent --> TImage.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
17 января 2011, 13:48: Статус вопроса изменён на решённый (изменил автор вопроса — NSS)
|
NSS (статус: Посетитель), 17 января 2011, 13:56 [#8]:
>А можно ещё проще:
дело в том, что мне надо перебирать из моей процедуры свойства компонентов TImage
|
|
min@y™ (статус: Доктор наук), 17 января 2011, 15:04 [#9]:
Цитата (NSS):
дело в том, что мне надо перебирать из моей процедуры свойства компонентов TImage
А сколько TImage заранее не известно?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
NSS (статус: Посетитель), 22 января 2011, 15:53 [#10]:
Известно, 12 штук.
|
|
min@y™ (статус: Доктор наук), 22 января 2011, 16:30 [#11]:
Цитата (NSS):
Известно, 12 штук.
Тогда собери их в один список и не парься. И никакой FindComponent() нах(рен) не нужен.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
NSS (статус: Посетитель), 22 января 2011, 16:44 [#12]:
Я извиняюсь, а как??
|
|
min@y™ (статус: Доктор наук), 22 января 2011, 17:02 [#13]:
Цитата (NSS):
Я извиняюсь, а как??
TList - список указателей. Добавь в него все ImageX и будешь в шоколаде.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
NSS (статус: Посетитель), 22 января 2011, 18:05 [#14]:
Спасибо, попробую )))
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|