Привет! Это снова я, а это значит,
что сейчас мы будем говорить о кодинге на
Delphi. А говорить мы будем об ActiveX. Ты, наверное,
хотя бы один раз слышал об этом. ActiveX-это
стандарт применения компонентного подхода
в среде Windows. Создавать их можно практически
на любом языке. Ну а я тебе покажу, как это
можно делать на Delphi, а именно, как создавать
активные формы.
Создание активной формы
Она создается командой New->File->ActiveForm(на
закладке ActiveX). Итак, перед нами пустая форма
(содержащая много программного кода). Мы
будем создавать небольшую прогу, которая
будет решать, для примера, квадратные
уравнения (если, забыл - открывай учебник по
алгебре за 8-9 класс). На форму кидаем 4 Edit’а (три
на a,b,c (т.к. квадратные уравнения имеют вид ax²
+ bx + c) и одну на ответ) и одну кнопку. Создаем
обработчик события OnClick и пишем:
procedure TActiveFormX.Button1Click(Sender: TObject);
var
otvet1,otvet2,a,b,c,d,otvet3: real;
begin
//Присваиваем значения переменным
a:=StrToFloat(Edit1.text);
b:=StrToFloat(Edit2.text);
c:=StrToFloat(Edit3.text);
//считаем дискриминант
d:=Sqr(B) - (4*a*c);
//если он отрицательный
if d<0 then Edit4.text:='Корней НЕТ';
//если равен нулю
if d=0 then
begin
//считаем ответ
otvet3:= -b /(2*a);
Edit4.text:=FloatToStr(otvet3);
end;
//если больше нуля
if d>0 then
begin
//считаем 2 ответа
otvet1:= (-b + (sqrt(d)))/(2 * a);
otvet2:= (-b - (sqrt(d)))/(2 * a);
//выводим их через запятую
Edit4.text:=FloatToStr(otvet1)+','+FloatToStr(otvet2);
end;
end;
Выполним компиляцию проекта, и у
нас появится файл ActiveFormProj1.ocx.
Включение активной формы в веб-страницу
Чтобы включить этот файл в
страницу - создадим небольшой HTML-файл,
примерно с таким содержанием.
<html>
<H1>ActiveX Test</H1>
<hr><center>
<OBJECT
classid="clsid:3B3F505A-696C-4D99-A64F-637E1D690FDE"
codebase="./ActiveFormProj1.ocx"
width=371
heigth=62
align=center
hspace=0
vspace=0
>
</OBJECT>
</html>
Где, classid-это идентификатор GUID,
который можно получить, если обратиться к
View->Type library->слева выбери пункт ActiveFormX->справа
будет нужное поле, а атрибут codebase-местоположение
файла на сервере (например, http://site.ru/my.ocx).
В качестве замечаний скажу:
-
Элемент ActiveX, созданный с помощью
Дельфи достаточно большой, поэтому
пользователь может не дождаться его
загрузки. -
В некоторых броузерах может быть
отключена функция выполнения ActiveX
элементов, так как они способны выполнять
практически любые действия, что
потенциально очень опасно. Обычно
разрешается запускать только
подписанные электронной подписью
элементы и заверенные Microsoft.
Как снабдить компонент подписью мы
поговорим как-нибудь в другой раз. А пока
вот исходники: ActiveX.zip