• Партнер

  • Привет! Это снова я, а это значит,
    что сейчас мы будем говорить о кодинге на
    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).

    В качестве замечаний скажу:

    1. Элемент ActiveX, созданный с помощью
      Дельфи достаточно большой, поэтому
      пользователь может не дождаться его
      загрузки.

    2. В некоторых броузерах может быть
      отключена функция выполнения ActiveX
      элементов, так как они способны выполнять
      практически любые действия, что
      потенциально очень опасно. Обычно
      разрешается запускать только
      подписанные электронной подписью
      элементы и заверенные Microsoft.

    Как снабдить компонент подписью мы
    поговорим как-нибудь в другой раз. А пока
    вот исходники: ActiveX.zip

    Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии