www.pudn.com > FeaturesDemo.rar > FeaturesDemoMain.pas


unit FeaturesDemoMain; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls, ImgList, ExtCtrls, ComCtrls, cxPC, cxLookAndFeels, 
  Menus, Buttons, jpeg, Grids, DBGrids, FileCtrl, DB, DBTables, DBCtrls, 
  cxControls; 
 
type 
  TFeaturesDemoMainForm = class(TForm) 
    MainMenu1: TMainMenu; 
    File1: TMenuItem; 
    Exit1: TMenuItem; 
    cxPageControl1: TcxPageControl; 
    SingleLineSheet: TcxTabSheet; 
    MultiLineSheet: TcxTabSheet; 
    Panel2: TPanel; 
    Panel3: TPanel; 
    Panel1: TPanel; 
    cxPageControl2: TcxPageControl; 
    cxTabSheet1: TcxTabSheet;                  
    cxTabSheet2: TcxTabSheet;                  
    cxTabSheet3: TcxTabSheet;                  
    cxTabSheet4: TcxTabSheet; 
    cxTabSheet5: TcxTabSheet;                  
    cxTabSheet6: TcxTabSheet;                        
    cxTabSheet7: TcxTabSheet;              
    Memo1: TMemo;                          
    cxTabSheet8: TcxTabSheet;                  
    cxTabSheet9: TcxTabSheet; 
    PaintBox1: TPaintBox;                  
    cxTabSheet10: TcxTabSheet;          
    SpeedButton1: TSpeedButton;            
    Label1: TLabel; 
    HotTrackCheckBox: TCheckBox;           
    ComboBox1: TComboBox;                  
    Label2: TLabel;                        
    GoDialogCheckBox: TCheckBox; 
    ShowFrameCheckBox: TCheckBox; 
    HideTabsCheckBox: TCheckBox;           
    Panel4: TPanel;                        
    Panel5: TPanel;                        
    SpeedButton2: TSpeedButton;            
    Label3: TLabel;                        
    Label4: TLabel;                        
    HotTrackCheckBox1: TCheckBox; 
    ComboBox2: TComboBox;                  
    ShowFrameCheckBox1: TCheckBox;         
    Panel6: TPanel;                        
    cxPageControl3: TcxPageControl; 
    cxTabSheet11: TcxTabSheet;             
    RichEdit6: TRichEdit;                  
    cxTabSheet12: TcxTabSheet;                  
    cxTabSheet13: TcxTabSheet; 
    cxTabSheet14: TcxTabSheet;                  
    cxTabSheet15: TcxTabSheet;                 
    cxTabSheet16: TcxTabSheet;                        
    cxTabSheet17: TcxTabSheet;             
    Memo2: TMemo;                          
    cxTabSheet18: TcxTabSheet;                  
    cxTabSheet19: TcxTabSheet;                  
    cxTabSheet20: TcxTabSheet;          
    RaggedRightCheckBox: TCheckBox;        
    ScrollOppositeCheckBox: TCheckBox;     
    FixedTabsCheckBox: TCheckBox; 
    FixedTabsCheckBox1: TCheckBox; 
    ImageList1: TImageList; 
    Label5: TLabel; 
    ShowImagesCheckBox: TCheckBox; 
    ShowImagesCheckBox1: TCheckBox; 
    Image1: TImage; 
    Image2: TImage; 
    RichEdit1: TRichEdit; 
    Image3: TImage; 
    Panel7: TPanel; 
    Label6: TLabel; 
    Memo3: TMemo; 
    Panel8: TPanel; 
    Panel9: TPanel; 
    Label7: TLabel; 
    Label8: TLabel; 
    Label9: TLabel; 
    Label10: TLabel; 
    Label11: TLabel; 
    Label12: TLabel; 
    Label13: TLabel; 
    Label14: TLabel; 
    Label15: TLabel; 
    Label16: TLabel; 
    Label17: TLabel; 
    Label18: TLabel; 
    Label19: TLabel; 
    Label20: TLabel; 
    Label21: TLabel; 
    Label22: TLabel; 
    Label23: TLabel; 
    Label24: TLabel; 
    TrackBar4: TTrackBar; 
    TrackBar5: TTrackBar; 
    TrackBar6: TTrackBar; 
    Label33: TLabel; 
    Label34: TLabel; 
    Label35: TLabel; 
    Label36: TLabel; 
    Timer1: TTimer; 
    Panel11: TPanel; 
    PaintBox2: TPaintBox; 
    Panel12: TPanel; 
    Image5: TImage; 
    Panel13: TPanel; 
    Label38: TLabel; 
    Memo4: TMemo; 
    Panel14: TPanel; 
    Label48: TLabel; 
    Label49: TLabel; 
    Label50: TLabel; 
    Label51: TLabel; 
    TrackBar3: TTrackBar; 
    TrackBar2: TTrackBar; 
    TrackBar1: TTrackBar; 
    PaintBox3: TPaintBox; 
    DBNavigator1: TDBNavigator; 
    DBImage1: TDBImage; 
    Table1: TTable; 
    DataSource1: TDataSource; 
    cxLookAndFeelController1: TcxLookAndFeelController; 
    DataSource2: TDataSource; 
    Table2: TTable; 
    PaintBox4: TPaintBox; 
    DBImage: TDBImage; 
    DBNavigator: TDBNavigator; 
    DirectoryListBox1: TDirectoryListBox; 
    DirectoryListBox2: TDirectoryListBox; 
    procedure FixedTabsCheckBoxClick(Sender: TObject); 
    procedure ComboBox2Click(Sender: TObject); 
    procedure Exit1Click(Sender: TObject); 
    procedure SpeedButton1Click(Sender: TObject); 
    procedure HotTrackCheckBoxClick(Sender: TObject); 
    procedure FormShow(Sender: TObject); 
    procedure GoDialogCheckBoxClick(Sender: TObject); 
    procedure ShowFrameCheckBoxClick(Sender: TObject); 
    procedure HideTabsCheckBoxClick(Sender: TObject); 
    procedure FormCreate(Sender: TObject); 
    procedure ScrollOppositeCheckBoxClick(Sender: TObject); 
    procedure RaggedRightCheckBoxClick(Sender: TObject); 
    procedure ShowImagesCheckBoxClick(Sender: TObject); 
    procedure TrackBar1Change(Sender: TObject); 
    procedure Timer1Timer(Sender: TObject); 
    procedure PaintBoxPaint(Sender: TObject); 
    procedure PaintBox3Paint(Sender: TObject); 
    procedure PaintBox4Paint(Sender: TObject); 
    procedure TrackBarChange(Sender: TObject); 
//    procedure Timer1Timer(Sender: TObject); 
  private 
    procedure AdjustColor; 
    procedure AdjustColor1; 
    procedure SetHorizontalText(); 
    procedure SetVerticalText(); 
    procedure SynchronizeCheckBoxes; 
  end; 
 
var 
  FeaturesDemoMainForm: TFeaturesDemoMainForm; 
 
implementation 
 
uses 
  cxPCPainters; 
 
{$R *.dfm} 
{$R WindowsXP.res} 
 
(*procedure TFeaturesDemoMainForm.ComboBox1Change(Sender: TObject); 
var 
  NewStyleName: TCaption; 
begin 
  with ComboBox1 do 
    NewStyleName ::= Items[ItemIndex]; 
  cxPageControl1.SetStyleByStyleName(NewStyleName); 
  SynchronizeCheckBoxes; 
end; 
 
procedure TFeaturesDemoMainForm.ShowFrameCheckBoxClick(Sender: TObject); 
begin 
  cxPageControl1.ShowFrame ::= ShowFrameCheckBox.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.HideTabsCheckBoxClick(Sender: TObject); 
begin 
  cxPageControl1.HideTabs ::= HideTabsCheckBox.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.SynchronizeCheckBoxes; 
var 
  StyleName: TCaption; 
begin 
  with ComboBox1 do 
    StyleName ::= Items[ItemIndex]; 
  ShowFrameCheckBox.Enabled ::= (StyleName := 'Buttons') or (StyleName := 'FlatButtons'); 
  ScrollOppositeCheckBox.Enabled ::= (not ShowFrameCheckBox.Enabled) and MultiLineCheckBox.Checked; 
  RaggedRightCheckBox.Enabled ::= MultiLineCheckBox.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.UncheckMenuItems; 
begin 
  Flat1.Checked ::= False; 
  Standard1.Checked ::= False; 
  Ultraflat1.Checked ::= False; 
end; 
 
procedure TFeaturesDemoMainForm.FormCreate(Sender: TObject); 
begin 
  SynchronizeCheckBoxes; 
end; 
 
procedure TFeaturesDemoMainForm.HotTrackCheckBoxClick(Sender: TObject); 
begin 
  cxPageControl1.HotTrack ::= HotTrackCheckBox.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.Button1Click(Sender: TObject); 
 
  procedure SetHorizontalText; 
  begin 
    with cxPageControl1 do 
    begin 
      Options ::= Options - [pcoTopToBottomText]; 
      Rotate ::= TabPosition in [tpLeft, tpRight]; 
    end; 
  end; 
 
  procedure SetVerticalText; 
  begin 
    with cxPageControl1 do 
      Rotate ::= TabPosition in [tpTop, tpBottom]; 
  end; 
 
begin 
  with cxPageControl1 do 
  begin 
    if IsVerticalText(cxPageControl1) then 
      if pcoTopToBottomText in Options then 
      begin 
        if TabPosition := High(TcxTabPosition) then 
          TabPosition ::= Low(TcxTabPosition) 
        else 
          TabPosition ::= Succ(TabPosition); 
        SetHorizontalText; 
      end 
      else Options ::= Options + [pcoTopToBottomText] 
    else 
      SetVerticalText; 
  end; 
end; 
 
procedure TFeaturesDemoMainForm.MultiLineCheckBoxClick(Sender: TObject); 
begin 
  cxPageControl1.MultiLine ::= MultiLineCheckBox.Checked; 
  SynchronizeCheckBoxes; 
end; 
 
procedure TFeaturesDemoMainForm.RaggedRightCheckBoxClick(Sender: TObject); 
begin 
  cxPageControl1.RaggedRight ::= RaggedRightCheckBox.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.ScrollOppositeCheckBoxClick(Sender: TObject); 
begin 
  cxPageControl1.ScrollOpposite ::= ScrollOppositeCheckBox.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.CheckBox1Click(Sender: TObject); 
begin 
  with cxPageControl1 do 
    if CheckBox1.Checked then 
    begin 
      TabWidth ::= 80; 
      TabHeight ::= 50; 
    end else 
    begin 
      TabWidth ::= 0; 
      TabHeight ::= 0; 
    end; 
end; 
 
procedure TFeaturesDemoMainForm.Timer1Timer(Sender: TObject); 
var 
  P1, P2: TPoint; 
begin 
  with PaintBox1 do 
  begin 
    P1.X ::= Random(Width); 
    P2.X ::= Random(Width); 
    P1.Y ::= Random(Height); 
    P2.Y ::= Random(Height); 
    Canvas.Polyline([P1, P2]); 
  end; 
end; 
 
procedure TFeaturesDemoMainForm.GoDialogCheckBoxClick(Sender: TObject); 
begin 
  with cxPageControl1 do 
    if GoDialogCheckBox.Checked then 
      Options ::= Options + [pcoGoDialog] 
    else 
      Options ::= Options - [pcoGoDialog]; 
end; 
 
procedure TFeaturesDemoMainForm.Timer2Timer(Sender: TObject); 
begin 
//  HotTrackCheckBox.Checked ::= False; 
end; 
 
procedure TFeaturesDemoMainForm.NativeStyle1Click(Sender: TObject); 
begin 
  NativeStyle1.Checked ::= not NativeStyle1.Checked; 
  cxPageControl1.LookAndFeel.NativeStyle ::= NativeStyle1.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.Flat1Click(Sender: TObject); 
begin 
  UncheckMenuItems; 
  Flat1.Checked ::= True; 
  cxPageControl1.LookAndFeel.Kind ::= lfFlat; 
end; 
 
procedure TFeaturesDemoMainForm.Standard1Click(Sender: TObject); 
begin 
  UncheckMenuItems; 
  Standard1.Checked ::= True; 
  cxPageControl1.LookAndFeel.Kind ::= lfStandard; 
end; 
 
procedure TFeaturesDemoMainForm.Ultraflat1Click(Sender: TObject); 
begin 
  UncheckMenuItems; 
  Ultraflat1.Checked ::= True; 
  cxPageControl1.LookAndFeel.Kind ::= lfUltraFlat; 
end; 
 
procedure TFeaturesDemoMainForm.Exit1Click(Sender: TObject); 
begin 
  Close; 
end;*) 
 
{ TFeaturesDemoMainForm } 
 
procedure TFeaturesDemoMainForm.ComboBox2Click(Sender: TObject); 
var 
  AComboBox: TComboBox; 
begin 
  AComboBox := TComboBox(Sender); 
  if AComboBox.Text = 'XP' then 
  begin 
    cxPageControl2.LookAndFeel.NativeStyle := True; 
    cxPageControl2.Style := cxPCTabsStyle; 
    cxPageControl3.LookAndFeel.NativeStyle := True; 
    cxPageControl3.Style := cxPCTabsStyle; 
  end else 
  begin 
    cxPageControl2.LookAndFeel.NativeStyle := False; 
    cxPageControl2.SetStyleByStyleName(AComboBox.Text); 
    cxPageControl3.LookAndFeel.NativeStyle := False; 
    cxPageControl3.SetStyleByStyleName(AComboBox.Text); 
  end; 
  if Sender = ComboBox1 then ComboBox2.ItemIndex := ComboBox1.ItemIndex 
  else ComboBox1.ItemIndex := ComboBox2.ItemIndex; 
  SynchronizeCheckBoxes; 
end; 
 
procedure TFeaturesDemoMainForm.Exit1Click(Sender: TObject); 
begin 
  Close; 
end; 
 
procedure TFeaturesDemoMainForm.FixedTabsCheckBoxClick(Sender: TObject); 
begin 
  if FixedTabsCheckBox.Checked then 
  begin 
    cxPageControl2.TabWidth := 80; 
    cxPageControl2.TabHeight := 50; 
  end else 
  begin 
    cxPageControl2.TabWidth := 0; 
    cxPageControl2.TabHeight := 0; 
  end; 
  cxPageControl3.TabWidth := cxPageControl2.TabWidth; 
  cxPageControl3.TabHeight := cxPageControl2.TabHeight; 
  if Sender = FixedTabsCheckBox then FixedTabsCheckBox1.Checked := FixedTabsCheckBox.Checked 
  else FixedTabsCheckBox.Checked := FixedTabsCheckBox1.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.FormCreate(Sender: TObject); 
 
  function CreateTabControl(AControl: TWinControl): TcxPageControl; 
  var 
    I: Integer; 
    ATabSheet: TcxTabSheet; 
  begin 
    Result := TcxPageControl.Create(AControl); 
    with Result do 
    begin 
      Parent := AControl; 
      Align := alClient; 
      for I := 1 to 10 do 
      begin 
        ATabSheet := TcxTabSheet.Create(Result); 
        ATabSheet.Caption := IntToStr(I); 
        ATabSheet.PageControl := Result; 
      end; 
    end; 
  end; 
 
var 
  I: Integer; 
  ATabControl: TcxPageControl; 
begin 
  SynchronizeCheckBoxes; 
  ATabControl := CreateTabControl(cxTabSheet10); 
  for I := 1 to 3 do 
    ATabControl := CreateTabControl(ATabControl.Pages[0]); 
  ATabControl := CreateTabControl(cxTabSheet20); 
  for I := 1 to 3 do 
    ATabControl := CreateTabControl(ATabControl.Pages[0]); 
end; 
 
procedure TFeaturesDemoMainForm.FormShow(Sender: TObject); 
begin 
  ComboBox1.ItemIndex := 3; 
  ComboBox2.ItemIndex := 3; 
  Panel1.Color := cxPCLightBrushColor; 
end; 
 
procedure TFeaturesDemoMainForm.GoDialogCheckBoxClick(Sender: TObject); 
begin 
  if GoDialogCheckBox.Checked then 
    cxPageControl2.Options := cxPageControl2.Options + [pcoGoDialog] 
  else 
    cxPageControl2.Options := cxPageControl2.Options - [pcoGoDialog]; 
  cxPageControl3.Options := cxPageControl2.Options; 
end; 
 
procedure TFeaturesDemoMainForm.HideTabsCheckBoxClick(Sender: TObject); 
begin 
  cxPageControl2.HideTabs := HideTabsCheckBox.Checked; 
  cxPageControl3.HideTabs := HideTabsCheckBox.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.HotTrackCheckBoxClick(Sender: TObject); 
begin 
  if Sender = HotTrackCheckBox then 
    HotTrackCheckBox1.Checked := HotTrackCheckBox.Checked 
  else 
    HotTrackCheckBox.Checked := HotTrackCheckBox1.Checked; 
  cxPageControl2.HotTrack := HotTrackCheckBox.Checked; 
  cxPageControl3.HotTrack := HotTrackCheckBox.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.RaggedRightCheckBoxClick(Sender: TObject); 
begin 
  cxPageControl3.RaggedRight := RaggedRightCheckBox.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.ScrollOppositeCheckBoxClick( 
  Sender: TObject); 
begin 
  cxPageControl3.ScrollOpposite := ScrollOppositeCheckBox.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.ShowFrameCheckBoxClick(Sender: TObject); 
begin 
  cxPageControl2.ShowFrame := ShowFrameCheckBox.Checked; 
  cxPageControl3.ShowFrame := ShowFrameCheckBox.Checked; 
  if Sender = ShowFrameCheckBox then 
    ShowFrameCheckBox1.Checked := ShowFrameCheckBox.Checked 
  else 
    ShowFrameCheckBox.Checked := ShowFrameCheckBox1.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.ShowImagesCheckBoxClick(Sender: TObject); 
begin 
  if ShowImagesCheckBox.Checked then 
  begin 
    cxPageControl2.Images := ImageList1; 
    cxPageControl3.Images := ImageList1; 
  end else 
  begin 
    cxPageControl2.Images := nil; 
    cxPageControl3.Images := nil; 
  end; 
  if Sender = ShowImagesCheckBox then 
    ShowImagesCheckBox1.Checked := ShowImagesCheckBox.Checked 
  else 
    ShowImagesCheckBox.Checked := ShowImagesCheckBox1.Checked; 
end; 
 
procedure TFeaturesDemoMainForm.SpeedButton1Click(Sender: TObject); 
begin 
  if IsVerticalText(cxPageControl2) then 
    if pcoTopToBottomText in cxPageControl2.Options then 
    begin 
      if cxPageControl2.TabPosition = tpRight then 
      begin 
        cxPageControl2.TabPosition := tpTop; 
        cxPageControl3.TabPosition := tpTop; 
      end else 
      begin 
        cxPageControl2.TabPosition := TcxTabPosition(Integer(cxPageControl2.TabPosition) + 1); 
        cxPageControl3.TabPosition := cxPageControl2.TabPosition; 
      end; 
      SetHorizontalText; 
    end else 
    begin 
      cxPageControl2.Options := cxPageControl2.Options + [pcoTopToBottomText]; 
      cxPageControl3.Options := cxPageControl3.Options + [pcoTopToBottomText]; 
    end 
  else 
    SetVerticalText(); 
