Как осуществить FindChildControl (TShape)?*

_andrews_
Дата: 09.11.2007 15:51:42
Нужно на форме найти компонент TShape
var
  tmpControl: TControl;
begin
  tmpControl := MyParent.FindChildControl('Shape1');//tmpControl = nil
end;
Я понимаю что все дело в типах TControl и TShape
Уже и
as TControl
писал
НЕ помогло
Как надо?*
Ega
Дата: 09.11.2007 16:08:07
_andrews_
Нужно на форме найти компонент TShape
var
  tmpControl: TControl;
begin
  tmpControl := MyParent.FindChildControl('Shape1');//tmpControl = nil
end;
Я понимаю что все дело в типах TControl и TShape
Уже и
as TControl
писал
НЕ помогло
Как надо?*


А у твоего Shape1.Parent действительно равен MyParent?
_andrews_
Дата: 09.11.2007 16:18:52
Ega
А у твоего Shape1.Parent действительно равен MyParent?

Да
перепроверил
Ega
Дата: 09.11.2007 16:51:00
Если ты посмотришь на иерархию наследования TShape, то увидишь, что он - не TWinControl.
А если посмотришь на реализацию TWinControl.FindChildControl, то всё поймёшь.
_andrews_
Дата: 09.11.2007 17:00:42
Как же тогда осуществить задуманое?*
Ega
Дата: 12.11.2007 09:13:43
_andrews_
Как же тогда осуществить задуманое?*


Варианта 3.
1. Не использовать FindChildControl
2. Не использовать TShape
3. Комбинация 1-го и 2-го вариантов.
SQLap
Дата: 12.11.2007 10:27:11
А уж если называется Shape1 то
  FindComponent('Shape1')
_andrews_
Дата: 12.11.2007 10:39:14
Ega

1. Не использовать FindChildControl

Что посоветуешь использовать?*
Может как-то изменить FindChildControl?*
Как?*
SQLap
Дата: 12.11.2007 10:41:47
var
  tmpControl: TShape;
begin
  tmpControl := TShape(FindComponent('Shape1'));
end;

и не мучаться сильно
Ega
Дата: 12.11.2007 11:12:37
_andrews_
Ega

1. Не использовать FindChildControl

Что посоветуешь использовать?*
Может как-то изменить FindChildControl?*
Как?*


Использовать то, что возвращает TControl.
Кстати, также ты и с TLabel наткнёшься. TLabel, как и TShape - не TWinControl