Форум: "Компоненты";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
ВнизПросмотр в Инсп. Объектов и доступ к событиям вложеных классов Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c