Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.25;
Скачать: CL | DM;

Вниз

Выполнение кода 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.045 c
4-1179223552
SpellCaster
2007-05-15 14:05
2007.11.25
Остановка спящих потоков


2-1193911010
SveTTT
2007-11-01 12:56
2007.11.25
Вызов печати по нажатю комбинации кнопок


1-1189078540
den303_work
2007-09-06 15:35
2007.11.25
Создать контрол с заранее неизвестным классом


15-1192724934
Ученик
2007-10-18 20:28
2007.11.25
Как переустановить ipaq file store?


5-1163673923
Krants
2006-11-16 13:45
2007.11.25
Использование дополнительного редактора в О.Іnspector





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский