![]() |
TMethod?
Можно ли в BlitzMax передавать в тип функцию или метод?
Образный код: Код:
Type TAssa |
Ответ: TMethod?
может тебе нужно наследование ? потому что то что ты хочешь почти не применяется в ООП
Код:
Type TDrawObject |
Ответ: TMethod?
можно сделать поле как указатель на функцию. А вообще непойму как ты хочешь метод использовать без объекта?
|
Ответ: TMethod?
2Jimon : не, через наследование я не хотел делать.
На самом деле меня просто привлёк тип TMethod ;) 2dimanche13 : Да допустим Java ADA или PHP поддерживают передачу функции откуда угодно в тип (даже через функцию). Чтото типа: Код:
function assa(p1,p2) Код:
Tassa.Create(1,2,3,function (p1,p2){ |
Ответ: TMethod?
вообще-то метод- это функция в типе, просто ее первый параметр сам объект(self).
|
Ответ: TMethod?
Цитата:
Это и так понятно, но я говорю не про то. Я имел в виду транспортировку функции или метода как обьекта. |
Ответ: TMethod?
объясни на пальцах что тебе надо сделать.
|
Ответ: TMethod?
На самом деле мне было просто интересно что за тип TMethod.
Вот я и подумал неужели в BlitzMax можно создавать функции-кочевники. |
Ответ: TMethod?
TMethod это один из элементов "отражения"(reflection). Он служит для того чтобы можно было узнать по объекту, какими методами он обладает и какие параметры эти методы принимают. Так же возможен вызов этих методов.
на счет функций кочевников можно сказать одно. Без проблем делается массив функций в типе и ты эти функции можешь инициализировать из вне. |
Ответ: TMethod?
массив функций в типе...
Можно больше деталей? Это любопытно. |
Ответ: TMethod?
ну вот к примеру указатель на функцию
Код:
Method AddFunction(func:Int(ls:Byte Ptr), name:String) |
Ответ: TMethod?
Цитата:
пример собран на коленке, не проверял. Код:
SuperStrict |
Ответ: TMethod?
dimanche13, спасибо большое! Именно это мне и было интересно.
Косательно твоей проблемы: я использую версию 1.30, такой же глюк был. Помогло лишь тотальное удаление папки BlitzMax с корнем и последующая переустановка. После систематических вылетов, глюков и лагов BlitzMax выяснил, что это происходит изза наличия вирусов на машине. После глубокого скана, переустановки ОС и повторного полного скана больше таких глюков не замечал. Проверь, может вирусы. |
Ответ: TMethod?
Переставил ОСь - все по прежнему, вирусов -нет 99%. Осталось вариант с полным удалением попробовать...
|
Ответ: TMethod?
К сожалению перестановка оси не избавляет от вирусов.
От них спасает форматирование дисков и запись только проверенных файлов и программ. Или банально использовать любой антивирус хотя бы в триальном режиме ;) |
Часовой пояс GMT +4, время: 17:35. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot