zoukankan      html  css  js  c++  java
  • Delphi 2009 之 TCategoryPanelGroup[1]: ChevronAlignment 等

    制作过程:
    先添加一个 TCategoryPanelGroup, 再从其右键菜单 -> New Panel, 反复添加三个 TCategoryPanel.

    本例测试了:
    TCategoryPanelGroup 的 ChevronAlignment 属性、CollapseAll 和 ExpandAll 方法;
    还有 TCategoryPanel 的 Collapsed 属性.

    本例效果图:



    代码文件:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, StdCtrls;
    
    type
      TForm1 = class(TForm)
        CategoryPanelGroup1: TCategoryPanelGroup;
        CategoryPanel1: TCategoryPanel;
        CategoryPanel2: TCategoryPanel;
        CategoryPanel3: TCategoryPanel;
        RadioGroup1: TRadioGroup;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        procedure FormCreate(Sender: TObject);
        procedure RadioGroup1Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    uses TypInfo;
    
    const
      BoolArr: array[Boolean] of string = ('关闭 CPanel1','展开 CPanel1');
    
    procedure TForm1.FormCreate(Sender: TObject);
    var
      i: Integer;
    begin
      CategoryPanel1.Height := ClientHeight div 2;
      CategoryPanel2.Height := CategoryPanel1.Height;
      CategoryPanel3.Height := CategoryPanel1.Height;
    
      CategoryPanel1.Caption := 'CPanel1';
      CategoryPanel2.Caption := 'CPanel2';
      CategoryPanel3.Caption := 'CPanel3';
    
      Button1.Tag := 1;
      Button2.Tag := 2;
      Button3.Tag := 3;
    
      Button2.OnClick := Button1.OnClick;
      Button3.OnClick := Button1.OnClick;
    
      Button1.Caption := '全部关闭';
      Button2.Caption := '全部展开';
      Button2.Click;
    
      RadioGroup1.Caption := 'ChevronAlignment';
      for i := 0 to 2 do
        RadioGroup1.Items.Add(GetEnumName(TypeInfo(TAlignment), i));
      RadioGroup1.ItemIndex := 0;
    end;
    
    procedure TForm1.RadioGroup1Click(Sender: TObject);
    begin
      CategoryPanelGroup1.ChevronAlignment := TAlignment(RadioGroup1.ItemIndex);
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      case TButton(Sender).Tag of
        1: CategoryPanelGroup1.CollapseAll;
        2: CategoryPanelGroup1.ExpandAll;
        3: CategoryPanel1.Collapsed := not CategoryPanel1.Collapsed;
      end;
      Button3.Caption := BoolArr[CategoryPanel1.Collapsed];
    end;
    
    end.
    
    窗体文件:
    object Form1: TForm1
      Left = 0
      Top = 0
      Caption = 'Form1'
      ClientHeight = 224
      ClientWidth = 334
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      OldCreateOrder = False
      OnCreate = FormCreate
      PixelsPerInch = 96
      TextHeight = 13
      object CategoryPanelGroup1: TCategoryPanelGroup
        Left = 0
        Top = 0
        Width = 193
        Height = 224
        VertScrollBar.Tracking = True
        HeaderFont.Charset = DEFAULT_CHARSET
        HeaderFont.Color = clWindowText
        HeaderFont.Height = -11
        HeaderFont.Name = 'Tahoma'
        HeaderFont.Style = []
        TabOrder = 0
        ExplicitHeight = 206
        object CategoryPanel1: TCategoryPanel
          Top = 0
          Caption = 'CategoryPanel1'
          TabOrder = 0
          ExplicitWidth = 230
        end
        object CategoryPanel2: TCategoryPanel
          Top = 200
          Caption = 'CategoryPanel2'
          TabOrder = 1
          ExplicitWidth = 230
        end
        object CategoryPanel3: TCategoryPanel
          Top = 400
          Caption = 'CategoryPanel3'
          TabOrder = 2
          ExplicitWidth = 230
        end
      end
      object RadioGroup1: TRadioGroup
        Left = 209
        Top = 8
        Width = 115
        Height = 105
        Caption = 'RadioGroup1'
        TabOrder = 1
        OnClick = RadioGroup1Click
      end
      object Button1: TButton
        Left = 221
        Top = 126
        Width = 92
        Height = 25
        Caption = 'Button1'
        TabOrder = 2
        OnClick = Button1Click
      end
      object Button2: TButton
        Left = 221
        Top = 157
        Width = 92
        Height = 25
        Caption = 'Button2'
        TabOrder = 3
      end
      object Button3: TButton
        Left = 221
        Top = 188
        Width = 92
        Height = 25
        Caption = 'Button3'
        TabOrder = 4
      end
    end
    
  • 相关阅读:
    Shared Memory in Windows NT
    Layered Memory Management in Win32
    软件项目管理的75条建议
    Load pdbs when you need it
    Stray pointer 野指针
    About the Rebase and Bind operation in the production of software
    About "Serious Error: No RTTI Data"
    Realizing 4 GB of Address Space[MSDN]
    [bbk4397] 第1集 第一章 AMS介绍
    [bbk3204] 第67集 Chapter 17Monitoring and Detecting Lock Contention(00)
  • 原文地址:https://www.cnblogs.com/del/p/1267453.html
Copyright © 2011-2022 走看看