PagesF.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:4k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit PagesF;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   StdCtrls, Buttons, ComCtrls, ImgList;
  6. type
  7.   TForm1 = class(TForm)
  8.     PageControl1: TPageControl;
  9.     TabSheet1: TTabSheet;
  10.     TabSheet2: TTabSheet;
  11.     TabSheet3: TTabSheet;
  12.     ListBox1: TListBox;
  13.     BitBtnPrevious: TBitBtn;
  14.     BitBtnNext: TBitBtn;
  15.     EditWidth: TEdit;
  16.     UpDown1: TUpDown;
  17.     Label1: TLabel;
  18.     CheckBoxMultiLine: TCheckBox;
  19.     CheckBoxVisible: TCheckBox;
  20.     BitBtnApply: TBitBtn;
  21.     Memo1: TMemo;
  22.     Label2: TLabel;
  23.     EditHeight: TEdit;
  24.     UpDown2: TUpDown;
  25.     Label3: TLabel;
  26.     BitBtnChange: TBitBtn;
  27.     ImageList1: TImageList;
  28.     GroupBox1: TGroupBox;
  29.     RadioButton1: TRadioButton;
  30.     RadioButton2: TRadioButton;
  31.     BitBtnAdd: TBitBtn;
  32.     procedure FormCreate(Sender: TObject);
  33.     procedure ListBox1Click(Sender: TObject);
  34.     procedure BitBtnApplyClick(Sender: TObject);
  35.     procedure BitBtnChangeClick(Sender: TObject);
  36.     procedure BitBtnNextClick(Sender: TObject);
  37.     procedure BitBtnPreviousClick(Sender: TObject);
  38.     procedure Memo1Change(Sender: TObject);
  39.     procedure BitBtnAddClick(Sender: TObject);
  40.   private
  41.     { Private declarations }
  42.   public
  43.     { Public declarations }
  44.   end;
  45. var
  46.   Form1: TForm1;
  47. implementation
  48. {$R *.DFM}
  49. procedure TForm1.FormCreate(Sender: TObject);
  50. var
  51.   I: Integer;
  52. begin
  53.   {fill the listbox and the memo
  54.   with the names of the pages}
  55.   for I := 0 to PageControl1.PageCount -1 do
  56.   begin
  57.     ListBox1.Items.Add (
  58.       PageControl1.Pages [I].Caption);
  59.     Memo1.Lines.Add (
  60.       PageControl1.Pages [I].Caption);
  61.   end;
  62.   {set the initial width and height of tabs}
  63.   EditWidth.Text := IntToStr (PageControl1.TabWidth);
  64.   EditHeight.Text := IntToStr (PageControl1.TabHeight);
  65.   {set the initial width and height of tabs}
  66.   PageControl1.ActivePage := TabSheet1;
  67. end;
  68. procedure TForm1.ListBox1Click(Sender: TObject);
  69. begin
  70.   PageControl1.ActivePage :=
  71.     PageControl1.Pages [ListBox1.ItemIndex];
  72. end;
  73. procedure TForm1.BitBtnApplyClick(Sender: TObject);
  74. begin
  75.   // set tab width, height, and lines
  76.   PageControl1.TabWidth := StrToInt (EditWidth.Text);
  77.   PageControl1.TabHeight := StrToInt (EditHeight.Text);
  78.   PageControl1.MultiLine := CheckBoxMultiLine.Checked;
  79.   // show or hide the last tab
  80.   TabSheet3.TabVisible := CheckBoxVisible.Checked;
  81.   // set the tab position
  82.   if RadioButton1.Checked then
  83.     PageControl1.TabPosition := tpTop
  84.   else
  85.     PageControl1.TabPosition := tpLeft;
  86. end;
  87. procedure TForm1.BitBtnChangeClick(Sender: TObject);
  88. var
  89.   I: Integer;
  90. begin
  91.   if Memo1.Lines.Count = PageControl1.PageCount then
  92.     for I := 0 to PageControl1.PageCount -1 do
  93.       PageControl1.Pages [I].Caption := Memo1.Lines [I];
  94.   BitBtnChange.Enabled := False;
  95. end;
  96. procedure TForm1.BitBtnNextClick(Sender: TObject);
  97. begin
  98.   // basic version:
  99.   {PageControl1.SelectNextPage (True);}
  100.   // special lookup version:
  101.   PageControl1.ActivePage :=
  102.     PageControl1.FindNextPage (
  103.       PageControl1.ActivePage, True, False);
  104. end;
  105. procedure TForm1.BitBtnPreviousClick(Sender: TObject);
  106. begin
  107.   {select previous page}
  108.   PageControl1.SelectNextPage (False);
  109. end;
  110. procedure TForm1.Memo1Change(Sender: TObject);
  111. begin
  112.   BitBtnChange.Enabled := True;
  113. end;
  114. procedure TForm1.BitBtnAddClick(Sender: TObject);
  115. var
  116.   strCaption: string;
  117.   NewTabSheet: TTabSheet;
  118. begin
  119.   strCaption := 'New Tab';
  120.   if InputQuery ('New Tab', 'Tab Caption', strCaption) then
  121.   begin
  122.     // add a new empty page to the control
  123.     NewTabSheet := TTabSheet.Create (PageControl1);
  124.     NewTabSheet.Visible := True;
  125.     NewTabSheet.Caption := strCaption;
  126.     NewTabSheet.PageControl := PageControl1;
  127.     PageControl1.ActivePage := NewTabSheet;
  128.     // add it to both lists
  129.     Memo1.Lines.Add (strCaption);
  130.     ListBox1.Items.Add (strCaption);
  131.   end;
  132. end;
  133. end.