С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
130 / 15 / 6
Регистрация: 05.08.2013
Сообщений: 285

Передать имя функции строкой и запустить эту функцию

16.07.2014, 15:31. Показов 1841. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте.
Есть функция, которая должна запустить функцию с помощью TStringList
Пример нашёл в интернете.
Delphi
1
2
3
proc_list := TStringList.Create;
//Так я записываю ссылку на функцию, как объек и  её индекс
proc_list.AddObject('Func_name',@TForm.FuncName);
Далее из другой функции
Delphi
1
2
3
4
5
6
7
8
var
    p:procedure;
    index:integer;
begin
   index := procdict.indexof('Func_name');
   @p:=proc_list.Objects[index];
   p;//вызов 
end;
И всё отлично - функция вызывается, но почему-то не инициализируются другие глобальные переменные,
которые в ней используюся.
'access violation at 0x00027fff: read of address 0x00027fff'
Может эти глобальные переменные тоже надо передавать, как ссылку или как-нибудь по-другому?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.07.2014, 15:31
Ответы с готовыми решениями:

Как передать имя функции и её аргументы в виде текстовой переменной и запустить её преобразовав в команду?
Возможно ли передать имя функции и её аргументы в виде текстовой переменной и потом запустить её преобразовав текст в команду? Т.е....

Как правильно передать вектор в функцию и вызвать эту функцию?
Здравствуйте, объясните как исправить ошибку. Возникает после for(), выдается, что размер polygon = 0. Вот так функции объявлены в классе: ...

Передать функцию строкой
как можно передать строкой функцию чтобы она не выполнялась до нужного момента? Я имею ввиду следующее function test(func){ ... ...

2
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
16.07.2014, 17:09
Цитата Сообщение от fier Посмотреть сообщение
функция вызывается
Функциональный метод объекта (возможно даже несуществующего) вызывается как регулярная функция.

Такой вызов не страшен до тех пор, пока в теле вызыванного таким макаром метода не будет обращения к полям этого объекта.
1
130 / 15 / 6
Регистрация: 05.08.2013
Сообщений: 285
16.07.2014, 17:31  [ТС]
Спасибо. Теперь понятно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.07.2014, 17:31
Помогаю со студенческими работами здесь

Создать массив с параметрами и потом его передать в эту функцию
Есть функция с параметром (char** argv). Мне необходимо создать массив с параметрами и потом его передать в эту функцию. Вопрос...

Ошибка Имя функции должно быть строкой
Через аякс oтправляю запрoсы, начинает выпoлняться функция add_contact(). В итoгде прихoдит стрoка Function name must be a string in...

Передать в функцию имя изображения
Как грамотно передать в функцию имя изображения? Один из способов, который я пробовала: Массив имен: var name_of_image = new...

Как передать имя класса в функцию
Добрый день. Есть класс: class Model { public static function print() { echo 'Hello World'; }

Не могу разобраться как передать корректно передать массив из функции в функцию
//--------------------------------------------------------------------------- #pragma hdrstop ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru