Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];

Вниз

Выполнение кода Delphi, приведенного в качестве аргумента   Найти похожие ветки 

 
Morrah   (2007-10-31 09:49) [0]

Подскажите, есть ли в Delphi команда, позволяющая выполнить кусок кода, написанный на том же ObjectPascal, но приведенный в виде строки?
Примерно что-нибудь вроде
Execute("MyObject.Myproperty"+".MyProperty.MyMethod;")
Заранее спасиббо.


 
Рамиль ©   (2007-10-31 09:57) [1]

Нет.


 
BATTLE_MAX ©   (2007-10-31 09:59) [2]

Нет сынок, это фантастика...


 
MBo ©   (2007-10-31 10:04) [3]

цель какая?


 
Ega23 ©   (2007-10-31 10:15) [4]


> Подскажите, есть ли в Delphi команда, позволяющая выполнить
> кусок кода, написанный на том же ObjectPascal, но приведенный
> в виде строки?


Можно всё. Вопрос во времени реализации.


 
Riply ©   (2007-10-31 10:19) [5]

> [4] Ega23 ©   (31.10.07 10:15)
> Можно всё. Вопрос во времени реализации.

Ну не так уж и долго :)


 
Alkid ©   (2007-10-31 11:00) [6]

Собственно говоря, готовых решений, позволяющих исполнять динамически сгенерироанный Delphi-код я не знаю, но есть целая куча различных скриптовых движков, позволяющих встраивать в программы интерпретаторы разных языков. Навскидку: lua, JavaScript, VBS, Lisp.

С другой стороны, если автор задаёт такой вопрос, значит он новичок и не пишет какой-то большой программы, где применение такой тяжёлой артиллерии оправдано. Вывод - он пытается найти решение для задачи, для которых есть норальные не-скриптовые решения, просто он о них не знает.

Автор, лучше изложи предметную проблему.


 
Ega23 ©   (2007-10-31 11:01) [7]


> Навскидку: lua, JavaScript, VBS, Lisp.


Проще. Pascal-script  :)


 
Skyle ©   (2007-10-31 11:15) [8]


> Ega23 ©   (31.10.07 11:01) [7]
> > Навскидку: lua, JavaScript, VBS, Lisp.
> Проще. Pascal-script  :)

Ещё проще: dcc32.exe :)


 
Alkid ©   (2007-10-31 11:21) [9]


> Проще. Pascal-script  :)

Сказать по правде, не слышал о таком :)


> Ещё проще: dcc32.exe :)

Для этого надо на компе иметь его :) Либо тащить с собой.


 
Morrah   (2007-10-31 12:18) [10]


> Автор, лучше изложи предметную проблему.

Излагаю.
В программе имеется переменная v1C типа OleVariant, инициализированное OLE-приложение 1C:Предприятие 8.0
Требуется получить объект типа, скажем, СправочникМенеджер.ИмяСправочника, где ИмяСправочника Name типа String перебирается в цикле.

v1C.Catalogs.Name
v1C.Catalogs[Name]
-естественно, не работает.


 
Morrah   (2007-10-31 12:22) [11]

Добраться до справочника, скажем, через типы (есть такой метод "ПривеситЗначение" у типа "ОписаниеТипов") тоже не получается, ибо метод гл. контекста 1С "Тип", возвращающий значение типа "Тип" по его строковому описанию и потребный для создания "Описания типов", в режиме OLE недоступен.


 
Alkid ©   (2007-10-31 13:29) [12]

Автор, кури про COM, OLE и IDispatch. Про последнее особенно.

Почти все вызовы OLE-объектов производятся через IDispatch, в котором указание, что вызывать, как и параметры вызова, передаётся как раз в виде аргумента. Кроме того, IDispatch позволяет перечислять доступные для вызова/обращения методы/пропертя объекта.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.063 c
6-1174732046
S_T_E_P_A_N___
2007-03-24 13:27
2007.11.25
Динамическое создание компонентов Indy


6-1174494739
Wolland
2007-03-21 19:32
2007.11.25
Использование TCPServer и TCPClient


15-1193390167
Avds
2007-10-26 13:16
2007.11.25
Хук на FullScreen?


8-1170080981
Ricks
2007-01-29 17:29
2007.11.25
Загрузка изображений средствами Windows


2-1193990269
kyn66
2007-11-02 10:57
2007.11.25
TDateEdit глючит?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский