Главная страница
    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.047 c
1-1189168940
istok
2007-09-07 16:42
2007.11.25
synchronize...


3-1184099594
BaryVetaL
2007-07-11 00:33
2007.11.25
Какой движок посоветуете?


2-1193682578
mahab
2007-10-29 21:29
2007.11.25
Коррректная обработка загрузки испорченных изображений


15-1192634270
Kostafey
2007-10-17 19:17
2007.11.25
Целесообразность оценки надежности программного обеспечения


15-1193344929
Сусл
2007-10-26 00:42
2007.11.25
корпоративное решение от google





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