type IBase=interface ['{664547B3-F4CD-4BCD-B742-687D69204B73}'] procedure proc1; end; IDerived=interface(IBase) ['{B6D69E3D-40B3-4945-B20B-7B9DF8B71D91}'] procedure proc2; end; TmyClass=class(TInterfacedObject, {IBase,} IDerived) public procedure proc1; procedure proc2; end; procedure TmyClass.proc1; begin ShowMessage('proc1'); end; procedure TmyClass.proc2; begin end; procedure TForm1.Button1Click(Sender: TObject); var obj: TMyClass; obj_base: IBase; begin obj := TMyClass.Create; obj_base := obj as IBase; obj_base.proc1; end;[no][/no] |