** Nick |
Отправлено: 19.11.2005, 11:21 |
|
Не зарегистрирован
|
Есть пример на Delphi
и ограниченная по возможностям моя попытка переделать на BCB
На паскале не писал лет 10 уже
Реализация скриптового языка в программе для некоторых вещей
в основном правка на месте у клиента.
Паскалевский код
RegisterClasses([TButton, TPanel, TEdit, TLabel, TTimer, TDateTimePicker]);
/* SC создается гдето в недрах */
SC.Language := 'VBScript';
SC.IScriptControl_Timeout := -1;
SC.RegisterClass('Self', Self);
SC.AddCode(Memo1.Text);
SC.RunProc('Main');
/* Вот эту строку не могу перевести, в инете только Делфийские коды на эту тему, без нее нельзя в скрипте создавать новые кнопка, поля редактирования и т.д и т.п. и обрабатывать события нажатие кнопок и изменения полей и т.д. КАК ЕЕ ПЕРЕВЕСТИ НА C++ весь инет, исходники и Help излазил
RegisterClass([TButton, TPanel, TEdit, TLabel, TTimer, TDateTimePicker]); */
ScriptControl2 = new TVCLScriptControl(this);
ScriptControl2->Language = "VBScript";
ScriptControl2->IScriptControl_Timeout = -1;
ScriptControl2->RegisterClass("Self", Panel1 );
ScriptControl2->RegisterClass("But", Button1 );
ScriptControl2->AddCode(Memo1->Text);
ScriptControl2->RunProc("Main");
|
|
Guest |
Отправлено: 19.11.2005, 13:53 |
|
Не зарегистрирован
|
Вобщем разобрался
надо было так
TMetaClass *classes[5] =
{ __classid(TButton),
__classid(TPanel),
__classid(TEdit),
__classid(TLabel),
__classid(TTimer) };
// , __classid(TDateTimePicker) };
ScriptControl2->Language = "VBScript";
ScriptControl2->IScriptControl_Timeout = -1;
RegisterClasses( classes , 0);
работает.
в скрипте работает создание
элементов из зарегистрированных классов
и обраьотка событий,
вобщем круто можно завернуть,
жаль только что VB но и его хватит я думаю
|
|
|