Головна сторінка
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.84 MB
Час: 0.047 c
3-1099996633
квенді
2004-11-09 13:37
2004.12.12
Помилка Mysql Client


1-1101509172
Артем Володимирович
2004-11-27 01:46
2004.12.12
Як запобігти копіювання з WebBrowser?


14-1099344694
Erazser
2004-11-02 00:31
2004.12.12
VoIP і все що з цим пов'язано


14-1100350021
Александр1
2004-11-13 15:47
2004.12.12
Допоможіть будь ласка!


14-1101237565
Пітер
2004-11-23 22:19
2004.12.12
Цікавий приклад коду в Тейксера і Пачеко





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