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
    好的代码像粥一样,都是用时间熬出来的
  • 相关阅读:
    tornado之运行第一个tornado程序
    Django之QuerySet 查询
    openstack之路:KVM/Libvirt 安装
    【原创】Linux基础之SSH隧道/端口转发
    【原创】运维基础之keepalived
    【原创】数据库基础之Mysql(2)主从库配置
    【原创】Linux基础之iptables
    【原创】大叔经验分享(28)ELK分析nginx日志
    【原创】算法基础之Anaconda(1)简介、安装、使用
    【原创】大数据基础之Airflow(1)简介、安装、使用
  • 原文地址:https://www.cnblogs.com/jijm123/p/14030762.html
Copyright © 2011-2022 走看看