Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

stdcall;

Затем, конечно, реализуйте эти функции…

// – реализация PersistPropBagInitNew

function TButtonX.PersistPropBagInitNew: HResult;

begin

 Result := S_OK;

end;

// -- реализация PersistPropBagLoad

function TButtonX.PersistPropBagLoad(const pPropBag: IPropertyBag; const pErrorLog: IErrorLog): HResult; stdcall;

var v: OleVariant;

begin

 if pPropBag.Read('Caption', v, pErrorLog) = S_OK then FDelphiControl.Caption := v;

 Result := S_OK;

end;

// --
реализация PersistPropBagSave

function TButtonX.PersistPropBagSave(const pPropBag: IPropertyBag; fClearDirty: BOOL; fSaveAllProperties: BOOL) : HResult; stdcall;

var v: OleVariant;

begin

 v:= FDelphiControl.Caption;

 pPropBag.Write('Caption', v);

 Result := S_OK;

end;

Добавлением этого кода завершается создание элемента управления. Продолжаем дальше: соберите (build) элемент управления ActiveX и разместите его в сети. Сделайте это с помощью мастера Web Delpoy Wizard. Просто сделайте необходимые настройки на странице Project|Web Delpoyment Options и разместите ActiveX через Project| Web Deploy.

Мастер Web Deployment Wizard создаст HTML-страницу, содержащую тэг OBJECT, которая должна выглядеть приблизительно так:

<OBJECT classid="clsid:324EB783-20A4-11D1-AB11-0020AF3E6306" codebase="ActiveX/ButtonXControl.ocx" width=100 height=50 align=center hspace=0 vspace=0> </OBJECT>

Эта страница должна заработать без проблем. Тем не менее, теперь у вас имеется возможность задания заголовка для кнопок через HTML простым добавлением тэга PARAM. Вам измененный тэг OBJECT должен выглядеть таким образом:

<OBJECT classid="clsid:324EB783-20A4-11D1-AB11-0020AF3E6306" codebase="ActiveX/ButtonXControl.ocx" width=100 height=50 align=center hspace=0 vspace=0> <Param Name="Caption» Value="Привет"> </OBJECT>

Заголовок кнопки теперь будет говорить вам «Привет». В нашем примере заголовок будет доступен только с помощью данного метода. Для того, чтобы рулить другими свойствами, следуйте нашему примеру и изменяйте имя свойства, которое вы хотите использовать.

Использование ChartFX

Delphi 1

Это код, который я использую для установки chartfx.

chart1.Opendata[cod_values]:=makelong(no_of_series, no_of_classes);

{установка последовательных значений}

chart1.closedata[cod_values]:=0;

unit TstChart;

interface

uses= WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Menus, Dialogs, StdCtrls, Buttons, ExtCtrls, Tabs, ChartFX, {Похоже,
действительно необходимо включить этот модульв список, чтобы иметь доступ к константам, например к COD_VALUES} VBXCtrl, Chart2fx;

type TF_Chart = class(TForm)

 SpeedPanel: TPanel;

 ExitBtn: TSpeedButton;

 NB: TNotebook;

 TB: TTabSet;

 Chart1: TChartFX;

 Chart2: TChartFX;

 procedure ExitItemClick(Sender: TObject);

 procedure FormCreate(Sender: TObject);

 procedure TBClick(Sender: TObject);

 procedure FormResize(Sender: TObject);

private

 { Private declarations }

public

 { Public declarations }

 Procedure Build1(Ch : TChartFX);

 Procedure Build2(Ch : TChartFX);

end;

var F_Chart: TF_Chart;

implementation

{$R *.DFM}

procedure TF_Chart.ExitItemClick(Sender: TObject);

begin

 Close;

end;

procedure TF_Chart.FormCreate(Sender: TObject);

begin

 TB.Tabs := NB.Pages;

 NB.PageIndex := 0;

 Build1(Chart2);

 Build2(Chart2); {добавляем значения для Chart2: length... и т.д.}

end;

procedure TF_Chart.TBClick(Sender: TObject);

begin

 NB.PageIndex := TB.TabIndex;

end;

Procedure TF_Chart.Build1(Ch : TChartFX);

begin

 {Эта процедура изменяет свойства, которые могут устанавливаться во время разработки или временя выполнения. В коментариях подробно указано чем занимается метод Design}

 with Ch do begin

Adm[CSA_GAP] := 25.0;

{Design: Используйте свойство AdmDlg для изменения координаты Y}

pType := BAR or CT_LEGEND;

Поделиться с друзьями: