Как запустить в потоке процедуру с параметрами? - PascalABC.NET
Формулировка задачи:
В ветке по C# нашел подобный вопрос и решение, но повторить удалось не до конца. По найденному решению я написал следующее:
Вроде это даже работает, но проблема заключается в том, как обращаться к объекту, переданному в процедуру test.
Например, есть у меня объект
Я запускаю процедуру test в потоке и передаю в поток параметр circle. Если в теле процедуры присутствует что-то на подобие этого:
Компилятор пишет, что radius не объявлен в object.
Как с этим бороться?
Понимаю, вопрос скорее даже не про запуск процедуры в потоке, а про взаимодействие с объектами, но я не придумал как сформулировать его конкретно по теме.
P.s. оберег от кидания тапками: да, у меня нет базовых знаний по объектам, но я пока и не пытался это осваивать. В качестве школьного проекта решил написать игру и вот.. пытаюсь разобраться по ходу.
Решение задачи: «Как запустить в потоке процедуру с параметрами?»
textual
Листинг программы
procedure test(param: object); begin (param as CircleABC).Radius := 50; end;
Объяснение кода листинга программы
- Объявлена процедура с именем
test
и одним параметром типаobject
с именемparam
. - Внутри процедуры происходит приведение типа параметра
param
к типуCircleABC
с помощью оператораas
. - Полученному объекту типа
CircleABC
присваивается значение свойстваRadius
равное 50. - Значение свойства
Radius
объекта типаCircleABC
не изменяется, так как присваивание происходит только в пределах процедурыtest
. - В результате выполнения процедуры
test
значение свойстваRadius
объекта типаCircleABC
не изменится.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д