| 
| 
 | Вопрос # 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]:Спасибо, попробую ))) |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |