Показать сообщение отдельно
  #7  
Старый 30.12.2013, 17:56
alanatolich alanatolich вне форума
Прохожий
 
Регистрация: 24.12.2013
Сообщения: 18
Версия Delphi: Delphi XE
Репутация: 10
По умолчанию

Эх, опять не хочет компилироваться

Код:
unit mypotok;

interface

uses
  ScktComp,
  Classes,SysUtils, ADODB,ActiveX;

type
  TMyThread = class(TThread)

    // данные из сокета
    procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
    // соеденение
    procedure ClientSocketConnect(Sender: TObject;  Socket: TCustomWinSocket);
  private
    { Private declarations }
  protected
    procedure Execute; override;
  end;


var MYClientSocket:TClientSocket;

implementation

uses unit1;

procedure TMyThread.ClientSocketConnect(Sender: TObject;  Socket: TCustomWinSocket);
begin
    Socket.SendText('test ');
end;
procedure TMyThread.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
begin

end;

procedure TMyThread.Execute;
  I: Integer;
    myList:TList;
const NumberClientSocket=1;

begin
    // создаем список
    MYList := TList.Create;
    // создаем сокеты
    for I :=0 to NumberClientSocket do
    begin
        MYClientSocket:=TClientSocket.Create(nil);
        MYClientSocket.OnRead:=TMyThread.ClientSocketRead;
        MYClientSocket.OnConnect:=TMyThread.ClientSocketConnect;
        MYClientSocket.Name:='MS'+inttostr(I);
        MYList.Add(MYClientSocket);
    end;
    // прописываем IP сокету последнего терминала в списке
    TClientSocket(myList[0]).Address:=terminalip(termial[termial.Count-1-I]);
    // прописываем порт
    TClientSocket(myList[0]).port:=55555;
    // соеденяемся
    TClientSocket(myList[0]).Open;
		
    while True do
    begin 
    end;
    // освобождаем сокеты
    for I :=0 to NumberClientSocket do
    begin
        TClientSocket(myList[i]).Close;
        TClientSocket(myList[i]).Free;
    end;
    // освобождаем список
    termial.Free;
end;

end.

ошибка на строчках

Код:
MYClientSocket.OnRead:=TMyThread.ClientSocketRead;
Код:
MYClientSocket.OnConnect:=TMyThread.ClientSocketConnect;

[DCC Error] mypotok.pas(111): E2010 Incompatible types: 'TSocketNotifyEvent' and 'Procedure'
[DCC Error] mypotok.pas(112): E2010 Incompatible types: 'TSocketNotifyEvent' and 'Procedure'

Как правильно присвоить обработчики?
Ответить с цитированием