Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

Просмотр в Инсп. Объектов и доступ к событиям вложеных классов   Найти похожие ветки 

 
undefined   (2005-04-21 16:22) [0]

Здавствуйте мастера. В моем классе объявлены свойства типа других классов.
И в Инспект. объектов потом можно просмотреть не только свойсва моего класса, но и свойства вложенных классов.
А вот события вложенных классов не видно.
Как сделать их видимим, или хотя бы как на них реагировать.
ЗЫ. Создаю вложенные объекты на своем объекте.


 
Venom Spawn ©   (2005-04-21 16:32) [1]

Можно сделать события-обёртки в твоём компоненте вокруг событий вложенных объектов. Можно вытащить твои вложенные объекты и сделать из них обычные компоненты, связав через какое-нибудь дополнительное свойство с исходным компонентом.


 
Юрий Зотов ©   (2005-04-21 16:39) [2]

Если все сделано верно, то в D7все должно быть и так  видно.

Приведите объявление класса, который используется как свойство, и класса, содержащего это свойство.


 
Shc ©   (2005-04-21 16:49) [3]

ОБертку писать просто не интерестно, +то по-моему не метод.
Вытаскивать их на форму (делать родителем Оунера) тоже немножко не то, оснавная задача и заключалась в том, чтобы все запихнуть в одну компоненту.
Тест объявления такой:
 TNetGameSocks = class(TComponent)
 private
   FtcpServer: TIdTCPServer;
   FTCPClient: TIdTCPClient;
   FIdThreadMgr: TIdThreadMgrDefault;
   FIdAntiFreeze: TIdAntiFreeze;
   FClients: TList;
   FClientsList: TStringList;
   FclThread: TclThread;
   FOnRecivedMsg: TTCPClientEvent;
   procedure tcpServerConnect(AThread: TIdPeerThread);
   procedure tcpServerDisconnect(AThread: TIdPeerThread);
   procedure tcpServerExecute(AThread: TIdPeerThread);
   procedure BroadcastMessage(WhoFrom, TheMessage: String );

   procedure SettcpServer(const Value: TIdTCPServer);
   procedure SetTCPClient(const Value: TIdTCPClient);
   procedure SetClientsList(const Value: TStringList);
   procedure TCPClientDisconnected(Sender: TObject);
   procedure TCPClientConnected(Sender: TObject);

 protected

 public
   ClInfo: ClientInfo;
   procedure StartServer(Port: word= 0);
   procedure StopServer;
   procedure StartClient(IP: string; Port: Integer; Clname, ID: string);
   procedure StopClient;
   procedure SysMsg(msg: string; AThread: TIdPeerThread); virtual;
   procedure SendClientMsg(msg: string);

   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
 published
   property tcpServer: TIdTCPServer read FtcpServer write SettcpServer;
   property TCPClient: TIdTCPClient read FTCPClient write SetTCPClient;
   property ClientsList: TStringList read FClientsList write SetClientsList;
   property OnRecivedMsg: TTCPClientEvent read FOnRecivedMsg write FOnRecivedMsg;
 end;

constructor TNetGameSocks.Create;
begin
 inherited;
   FtcpServer:= TIdTCPServer.Create(Self);
   FTCPClient:= TIdTCPClient.Create(Self);
   FIdThreadMgr:= TIdThreadMgrDefault.Create(Self);
   FIdAntiFreeze:= TIdAntiFreeze.Create(Self);
   FClients:= TList.Create;
   fClientsList:= TStringList.Create;
   FtcpServer.ThreadMgr:= FIdThreadMgr;
   FtcpServer.DefaultPort:= 4312;
   FtcpServer.OnConnect:= tcpServerConnect;
   FtcpServer.OnExecute:= tcpServerExecute;
   FtcpServer.OnDisconnect:= tcpServerDisconnect;
   FTCPClient.Port:= 4312;
   FTCPClient.host:="127.0.0.1";
   FTCPClient.OnConnected:= TCPClientConnected;
   FTCPClient.OnDisconnected:= TCPClientDisconnected;
end;


 
Юрий Зотов ©   (2005-04-21 17:19) [4]

FtcpServer:= TIdTCPServer.Create(Self);
FtcpServer.SetSubComponent(True);

И так для всех внутренних компонентов, чьи свойства и события Вы хотите видеть в Инспкторе Объектов.


 
Shc ©   (2005-04-22 16:14) [5]

2 Юрий Зотов Спасибо



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
4-1124699793
ArtemESC
2005-08-22 12:36
2005.12.04
Плавно зарисовать Desktop


2-1131824166
Виталий80
2005-11-12 22:36
2005.12.04
Как сделать ф-цию парсинга


14-1131456553
matt
2005-11-08 16:29
2005.12.04
Самоучитель игры на гитаре


3-1128271929
menart
2005-10-02 20:52
2005.12.04
Как законектится к MSSQL используя ADO с другим именем пользовате


2-1132156808
JBL
2005-11-16 19:00
2005.12.04
Exception