![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как записать указатель на процедуру в масв?
Erik1 © (2005-06-02 18:12:00)Есть:
TDataTo = procedure(Raw: TRaw; sCmd: TSendCmd) of object;
RDevCall = record
TyypID: Integer;
Build: TDataTo;
end;
TBuildXML = class
procedure DataToM(Raw: TRaw; sCmd: TSendCmd);
...
end;
const
XMLDevCall: Array[0..5] of RDevCall = (
(TyypID: nModem; Build: TBuildXML.DataToM),
(TyypID: nVorgukaart; Build: TBuildXML.DataToHost),
(TyypID: nStaatIP; Build: TBuildXML.DataToIP),
(TyypID: nTelefoniNumber; TBuildXML.Build: DataToTel),
(TyypID: nCMTS; Build: TBuildXML.DataToCMTS),
(TyypID: nDekooder; Build: TBuildXML.DataToDec));
Разумеется, что так компилироватся небудет. Как сделать с заменой типа Build на pointer тоже понятно. Есть другие варианты?
Юрий Зотов (2005-06-02 22:28:00) [1]> Erik1 © (02.06.05 19:54) [2]
При вызове можно делать приведение к TDataTo.
Erik1 (2005-06-02 19:54:00) [2]Хотелось бы оставить TDataTo его более удобно вызывать.
Alexander Panov (2005-06-02 19:00:00) [3]Erik1 © (02.06.05 18:12)
Как сделать с заменой типа Build на pointer тоже понятно. Есть другие варианты?
А какие сомнения в приведении типов к Pointer?