Однако, сама функция изменяется только при компилировании. При работе с приложением .exe содержание текстового файла изменяется, но это изменение не доходит до программы. Что делать?
То, что Вы хотите получить, называется динамической компиляцией. Вам нужно в процессе выполнения ранее откомпилированной программы докомпилировать еще кусочек кода и вызвать его на исполнение.
В разных системах программирования это делается по-разному.
В Visual Basic это сделать сравнительно легко (функции Eval() и Ececute()).
В .NET есть пространства имен CodeDom.Compiler и Reflection, которые позволяют запустить компиляцию текстового файла с кодом, загрузить полученную сборку, найти адрес нужного метода и выполнить его.
На чистом C можно запустить компиляцию и построение библиотеки через командный процессор, загрузить библиотеку с помощью LoadLibrary(), найти адрес функции с помощью GetProcAddress() и выполнить ее.
Как это делается в Делфи я уже не помню - не польэуюсь уже лет 10. Но уверен, что есть что-то подобное.
В современных игровых программах такого рода вставляемые кусочки реализуются не на основном языке, а на более простом скриптовом, типа Lua.
Но...
Можете, по-подробнее. В delphi я любитель, что такое процедура - понимают, а вот процедура-интерпретатор... Никогда не слышал.
А на счет инерпретатора, я нашел в и-нете много информации о SctiptControl. Но я так и ничего и не понял.
В этом Ваша основная проблема. Но если Вы хотите это все реализовать самостоятельно, то Вам придется стать профессионалом.