Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Основна";
Поточний архів: 2004.12.12;
Завантажити: [xml.tar.bz2];

Вниз

Створення обробника подій в Run Time. Знайти схожі гілки


OneFragLeft ©   (2004-11-27 22:04) [0]

Як створити TNotifyEvent, маючи тільки процедуру або функцію.
Наприклад:

procedure TForm1.FormCreate (Sender: TObject); var ClientSocket: TClientSocket; begin ClientSocket: = TClientSocket.Create (form1); with ClientSocket do begin OnRead: =? end; end;

і є процедура:

procedure Reader; begin beep; end;

як призначити виконання процедури Reader, при подію Read?



begin...end ©   (2004-11-27 22:11) [1]


> OneFragLeft © (27.11.04 22: 04)


var Method: TMethod; begin Method.Code: = @Reader; ClientSocket.OnClick: = TNotifyEvent (Method) end.



begin...end ©   (2004-11-27 22:12) [2]


> [1] begin ... end © (27.11.04 22: 11)

Перепрошую: чи не OnClick, а OnRead, звичайно ж.



OneFragLeft ©   (2004-11-27 22:24) [3]

пишу:
procedure Reader; begin Beep; end; procedure TForm1.FormCreate (Sender: TObject); var Method: TMethod; ClientSocket: TClientSocket; begin Method.Code: = @Reader; ClientSocket: = TClientSocket.Create (form1); with ClientSocket do begin OnRead: = TNotifyEvent (Method); end; end;

Видає помилку: parameters list differ



Anatoly Podgoretsky ©   (2004-11-27 22:25) [4]

А навіщо такі ізвращеніея, якщо є клас TForm1



OneFragLeft ©   (2004-11-27 22:30) [5]

Поясніть, будь ласка, що Ви маєте на увазі.



Юрий Зотов ©   (2004-11-27 22:45) [6]

procedure TForm1.Reader (Sender: TObject);
починати
Beep
end;

procedure TForm1.FormCreate (Sender: TObject);
починати
with TClientSocket.Create (Self) do
begin
OnRead: = Reader;
...
end
end;



OneFragLeft ©   (2004-11-27 22:48) [7]

Ні-і, не працює.



OneFragLeft ©   (2004-11-27 22:49) [8]

З кнопками працює, а з сокетом - немає.



Юрий Зотов ©   (2004-11-28 01:01) [9]

Тому що Ви дали неправдиву інформацію: OnRead - це НЕ TNotifyEvent.

procedure TForm1.Reader (Sender: TObject; Socket: TCustomWinSocket);
починати
Beep
end;



Defunct ©   (2004-11-28 05:52) [10]

OneFragLeft © (27.11.04 22: 04)
procedure Reader;
починати
beep;
end;

такий обробник не можна ставити на OnRead. переповниться буфер сокета і заглючить у вас все. На OnRead треба зчитувати дані з сокета.



сторінки: 1 вся гілка

Форум: "Основна";
Поточний архів: 2004.12.12;
Завантажити: [xml.tar.bz2];

наверх









Пам'ять: 0.59 MB
Час: 0.057 c
14-1101280576
ІМХО
2004-11-24 10:16
2004.12.12
Для чого створена музика: щоб СЛУХАТИ або щоб танцювати?


4-1098992943
Khabibulin
2004-10-28 23:49
2004.12.12
BIOS


1-1101469896
барбос
2004-11-26 14:51
2004.12.12
TabOrder


14-1101177219
Думкіна
2004-11-23 05:33
2004.12.12
З Днем народження! 23 листопада


1-1101630374
UVV
2004-11-28 11:26
2004.12.12
GetTime





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська