Marco Web Center

[an error occurred while processing this directive]

Home: Code Repository: Delphi 2009 Handbook

Project: CategoryPanels.dproj

Project Structure

CategoryPanels.dpr
program CategoryPanels;

uses
  Forms,
  CategoryPanels_MainForm in 'CategoryPanels_MainForm.pas' {FormCategoryPanels};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TFormCategoryPanels, FormCategoryPanels);
  Application.Run;
end.
CategoryPanels_MainForm.pas
unit CategoryPanels_MainForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, ExtCtrls, StdCtrls;

type
  TFormCategoryPanels = class(TForm)
    CategoryPanelGroup1: TCategoryPanelGroup;
    CategoryPanel1: TCategoryPanel;
    CategoryPanel2: TCategoryPanel;
    CategoryPanel3: TCategoryPanel;
    Button1: TButton;
    Button2: TButton;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    GridPanel1: TGridPanel;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    ImageList1: TImageList;
    btnAddCategory: TButton;
    btnListPanels: TButton;
    ListBox1: TListBox;
    procedure btnAddCategoryClick(Sender: TObject);
    procedure btnListPanelsClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormCategoryPanels: TFormCategoryPanels;

implementation

{$R *.dfm}

procedure TFormCategoryPanels.btnListPanelsClick(Sender: TObject);
var
  I: Integer;
begin
  ListBox1.Clear;
  for I := 0 to CategoryPanelGroup1.ControlCount - 1 do
    ListBox1.Items.Add (
      (CategoryPanelGroup1.Controls[I] as TCategoryPanel).Caption);

  for I := 0 to CategoryPanelGroup1.Panels.Count - 1 do
    ListBox1.Items.Add (
      TCategoryPanel(CategoryPanelGroup1.Panels[I]).Caption);
end;

procedure TFormCategoryPanels.btnAddCategoryClick(Sender: TObject);
var
  newPanel: TCategoryPanel;
begin
  newPanel := CategoryPanelGroup1.CreatePanel(self)
    as TCategoryPanel;
  NewPanel.Caption := 'Dynamic Panel';

  with TButton.Create(self) do
  begin
    Caption := 'New button';
    Parent := NewPanel;
    SetBounds (10, 10, Width, Height);
  end;
end;

end.
CategoryPanels_MainForm.pas.dfm
object FormCategoryPanels: TFormCategoryPanels
  Left = 0
  Top = 0
  Caption = 'CategoryPanels'
  ClientHeight = 329
  ClientWidth = 548
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object CategoryPanelGroup1: TCategoryPanelGroup
    Left = 0
    Top = 0
    Height = 329
    VertScrollBar.Tracking = True
    HeaderFont.Charset = DEFAULT_CHARSET
    HeaderFont.Color = clWindowText
    HeaderFont.Height = -11
    HeaderFont.Name = 'Tahoma'
    HeaderFont.Style = []
    Images = ImageList1
    TabOrder = 0
    ExplicitHeight = 440
    object CategoryPanel1: TCategoryPanel
      Top = 0
      Height = 145
      Caption = 'CategoryPanel1'
      CollapsedImageIndex = 0
      ExpandedImageIndex = 0
      TabOrder = 0
      object Button1: TButton
        Left = 40
        Top = 24
        Width = 75
        Height = 25
        Caption = 'Button1'
        TabOrder = 0
      end
      object Button2: TButton
        Left = 40
        Top = 64
        Width = 75
        Height = 25
        Caption = 'Button2'
        TabOrder = 1
      end
    end
    object CategoryPanel2: TCategoryPanel
      Top = 145
      Height = 30
      Caption = 'CategoryPanel2'
      Collapsed = True
      CollapsedImageIndex = 2
      ExpandedImageIndex = 1
      TabOrder = 1
      ExpandedHeight = 152
      object CheckBox1: TCheckBox
        Left = 32
        Top = 24
        Width = 97
        Height = 17
        Caption = 'CheckBox1'
        TabOrder = 0
      end
      object CheckBox2: TCheckBox
        Left = 32
        Top = 56
        Width = 97
        Height = 17
        Caption = 'CheckBox2'
        TabOrder = 1
      end
      object CheckBox3: TCheckBox
        Left = 32
        Top = 88
        Width = 97
        Height = 17
        Caption = 'CheckBox3'
        TabOrder = 2
      end
    end
    object CategoryPanel3: TCategoryPanel
      Top = 175
      Height = 232
      Caption = 'CategoryPanel3'
      TabOrder = 2
      object GridPanel1: TGridPanel
        Left = 0
        Top = 0
        Width = 179
        Height = 206
        Align = alClient
        Caption = 'GridPanel1'
        ColumnCollection = <
          item
            Value = 50.000000000000000000
          end
          item
            Value = 50.000000000000000000
          end>
        ControlCollection = <
          item
            Column = 0
            Control = Button3
            Row = 0
          end
          item
            Column = 1
            Control = Button4
            Row = 0
          end
          item
            Column = 0
            Control = Button5
            Row = 1
          end
          item
            Column = 1
            Control = Button6
            Row = 1
          end>
        RowCollection = <
          item
            Value = 50.000000000000000000
          end
          item
            Value = 50.000000000000000000
          end
          item
            SizeStyle = ssAuto
          end>
        ShowCaption = False
        TabOrder = 0
        DesignSize = (
          179
          206)
        object Button3: TButton
          Left = 7
          Top = 39
          Width = 75
          Height = 25
          Anchors = []
          Caption = 'Button3'
          TabOrder = 0
        end
        object Button4: TButton
          Left = 96
          Top = 39
          Width = 75
          Height = 25
          Anchors = []
          Caption = 'Button4'
          TabOrder = 1
        end
        object Button5: TButton
          Left = 7
          Top = 141
          Width = 75
          Height = 25
          Anchors = []
          Caption = 'Button5'
          TabOrder = 2
        end
        object Button6: TButton
          Left = 96
          Top = 141
          Width = 75
          Height = 25
          Anchors = []
          Caption = 'Button6'
          TabOrder = 3
        end
      end
    end
  end
  object btnAddCategory: TButton
    Left = 392
    Top = 8
    Width = 137
    Height = 25
    Caption = 'btnAddCategory'
    TabOrder = 1
    OnClick = btnAddCategoryClick
  end
  object btnListPanels: TButton
    Left = 392
    Top = 40
    Width = 137
    Height = 25
    Caption = 'btnListPanels'
    TabOrder = 2
    OnClick = btnListPanelsClick
  end
  object ListBox1: TListBox
    Left = 392
    Top = 95
    Width = 137
    Height = 169
    ItemHeight = 13
    TabOrder = 3
  end
  object ImageList1: TImageList
    Left = 272
    Top = 56
    Bitmap = {
      494C010103000800040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
      0000000000003600000028000000400000001000000001002000000000000010
      0000000000000000000000000000000000000000000000000000000000008E47
      1E0087441E0080411F0087441E000000000000000000005EC100005DBE000052
      AF000057B1000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000A70D800000000000000000000000000000000000000
      00000000000004490600055B0900066C0C00066C0C00055E0A00044C06000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000009852260098522600D16B
      0000CC6E0B00C5670600A04E0A00633C24001879D4003793E40067AEF0003991
      E700549AE0000563C1000056AF00000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000076DD400197FDE00076DD400076DD4000000000000000000000000000560
      0900056009000891130009B0180009B31A0009B3190009B11900079614000568
      0C0005680C000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000D47D2800E18F3A00E18F
      3A00FFFFFF00FFFFFF00E4B78A004F6B85002DA3FC00FFFFFF00EBF5FF00FFFF
      FF00FFFFFF0055A2EB00005EC50000000000000000000000000011EEED0000CC
      FF0000000000000000000000000000000000000000000000000000000000076D
      D4002F95ED004AAFFF00076DD4000000000000000000000000000A6A15000A7F
      15000BB61C0009B91A0008B4180007B2160009B3190009B4190009B81A0009B9
      1A0007831000044D060000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000CC782C00EBA86200EBA86200FFFF
      FF00E0954A00E0954A00A35E1A004B95CB0046B6FF0031A2F500FFFFFF00077F
      EC00077FEC002089EC000172E2000054AB0000000000000000000000000011EE
      ED0000CCFF000000000000000000076DD400076DD400076DD400076DD400278C
      EC003FA5FA000268D0000000000000000000000000000B6A15000F85220016BD
      340011B727000BB21C0007B1160008B1170009B2190009B2190009B2190009B4
      190009BA1A000784100006670C00000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000D5853700FAD0A500FFFFFF00FFFF
      FF00FFFFFF00FFFFFF00CCAF940063B6E80053C0FF0054B8F900FFFFFF00FFFF
      FF007EBEF6000A81EC000C7FEF00005BBA000000000000000000000000000000
      000000000000000000000B6DD7000B6DD700278CEC0058BDFF0058BDFF00278C
      EC00076DD400000000000000000000000000000000000B6A150020BE49001BBD
      400014B730000AB21F0063CE6D00EEFAEF00DFF5E10028BC360009B2190009B2
      190009B3190009BA1A0006670C00000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000D68F4B00FAD0A500FCD9B700FFFF
      FF00EBAA6900EBAA6900B681510093BFE00079D6FF0054BFFF00FFFFFF0061B5
      F60061B5F6002391F000188AF0000165CA000000000000000000000000000000
      000000000000005F78001277E6003FA5FA002288E0003BA0EE0045ABFF00379C
      FF000268D000000000000000000000000000087210001B9A3A002AC65B001DBB
      45000EB425005BCC6600F7FDF800FFFFFF009ADFA00011B4200009B2190009B2
      190009B2190009B81A0008941300045D09000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000D68F4B00F1C79E00FAD3AA00FCD9
      B700FFFFFF00DBE4DB00BCB8A1003C6247003E7968002F7F8D006EB1CE00FFFF
      FF00FFFFFF0069B9F8001988E7000565C6000000000000000000000000000000
      0000118413001B9A2D0000637500288EEE0058BDFF00187EE0002186EE00379C
      FF000268D000000000000000000000000000087210002AB65B002CC5650022BD
      4D005CCC6900F6FCF700FDFEFD008EDB950009B21A0009B2190009B2190009B2
      190009B2190009B51A0008AB1700045D09000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000D9955400F9DEC500FCD9
      B700B9AB860046642D000F710A00038307000077060009671700195C4600619E
      AE0082CBFD003AA3F2001879D300000000000000000000000000000000000672
      0A00128921004BE47E0036BA510000635F002186EE00379CFF001177DE001C82
      E900076DD4000000000000000000000000000F821C0037C26C0033C76C008ADD
      A800F4FCF600FFFFFF00F9FDFA00C7EED200C4EDCC00BFEBC300BFEBC300C0EB
      C400C2ECC60008B4190009B3190005650B000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000D9955400D37A2A00C28A
      4E00436B3100079A200004B71C00D6F4D900BCECC10012B21E001B8B1F000B55
      36001B72AD00116FCC00116FCC00000000000000000000000000000000000978
      0E002EC65C00249D380044DD65001296110000605300197EEA00379CFF000A70
      D800076DD400000000000000000000000000138D230058CC830042C97700C9EF
      D800FFFFFF00FFFFFF00FDFFFE00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
      FF00FFFFFF000AB41A0009B31900066D0D000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000963
      1200148A2E0018C14300FFFFFF00FFFFFF00FFFFFF0076D5830000AF11000477
      0D0004480A000000000000000000000000000000000000000000000000000978
      0E002EC65C001A9E35000C851300059F070001840100006053001277E600076D
      D400000000000000000000000000000000000F911D006FD293005FD38D0044C9
      7700B7EACB00FFFFFF00FBFEFC009AE2B40058CD79005CCE76005CCD76005CCD
      73005BCD720011B82B0008B1190005610A000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000065
      0E002BC1640029C05B0046C86A0060CE7700C2ECC600FFFFFF0005B2150008A6
      170004480A000000000000000000000000000000000000000000000000000978
      0E0027B84C0018A32E0007800C00037A0500059F0700037A0500026C5B000000
      0000000000000000000000000000000000000F911D0067CC83009BE5BA0038C6
      700032C36A00AAE6C100FFFFFF00E9F9EF006AD38E0021BD4D001EBC49001EBC
      47001AB93E0010BA290008A3170005610A000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000001485
      1D004ACA7C0026C062004CCB7800FFFFFF00FFFFFF0036C14B0005B1160009B0
      1800044F07000000000000000000000000000000000000000000000000001289
      21000D881900088C0D0001840100037A0500006E0000006E00000000000011EE
      ED0000CCFF000000000000000000000000000000000025AE3900BCEDD20082DB
      A40028C0630031C26800A4E4BD00FFFFFF00F7FDF90045C86E0020BB4A001DBA
      410018B7360014C030000A851700000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000000000000000000042B1
      52006BCE88003DC87400FFFFFF00CFF1DD0098E0AC003EC55E000FB92B000A95
      1700044F070000000000000000000000000000000000000000001D932E0033C3
      4E00047607000065000000650000006E00000065000000000000000000000000
      000011EEED0000CCFF0000000000000000000000000025AE390071D28C00D2F4
      E10080DAA30036C46D0031C36A00AAE6C100BDECCF0035C4690024BE560023BC
      4D001FC1460016AE34000A851700000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000042B15200A1E7BF0079DAA000FFFFFF00FFFFFF00FFFFFF0018BF42000963
      120000000000000000000000000000000000000000001080190036CF5400088C
      0D00006500000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000025AE390084D8
      9F00DBF7EA00AFE8C6006BD4930052CC810044C9780049CA7B0048CB780039CB
      6A0021B649000F7C1F0000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000042B1520054BD66008EDCA500E0F7E900AAE7C10029B45500128428000963
      120000000000000000000000000000000000006E0000046E0800047607000065
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000000000000000000025AE
      390025AE3900ADE8C500CCF2DE00BAEDD100A6E7C20091E2B30064D492002FB1
      57002FB157000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000159E25001E9E33001394290008711000000000000000
      000000000000000000000000000000000000148E2800006E0000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000032B74E0025AE390025AE390025AE390025AE390024A342000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000424D3E000000000000003E000000
      2800000040000000100000000100010000000000800000000000000000000000
      000000000000000000000000FFFFFF00E187FFFDF81F00008001FFF0E0070000
      8001CFE1C00300000000E603800100000000FC07800100000000F80700000000
      0000F007000000008001E007000000008001E00700000000E007E00F00000000
      E007E01F00000000E007E02780010000E007C07380010000F00F87FFC0030000
      F00F0FFFE0070000FC3F3FFFF81F000000000000000000000000000000000000
      000000000000}
  end
end
HTML file generated by PasToWeb, a tool by Marco Cantù
Copyright 2008 Marco Cantù