Delphi - сбориник статей


Пример 1


К этому времени вы уже запустили среду разработки (которая, естественно, должна поддерживать работу с ActiveX, к примеру, Delphi) и создали новое приложение (New > Application).

Теперь нужно импортировать данные из библиотеки msscript.ocx в наш проект. Для этого воспользуемся пунктом меню Project > Import Type Library - и для достоверности выберем нашу библиотеку, щелкнув на кнопке Add…(рис. 1). После чего выберем файл msscript.ocx.

Импортировав библиотеку, мы обнаружим в составе нашего проекта файл MSScriptControl_TLB.pas, в котором содержатся все необходимые определения интерфейсов и констант. Теперь в главной форме нашего приложения, в реакции кнопки (которую мы уже разместили на форме), напишем следующий код:

procedure TForm1.Button2Click (Sender: TObject); var SC:TScriptControl; Code:WideString; begin SC:=TScriptControl.Create (Self); SC.Language:='VBScript'; try Code:='Function DoSmth () '#13#10+ 'DoSmth = "This is the Simple Test"'#13#10+ 'End Function'; SC.AddCode (Code); SC.ExecuteStatement ('MsgBox "Testing:"+DoSmth ()'); finally SC.Free; end; end;

После выполнения этого кода увидим на экране сообщение системы (Testing:This is the Simple Test).

Теперь рассмотрим приведенный выше код более подробно. Сначала создаем объект TScriptControl, который, собственно, и проделывает за нас всю грязную работу. Далее присваиваем свойству Language значение "VBScript", уведомляя тем самым компонент о том, что переданный ему код будет написан на Visual Basic. Помимо VBScript: тут возможны и другие значения: можно, например, воспользоваться Jscript - при этом будет использован синтаксис JavaScript или же синтаксис любого другого интерпретатора, поддерживающего технологию ActiveX-скриптов (Visual Basic, Java, ActivePython, ActivePerl и т.п).

В следующих строчках пишем исходный код функции DoSmth, которая возвращает нам вторую часть предложения. Далее записываем этот код в компонент - а в следующей строчке исполняем его, передавая возвращаемое им значение в функцию MsgBox. Все это пишется с использованием синтаксиса Visual Basic. Функции AddCode и ExecuteStatement имеют следующий вид:

procedure AddCode (const Code: WideString); safecall;

Где Code - код процедуры, функции (или любого их сочетания в любом количестве), который записывается в компонент и после этого может быть вызван с помощью ExecuteStatement или Run:

procedure ExecuteStatement (const Statement: WideString); safecall;

Где Statement - текст программы, который будет сразу же исполнен.




Начало  Назад  Вперед