Контролы...
Значит так.Есть мой компонент (насл. от TImage) в который я включаю контрол для захвата фокуса(Anchor) (дабы на кнопки реагировать).
TAnchor = class(TWinControl)
//Просто публикуем события
public
property OnKeyDown;
property OnKeyPress;
end;
TCombineSurface = class(TDrSurface)
private
Anchor:TAnchor;
.
.
protected
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure KeyPress(Sender: TObject; var Key:Char);
.
.
end;
constructor TCombineSurface.Create(AOwner:TComponent);
begin
inherited Create(AOwner);
Anchor:=TAnchor.Create(AOwner);
Anchor.Parent:=TWinControl(AOwner);
Anchor.Top:=0;
Anchor.Left:=0;
Anchor.Width:=1;
Anchor.Height:=1;
Anchor.OnKeyPress:=KeyPress;
.
.
end;
procedure TCombineSurface.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if not(Drawn) then
begin
MoveTo(x,y);
Anchor.SetFocus;
end;
inherited MouseUp(Button,Shift,X,Y);
end;
когда я кладу такой компонент на форму, все нормально, и компилиреутся без ошибок, но в файле формы появляется такая запись:
object TAnchor
Left = 0
Top = 0
Width = 1
Height = 1
end
как видите даже без имени, один тип, и при исполнении получаю сообщение:
Project1.exe raised exception EClassNotFound with message "Class TAnchor not found". Process stoped.
При дебагении, видно, что exception происходит при выходе из конструктора TCombineSurface.Create(AOwner:TComponent);
Что вы можете сказать по этому поводу?
P.S. Самое интересное, что при первом испытании работало нормально.