home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 25: Programming / pc_actual_25.iso / Delphi / eXpertDevelopmentKit / SOURCE / XDKSTPED.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-01-26  |  3.7 KB  |  122 lines

  1. {*******************************************************}
  2. {                                                       }
  3. {       eXpert Development Kit                          }
  4. {                                                       }
  5. {       Copyright (c) 1996,97 Sergey Orlik              }
  6. {       - product manager of Borland Russia             }
  7. {                                                       }
  8. {*******************************************************}
  9. unit XDKStpEd;
  10. interface
  11. uses
  12.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  13.   StdCtrls, ExtCtrls, ComCtrls,
  14.   DsgnIntf, XDKSteps;
  15.  
  16. type
  17.   TxdkStepPagesEditor = class(TDefaultEditor)
  18.     function GetStepCount:integer;
  19.     function GetPageControl:TPageControl;
  20.     procedure ExecuteVerb(Index: Integer); override;
  21.     function GetVerb(Index: Integer): string; override;
  22.     function GetVerbCount: Integer; override;
  23.   end;
  24.  
  25.  
  26. implementation
  27. {$R XDKSTEPS.DCR}
  28.  
  29. //================================================================================
  30. // TXDKStepPagesEditor
  31. const
  32.   StepPageControlVerbs: array[0..4] of string = ('New Page', 'Next Page', 'Prev Page',
  33.                         'Toggle Tabs Visible','-');
  34.  
  35. function TxdkStepPagesEditor.GetStepCount:integer;
  36. begin
  37.   Result:=GetPageControl.PageCount;
  38. end;
  39.  
  40. function TxdkStepPagesEditor.GetPageControl:TPageControl;
  41. begin
  42.   if Component is TxdkSteps then
  43.     Result := (Component as TxdkSteps).StepPages
  44.   else
  45.     if Component is TTabSheet then
  46.       Result := TTabSheet(Component).PageControl
  47.     else
  48.       Result:=nil;
  49. end;
  50.  
  51. procedure TxdkStepPagesEditor.ExecuteVerb(Index: Integer);
  52. var
  53.   PageControl: TPageControl;
  54.   Page: TTabSheet;
  55.   Designer: TFormDesigner;
  56.   i : integer;
  57. begin
  58.   PageControl := GetPageControl;
  59.   if PageControl <> nil then
  60.   begin
  61.     Designer := Self.Designer;
  62.     case Index of
  63.       0: begin
  64.             //if Designer.Form.ClassName='TWinControlForm' then
  65.               Page:=TxdkStepTab.Create(Component.Owner); //***
  66.             {else
  67.               Page:=TxdkStepTab.Create(Designer.Form);}
  68.             try
  69.               Page.Name:=Designer.UniqueName(TxdkStepTab.ClassName);
  70.               Page.Parent:=PageControl;
  71.               Page.PageControl:=PageControl;
  72.               Page.TabVisible:=PageControl.Pages[0].TabVisible;
  73.             except
  74.               Page.Free;
  75.               raise;
  76.             end;
  77.             PageControl.ActivePage := Page;
  78.             Designer.SelectComponent(Page);
  79.             Designer.Modified;
  80.           end;
  81.       1,2:begin
  82.             Page := PageControl.FindNextPage(PageControl.ActivePage,
  83.               Index = 1, False);
  84.             if (Page <> nil) and (Page <> PageControl.ActivePage) then
  85.             begin
  86.               PageControl.ActivePage := Page;
  87.               if Component is TTabSheet then
  88.                 Designer.SelectComponent(Page);
  89.               Designer.Modified;
  90.             end;
  91.           end;
  92.       3:  begin
  93.             for i:=0 to PageControl.PageCount-1 do
  94.               PageControl.Pages[i].TabVisible:=not PageControl.Pages[i].TabVisible;
  95.           end;
  96.       else
  97.         begin
  98.           PageControl.ActivePage:=PageControl.Pages[Index-5];
  99.           Designer.SelectComponent(PageControl.ActivePage);
  100.         end;
  101.     end;
  102.   end;
  103. end;
  104.  
  105. function TxdkStepPagesEditor.GetVerb(Index: Integer): string;
  106. begin
  107.   if Index<5 then
  108.     Result := StepPageControlVerbs[Index]
  109.   else
  110.     Result :=GetPageControl.Pages[Index-5].Caption;
  111. end;
  112.  
  113. function TxdkStepPagesEditor.GetVerbCount: Integer;
  114. begin
  115.   if GetStepCount=0 then
  116.     Result := 1
  117.   else
  118.     Result := High(StepPageControlVerbs)+1+GetStepCount;
  119. end;
  120.  
  121. end.
  122.