TNotifyEvent in Delphi6
От: alt7  
Дата: 25.12.02 12:22
Оценка:
Привет. Вопросик. Создается в рантайме TNMFTP компонента. надо по событию OnConnect подставить свою процу.
Вопрос.
Что надо написать, чтобы создать эту процу? (Синтаксис)
И как процу подключить к NMFTP — компоненте. (Синтаксис)
Re: TNotifyEvent in Delphi6
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.12.02 12:37
Оценка:
Здравствуйте, alt7, Вы писали:

A>Привет. Вопросик. Создается в рантайме TNMFTP компонента. надо по событию OnConnect подставить свою процу.

A>Вопрос.
A>Что надо написать, чтобы создать эту процу? (Синтаксис)
Если это TNotifyEvent, (лень подымать Дельфи), то синтаксис такой:
TForm1 = class(TForm)
  procedure FtpConnect(Sender: TObject);
end;

A>И как процу подключить к NMFTP — компоненте. (Синтаксис)
Вот так:
NMFTP1.OnConnect:= Form1.FtpConnect;
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: TNotifyEvent in Delphi6
От: alt7  
Дата: 25.12.02 12:55
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, alt7, Вы писали:


A>>Привет. Вопросик. Создается в рантайме TNMFTP компонента. надо по событию OnConnect подставить свою процу.

A>>Вопрос.
A>>Что надо написать, чтобы создать эту процу? (Синтаксис)

Я ж говорю, содзается в рантайме и формы никакой нет.
Re[3]: TNotifyEvent in Delphi6
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.12.02 13:32
Оценка:
Здравствуйте, alt7, Вы писали:

A>Здравствуйте, Sinclair, Вы писали:


S>>Здравствуйте, alt7, Вы писали:


A>>>Привет. Вопросик. Создается в рантайме TNMFTP компонента. надо по событию OnConnect подставить свою процу.

A>>>Вопрос.
A>>>Что надо написать, чтобы создать эту процу? (Синтаксис)

A>Я ж говорю, содзается в рантайме и формы никакой нет.

Ну кто-то же есть? Хоть и в рантайме?
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: TNotifyEvent in Delphi6
От: SDS Россия www.cadsofttools.com
Дата: 25.12.02 15:16
Оценка: 15 (1)
Здравствуйте, alt7, Вы писали:

A>Привет. Вопросик. Создается в рантайме TNMFTP компонента. надо по событию OnConnect подставить свою процу.

A>Вопрос.
A>Что надо написать, чтобы создать эту процу? (Синтаксис)
A>И как процу подключить к NMFTP — компоненте. (Синтаксис)

help for Delphi

type TNotifyEvent = procedure (Sender: TObject) ofobject;

это значит что обработчиком события может быть только метод класса

для этого в том классе где у тебя объявлен NMFTP объявляешь процедуру с единственным параметром Sender: TObject и присваеваешь ее, методу обработчику OnConnect, если класса нет, тогда свой класс напиши, только создать его перед использованием не забудь TSomeClass.Create
Re[2]: TNotifyEvent in Delphi6
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.12.02 15:26
Оценка: 34 (3)
Здравствуйте, SDS, Вы писали:

SDS>для этого в том классе где у тебя объявлен NMFTP объявляешь процедуру с единственным параметром Sender: TObject и присваеваешь ее, методу обработчику OnConnect, если класса нет, тогда свой класс напиши, только создать его перед использованием не забудь TSomeClass.Create

Не, ну раз пошла такая пьянка, то можно и метод класса использовать. Это ежели контекст нам не нужен. Есть дыра такая в дельфи. Пишешь
TSomeClass = class
   class procedure SomeProc(Sender: TObject);
end;
...
  NMFTP1.OnConnect = TSomeClass.SomeProc;

безо всяких криэйтов.
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: TNotifyEvent in Delphi6
От: SDS Россия www.cadsofttools.com
Дата: 25.12.02 19:07
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, SDS, Вы писали:


SDS>>для этого в том классе где у тебя объявлен NMFTP объявляешь процедуру с единственным параметром Sender: TObject и присваеваешь ее, методу обработчику OnConnect, если класса нет, тогда свой класс напиши, только создать его перед использованием не забудь TSomeClass.Create

S>Не, ну раз пошла такая пьянка, то можно и метод класса использовать. Это ежели контекст нам не нужен. Есть дыра такая в дельфи. Пишешь
S>
S>TSomeClass = class
S>   class procedure SomeProc(Sender: TObject);
S>end;
S>...
S>  NMFTP1.OnConnect = TSomeClass.SomeProc;
S>

S>безо всяких криэйтов.

ну не дыра, а в некоторых случаях вещь удобная, можно еще лекцию о том чем обычная процедура от метода класса отличаеться прочитать, да еще чего-нибудь из ООП, только надо ли это?
Re[2]: TNotifyEvent in Delphi6
От: alt7  
Дата: 26.12.02 07:44
Оценка:
SDS>help for Delphi

SDS>type TNotifyEvent = procedure (Sender: TObject) ofobject;


SDS>это значит что обработчиком события может быть только метод класса


SDS>для этого в том классе где у тебя объявлен NMFTP объявляешь процедуру с единственным параметром Sender: TObject и присваеваешь ее, методу обработчику OnConnect, если класса нет, тогда свой класс напиши, только создать его перед использованием не забудь TSomeClass.Create


Штука в том, что приложение консольное, есть только Application, NMFTP, и усе.
А надо сделать обработчики событий, дык отлавливать всякие нестандартные ситуации
Re[3]: TNotifyEvent in Delphi6
От: SDS Россия www.cadsofttools.com
Дата: 26.12.02 10:03
Оценка:
Здравствуйте, alt7, Вы писали:

A>Штука в том, что приложение консольное, есть только Application, NMFTP, и усе.

A>А надо сделать обработчики событий, дык отлавливать всякие нестандартные ситуации

Ну так в чем шутка — то?

пишешь свой класс
TSomeClass = class
public
 procedure DoOnConnect(Sender : TObject);
end;


procedure TSomeClass.DoOnConnect(Sender : TObject);
begin
{Do something}
end;


класс этот можно разместить в тот же модуле где у тебя создаеться NMFTP, создаешь его

var
 SomeClass : TSomeClass;

begin
 SomeClass := TSomeClass.Create;

 NMFTP.onConnect :=  SomeClass.DoOnConnect;
 {Do something}

 SomeClass.Free;
end;


Все, в чем проблема
Re[4]: TNotifyEvent in Delphi6
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.12.02 12:03
Оценка:
Ну да, это не дыра. Это я про другую дыру подумал — про то, что можно методы класса использовать как аксессоров для пропертей. Если они виртуальные, то все — трындец. А комипилер даже не пикает.
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.