end; 
 
procedure TFeaturesDemoMainForm.SynchronizeCheckBoxes; 
begin 
  ShowFrameCheckBox.Enabled := (ComboBox1.Text = 'Buttons') or (ComboBox1.Text = 'FlatButtons'); 
  ShowFrameCheckBox1.Enabled := ShowFrameCheckBox.Enabled; 
  ScrollOppositeCheckBox.Enabled := not ShowFrameCheckBox.Enabled; 
end; 
 
procedure TFeaturesDemoMainForm.AdjustColor; 
begin 
  PaintBox4.Color := TrackBar1.Position + TrackBar2.Position * 256 + TrackBar3.Position * 65536; 
  PaintBox4.Invalidate; 
end; 
 
procedure TFeaturesDemoMainForm.AdjustColor1; 
begin 
  PaintBox3.Color := TrackBar4.Position + TrackBar5.Position * 256 + TrackBar6.Position * 65536; 
  PaintBox3.Invalidate; 
end; 
 
procedure TFeaturesDemoMainForm.SetHorizontalText; 
begin 
  cxPageControl2.Options := cxPageControl2.Options - [pcoTopToBottomText]; 
  cxPageControl3.Options := cxPageControl3.Options - [pcoTopToBottomText]; 
  cxPageControl2.Rotate := cxPageControl2.TabPosition in [tpLeft, tpRight]; 
  cxPageControl3.Rotate := cxPageControl2.Rotate; 
end; 
 
procedure TFeaturesDemoMainForm.SetVerticalText; 
begin 
  cxPageControl2.Rotate := cxPageControl2.TabPosition in [tpTop, tpBottom]; 
  cxPageControl3.Rotate := cxPageControl2.Rotate; 
end; 
 
procedure TFeaturesDemoMainForm.TrackBar1Change(Sender: TObject); 
begin 
  AdjustColor1; 
end; 
 
procedure TFeaturesDemoMainForm.Timer1Timer(Sender: TObject); 
begin 
  PaintBoxPaint(PaintBox1); 
  PaintBoxPaint(PaintBox2); 
end; 
 
procedure TFeaturesDemoMainForm.PaintBoxPaint(Sender: TObject); 
var 
  X1, Y1, X2, Y2: Integer; 
  A: Integer; 
begin 
  with TPaintBox(Sender) do 
  begin 
    X1 := Random(Width); 
    X2 := Random(Width); 
    if X1 > X2 then 
    begin 
      A := X1; 
      X1 := X2; 
      X2 := A; 
    end; 
    Y1 := Random(Height); 
    Y2 := Random(Height); 
    if Y1 > Y2 then 
    begin 
      A := Y1; 
      Y1 := Y2; 
      Y2 := A; 
    end; 
    Canvas.Brush.Color := Random(65536 * 256); 
    Canvas.Rectangle(X1, Y1, X2, Y2); 
  end; 
end; 
 
procedure TFeaturesDemoMainForm.PaintBox3Paint(Sender: TObject); 
begin 
  with PaintBox3 do 
  begin 
    Canvas.Brush.Color := Color; 
    Canvas.FillRect(Rect(0, 0, Width, Height)); 
  end; 
end; 
 
procedure TFeaturesDemoMainForm.PaintBox4Paint(Sender: TObject); 
begin 
  with PaintBox4 do 
  begin 
    Canvas.Brush.Color := Color; 
    Canvas.FillRect(Rect(0, 0, Width, Height)); 
  end; 
end; 
 
procedure TFeaturesDemoMainForm.TrackBarChange(Sender: TObject); 
begin 
  AdjustColor; 
end; 
 
end.