home *** CD-ROM | disk | FTP | other *** search
- {*******************************************************}
- { }
- { eXpert Development Kit }
- { }
- { Copyright (c) 1996,97 Sergey Orlik }
- { - product manager of Borland Russia }
- { }
- {*******************************************************}
- unit XDKStpEd;
- interface
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, ExtCtrls, ComCtrls,
- DsgnIntf, XDKSteps;
-
- type
- TxdkStepPagesEditor = class(TDefaultEditor)
- function GetStepCount:integer;
- function GetPageControl:TPageControl;
- procedure ExecuteVerb(Index: Integer); override;
- function GetVerb(Index: Integer): string; override;
- function GetVerbCount: Integer; override;
- end;
-
-
- implementation
- {$R XDKSTEPS.DCR}
-
- //================================================================================
- // TXDKStepPagesEditor
- const
- StepPageControlVerbs: array[0..4] of string = ('New Page', 'Next Page', 'Prev Page',
- 'Toggle Tabs Visible','-');
-
- function TxdkStepPagesEditor.GetStepCount:integer;
- begin
- Result:=GetPageControl.PageCount;
- end;
-
- function TxdkStepPagesEditor.GetPageControl:TPageControl;
- begin
- if Component is TxdkSteps then
- Result := (Component as TxdkSteps).StepPages
- else
- if Component is TTabSheet then
- Result := TTabSheet(Component).PageControl
- else
- Result:=nil;
- end;
-
- procedure TxdkStepPagesEditor.ExecuteVerb(Index: Integer);
- var
- PageControl: TPageControl;
- Page: TTabSheet;
- Designer: TFormDesigner;
- i : integer;
- begin
- PageControl := GetPageControl;
- if PageControl <> nil then
- begin
- Designer := Self.Designer;
- case Index of
- 0: begin
- //if Designer.Form.ClassName='TWinControlForm' then
- Page:=TxdkStepTab.Create(Component.Owner); //***
- {else
- Page:=TxdkStepTab.Create(Designer.Form);}
- try
- Page.Name:=Designer.UniqueName(TxdkStepTab.ClassName);
- Page.Parent:=PageControl;
- Page.PageControl:=PageControl;
- Page.TabVisible:=PageControl.Pages[0].TabVisible;
- except
- Page.Free;
- raise;
- end;
- PageControl.ActivePage := Page;
- Designer.SelectComponent(Page);
- Designer.Modified;
- end;
- 1,2:begin
- Page := PageControl.FindNextPage(PageControl.ActivePage,
- Index = 1, False);
- if (Page <> nil) and (Page <> PageControl.ActivePage) then
- begin
- PageControl.ActivePage := Page;
- if Component is TTabSheet then
- Designer.SelectComponent(Page);
- Designer.Modified;
- end;
- end;
- 3: begin
- for i:=0 to PageControl.PageCount-1 do
- PageControl.Pages[i].TabVisible:=not PageControl.Pages[i].TabVisible;
- end;
- else
- begin
- PageControl.ActivePage:=PageControl.Pages[Index-5];
- Designer.SelectComponent(PageControl.ActivePage);
- end;
- end;
- end;
- end;
-
- function TxdkStepPagesEditor.GetVerb(Index: Integer): string;
- begin
- if Index<5 then
- Result := StepPageControlVerbs[Index]
- else
- Result :=GetPageControl.Pages[Index-5].Caption;
- end;
-
- function TxdkStepPagesEditor.GetVerbCount: Integer;
- begin
- if GetStepCount=0 then
- Result := 1
- else
- Result := High(StepPageControlVerbs)+1+GetStepCount;
- end;
-
- end.
-