Browse Source

Adding TBCMaterialEdit test

Melchiorre Caruso 10 months ago
parent
commit
832b150b6e

+ 378 - 0
test/test_material_edit/bcmaterialedit_test/bcmaterialedit_form.lfm

@@ -0,0 +1,378 @@
+object Form1: TForm1
+  Left = 289
+  Height = 691
+  Top = 311
+  Width = 634
+  Caption = 'TBCMaterialEdit TEST'
+  ClientHeight = 691
+  ClientWidth = 634
+  Color = clForm
+  Position = poDesktopCenter
+  LCLVersion = '4.0.0.2'
+  OnCreate = FormCreate
+  object Button1: TButton
+    AnchorSideLeft.Control = AnchorsCheckGroup
+    AnchorSideTop.Side = asrBottom
+    AnchorSideRight.Control = AnchorsCheckGroup
+    AnchorSideRight.Side = asrBottom
+    AnchorSideBottom.Control = Button2
+    Left = 210
+    Height = 48
+    Top = 575
+    Width = 136
+    Anchors = [akLeft, akRight, akBottom]
+    BorderSpacing.Top = 10
+    Caption = 'Dark/Light'
+    Constraints.MaxHeight = 48
+    Constraints.MinHeight = 48
+    TabOrder = 2
+    OnClick = Button1Click
+  end
+  object AnchorsCheckGroup: TCheckGroup
+    AnchorSideLeft.Control = EventsCheckGroup
+    AnchorSideLeft.Side = asrBottom
+    AnchorSideTop.Control = EventsCheckGroup
+    Left = 210
+    Height = 124
+    Top = 217
+    Width = 136
+    AutoFill = True
+    AutoSize = True
+    BorderSpacing.Left = 14
+    Caption = 'Anchors'
+    ChildSizing.LeftRightSpacing = 6
+    ChildSizing.TopBottomSpacing = 6
+    ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
+    ChildSizing.EnlargeVertical = crsHomogenousChildResize
+    ChildSizing.ShrinkHorizontal = crsScaleChilds
+    ChildSizing.ShrinkVertical = crsScaleChilds
+    ChildSizing.Layout = cclLeftToRightThenTopToBottom
+    ChildSizing.ControlsPerLine = 1
+    ClientHeight = 104
+    ClientWidth = 134
+    Items.Strings = (
+      'Top anchor'
+      'Left anchor'
+      'Right anchor'
+      'Bottom anchor'
+    )
+    ParentBackground = False
+    TabOrder = 3
+    OnItemClick = AnchorsCheckGroupItemClick
+    Data = {
+      0400000002020202
+    }
+  end
+  object EventsCheckGroup: TCheckGroup
+    AnchorSideLeft.Control = Owner
+    AnchorSideBottom.Control = Owner
+    AnchorSideBottom.Side = asrBottom
+    Left = 5
+    Height = 469
+    Top = 217
+    Width = 191
+    Anchors = [akLeft, akBottom]
+    AutoFill = True
+    AutoSize = True
+    BorderSpacing.Left = 5
+    BorderSpacing.Bottom = 5
+    Caption = 'Events'
+    ChildSizing.LeftRightSpacing = 6
+    ChildSizing.TopBottomSpacing = 6
+    ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
+    ChildSizing.EnlargeVertical = crsHomogenousChildResize
+    ChildSizing.ShrinkHorizontal = crsScaleChilds
+    ChildSizing.ShrinkVertical = crsScaleChilds
+    ChildSizing.Layout = cclLeftToRightThenTopToBottom
+    ChildSizing.ControlsPerLine = 1
+    ClientHeight = 449
+    ClientWidth = 189
+    Items.Strings = (
+      'On Change'
+      'On Change Bounds'
+      'On Click'
+      'On Double Click'
+      'On Editing Done'
+      'On Enter'
+      'On Exit'
+      'On Key Down'
+      'On Key Press'
+      'On Key Up'
+      'On Mouse Down'
+      'On Mouse Enter'
+      'On Mouse Leave'
+      'On Mouse Move'
+      'On Mouse Up'
+      'On Mouse Wheel'
+      'On Mouse Wheel Down'
+      'On Mouse Wheel Up'
+      'On Resize'
+    )
+    ParentBackground = False
+    ParentFont = False
+    TabOrder = 4
+    Data = {
+      1300000002020202020202020202020202020202020202
+    }
+  end
+  object Button2: TButton
+    AnchorSideLeft.Control = Button1
+    AnchorSideTop.Control = Button1
+    AnchorSideTop.Side = asrBottom
+    AnchorSideRight.Control = Button1
+    AnchorSideRight.Side = asrBottom
+    AnchorSideBottom.Control = Owner
+    AnchorSideBottom.Side = asrBottom
+    Left = 210
+    Height = 48
+    Top = 633
+    Width = 136
+    Anchors = [akLeft, akRight, akBottom]
+    BorderSpacing.Top = 10
+    BorderSpacing.Bottom = 10
+    Caption = 'Clear Meno'
+    Constraints.MaxHeight = 48
+    Constraints.MinHeight = 48
+    TabOrder = 5
+    OnClick = Button2Click
+  end
+  object Label1: TMemo
+    AnchorSideLeft.Control = DividerBevel1
+    AnchorSideTop.Control = DividerBevel1
+    AnchorSideTop.Side = asrBottom
+    AnchorSideRight.Control = DividerBevel1
+    AnchorSideRight.Side = asrBottom
+    AnchorSideBottom.Control = Owner
+    AnchorSideBottom.Side = asrBottom
+    Left = 356
+    Height = 445
+    Top = 241
+    Width = 273
+    Anchors = [akTop, akLeft, akRight, akBottom]
+    BorderSpacing.Top = 5
+    BorderSpacing.Bottom = 5
+    TabOrder = 0
+  end
+  object DividerBevel1: TDividerBevel
+    AnchorSideLeft.Control = AnchorsCheckGroup
+    AnchorSideLeft.Side = asrBottom
+    AnchorSideTop.Control = AnchorsCheckGroup
+    AnchorSideRight.Control = Owner
+    AnchorSideRight.Side = asrBottom
+    Left = 356
+    Height = 19
+    Top = 217
+    Width = 273
+    Caption = 'Monitor'
+    Anchors = [akTop, akLeft, akRight]
+    BorderSpacing.Left = 10
+    BorderSpacing.Right = 5
+    ParentFont = False
+  end
+  object Panel1: TPanel
+    AnchorSideLeft.Control = Owner
+    AnchorSideTop.Control = Owner
+    AnchorSideRight.Control = Owner
+    AnchorSideRight.Side = asrBottom
+    AnchorSideBottom.Control = EventsCheckGroup
+    Left = 5
+    Height = 207
+    Top = 5
+    Width = 624
+    Anchors = [akTop, akLeft, akRight, akBottom]
+    BorderSpacing.Left = 5
+    BorderSpacing.Top = 5
+    BorderSpacing.Right = 5
+    BorderSpacing.Bottom = 5
+    BevelInner = bvRaised
+    BevelOuter = bvLowered
+    ClientHeight = 207
+    ClientWidth = 624
+    Color = clWhite
+    ParentBackground = False
+    ParentColor = False
+    TabOrder = 1
+    object BCMaterialEdit1: TBCMaterialEdit
+      AnchorSideLeft.Control = Panel1
+      AnchorSideTop.Control = Panel1
+      Left = 216
+      Height = 103
+      Top = 50
+      Width = 207
+      AccentColor = clHighlight
+      Anchors = []
+      AutoSize = False
+      BorderSpacing.Left = 10
+      BorderSpacing.Top = 10
+      BorderSpacing.Right = 10
+      BorderSpacing.Bottom = 10
+      Caption = 'Test'
+      Constraints.MinWidth = 50
+      DisabledColor = 12103592
+      DoubleBuffered = False
+      EditLabel.Height = 19
+      EditLabel.Width = 197
+      EditLabel.Caption = 'Test'
+      EditLabel.ParentFont = False
+      EditLabel.Font.Color = 12103592
+      EditLabel.Font.Style = [fsBold]
+      LabelSpacing = 2
+      ParentColor = True
+      ParentFont = True
+      TabOrder = 0
+      Text = 'Text'
+      OnChange = BCMaterialEdit1Change
+      OnChangeBounds = BCMaterialEdit1ChangeBounds
+      OnClick = BCMaterialEdit1Click
+      OnEditingDone = BCMaterialEdit1EditingDone
+      OnEnter = BCMaterialEdit1Enter
+      OnExit = BCMaterialEdit1Exit
+      OnKeyDown = BCMaterialEdit1KeyDown
+      OnKeyPress = BCMaterialEdit1KeyPress
+      OnKeyUp = BCMaterialEdit1KeyUp
+      OnMouseDown = BCMaterialEdit1MouseDown
+      OnMouseEnter = BCMaterialEdit1MouseEnter
+      OnMouseLeave = BCMaterialEdit1MouseLeave
+      OnMouseMove = BCMaterialEdit1MouseMove
+      OnMouseUp = BCMaterialEdit1MouseUp
+      OnMouseWheel = BCMaterialEdit1MouseWheel
+      OnMouseWheelDown = BCMaterialEdit1MouseWheelDown
+      OnMouseWheelUp = BCMaterialEdit1MouseWheelUp
+      OnResize = BCMaterialEdit1Resize
+      Edit.Left = 5
+      Edit.Height = 72
+      Edit.Top = 26
+      Edit.Width = 197
+      Edit.Align = alClient
+      Edit.AutoSize = False
+      Edit.BorderSpacing.Left = 4
+      Edit.BorderSpacing.Right = 4
+      Edit.BorderSpacing.Bottom = 4
+      Edit.BorderStyle = bsNone
+      Edit.Color = clWhite
+      Edit.DoubleBuffered = False
+      Edit.ParentDoubleBuffered = False
+      Edit.TabOrder = 0
+      Edit.Text = 'Text'
+      Edit.OnChange = BCMaterialEdit1Change
+      Edit.OnClick = BCMaterialEdit1Click
+      Edit.OnDblClick = BCMaterialEdit1DbClick
+      Edit.OnEditingDone = BCMaterialEdit1EditingDone
+      Edit.OnEnter = BCMaterialEdit1Enter
+      Edit.OnExit = BCMaterialEdit1Exit
+      Edit.OnKeyDown = BCMaterialEdit1KeyDown
+      Edit.OnKeyPress = BCMaterialEdit1KeyPress
+      Edit.OnKeyUp = BCMaterialEdit1KeyUp
+      Edit.OnMouseDown = BCMaterialEdit1MouseDown
+      Edit.OnMouseEnter = BCMaterialEdit1MouseEnter
+      Edit.OnMouseLeave = BCMaterialEdit1MouseLeave
+      Edit.OnMouseMove = BCMaterialEdit1MouseMove
+      Edit.OnMouseUp = BCMaterialEdit1MouseUp
+      Edit.OnMouseWheel = BCMaterialEdit1MouseWheel
+      Edit.OnMouseWheelDown = BCMaterialEdit1MouseWheelDown
+      Edit.OnMouseWheelUp = BCMaterialEdit1MouseWheelUp
+      OnDbClick = BCMaterialEdit1DbClick
+    end
+  end
+  object Button3: TButton
+    AnchorSideLeft.Control = AnchorsCheckGroup
+    AnchorSideTop.Control = AnchorsCheckGroup
+    AnchorSideTop.Side = asrBottom
+    AnchorSideRight.Control = AnchorsCheckGroup
+    AnchorSideRight.Side = asrBottom
+    Left = 210
+    Height = 48
+    Top = 346
+    Width = 136
+    Anchors = [akTop, akLeft, akRight]
+    BorderSpacing.Top = 5
+    Caption = 'Autosize'
+    Constraints.MaxHeight = 48
+    Constraints.MinHeight = 48
+    TabOrder = 6
+    OnClick = Button3Click
+  end
+  object Button4: TButton
+    AnchorSideLeft.Control = Button3
+    AnchorSideTop.Control = Button3
+    AnchorSideTop.Side = asrBottom
+    AnchorSideRight.Control = Button3
+    AnchorSideRight.Side = asrBottom
+    Left = 210
+    Height = 48
+    Top = 399
+    Width = 136
+    Anchors = [akTop, akLeft, akRight]
+    BorderSpacing.Top = 5
+    Caption = 'Enabled'
+    Constraints.MaxHeight = 48
+    Constraints.MinHeight = 48
+    TabOrder = 7
+    OnClick = Button4Click
+  end
+  object Button5: TButton
+    AnchorSideLeft.Control = Button4
+    AnchorSideTop.Control = Button4
+    AnchorSideTop.Side = asrBottom
+    AnchorSideRight.Control = Button4
+    AnchorSideRight.Side = asrBottom
+    Left = 210
+    Height = 48
+    Top = 452
+    Width = 136
+    Anchors = [akTop, akLeft, akRight]
+    BorderSpacing.Top = 5
+    Caption = 'Visible'
+    Constraints.MaxHeight = 48
+    Constraints.MinHeight = 48
+    TabOrder = 8
+    OnClick = Button5Click
+  end
+  object ColorButton1: TColorButton
+    AnchorSideLeft.Control = Button5
+    AnchorSideTop.Control = Button5
+    AnchorSideTop.Side = asrBottom
+    AnchorSideRight.Control = Button5
+    AnchorSideRight.Side = asrBottom
+    Left = 210
+    Height = 48
+    Top = 505
+    Width = 136
+    Anchors = [akTop, akLeft, akRight]
+    BorderSpacing.Top = 5
+    BorderWidth = 2
+    ButtonColorSize = 16
+    ButtonColor = clWhite
+    ColorDialog = ColorDialog1
+    Constraints.MaxHeight = 48
+    Constraints.MinHeight = 48
+    OnColorChanged = ColorButton1ColorChanged
+  end
+  object ColorDialog1: TColorDialog
+    Color = clBlack
+    CustomColors.Strings = (
+      'ColorA=000000'
+      'ColorB=000080'
+      'ColorC=008000'
+      'ColorD=008080'
+      'ColorE=800000'
+      'ColorF=800080'
+      'ColorG=808000'
+      'ColorH=808080'
+      'ColorI=C0C0C0'
+      'ColorJ=0000FF'
+      'ColorK=00FF00'
+      'ColorL=00FFFF'
+      'ColorM=FF0000'
+      'ColorN=FF00FF'
+      'ColorO=FFFF00'
+      'ColorP=FFFFFF'
+      'ColorQ=C0DCC0'
+      'ColorR=F0CAA6'
+      'ColorS=F0FBFF'
+      'ColorT=A4A0A0'
+    )
+    Left = 400
+    Top = 248
+  end
+end

+ 270 - 0
test/test_material_edit/bcmaterialedit_test/bcmaterialedit_form.pas

@@ -0,0 +1,270 @@
+unit bcmaterialedit_form;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
+  DividerBevel, BCMaterialEdit, Types;
+
+type
+
+  { TForm1 }
+
+  TForm1 = class(TForm)
+    BCMaterialEdit1: TBCMaterialEdit;
+    Button1: TButton;
+    AnchorsCheckGroup: TCheckGroup;
+    Button2: TButton;
+    Button3: TButton;
+    Button4: TButton;
+    Button5: TButton;
+    ColorButton1: TColorButton;
+    ColorDialog1: TColorDialog;
+    DividerBevel1: TDividerBevel;
+    EventsCheckGroup: TCheckGroup;
+    Label1: TMemo;
+    Panel1: TPanel;
+    procedure BCMaterialEdit1Change(Sender: TObject);
+    procedure BCMaterialEdit1ChangeBounds(Sender: TObject);
+    procedure BCMaterialEdit1Click(Sender: TObject);
+    procedure BCMaterialEdit1DbClick(Sender: TObject);
+    procedure BCMaterialEdit1EditingDone(Sender: TObject);
+    procedure BCMaterialEdit1Enter(Sender: TObject);
+    procedure BCMaterialEdit1Exit(Sender: TObject);
+    procedure BCMaterialEdit1KeyDown(Sender: TObject; var Key: Word;
+      Shift: TShiftState);
+    procedure BCMaterialEdit1KeyPress(Sender: TObject; var Key: char);
+    procedure BCMaterialEdit1KeyUp(Sender: TObject; var Key: Word;
+      Shift: TShiftState);
+    procedure BCMaterialEdit1MouseDown(Sender: TObject; Button: TMouseButton;
+      Shift: TShiftState; X, Y: Integer);
+    procedure BCMaterialEdit1MouseEnter(Sender: TObject);
+    procedure BCMaterialEdit1MouseLeave(Sender: TObject);
+    procedure BCMaterialEdit1MouseMove(Sender: TObject; Shift: TShiftState; X,
+      Y: Integer);
+    procedure BCMaterialEdit1MouseUp(Sender: TObject; Button: TMouseButton;
+      Shift: TShiftState; X, Y: Integer);
+    procedure BCMaterialEdit1MouseWheel(Sender: TObject; Shift: TShiftState;
+      WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
+    procedure BCMaterialEdit1MouseWheelDown(Sender: TObject;
+      Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
+    procedure BCMaterialEdit1MouseWheelUp(Sender: TObject; Shift: TShiftState;
+      MousePos: TPoint; var Handled: Boolean);
+    procedure BCMaterialEdit1Resize(Sender: TObject);
+    procedure Button1Click(Sender: TObject);
+    procedure AnchorsCheckGroupItemClick(Sender: TObject; Index: integer);
+    procedure Button2Click(Sender: TObject);
+    procedure Button3Click(Sender: TObject);
+    procedure Button4Click(Sender: TObject);
+    procedure Button5Click(Sender: TObject);
+    procedure ColorButton1ColorChanged(Sender: TObject);
+    procedure FormCreate(Sender: TObject);
+  private
+
+  public
+
+  end;
+
+var
+  Form1: TForm1;
+
+implementation
+
+{$R *.lfm}
+
+{ TForm1 }
+
+procedure TForm1.BCMaterialEdit1Change(Sender: TObject);
+begin
+  if EventsCheckGroup.Checked[0] then Label1.Append('OnChange');
+end;
+
+procedure TForm1.BCMaterialEdit1ChangeBounds(Sender: TObject);
+begin
+  if EventsCheckGroup.Checked[1] then Label1.Append('OnChangeBounds');
+end;
+
+procedure TForm1.BCMaterialEdit1Click(Sender: TObject);
+begin
+  if EventsCheckGroup.Checked[2] then Label1.Append('OnClick');
+end;
+
+procedure TForm1.BCMaterialEdit1DbClick(Sender: TObject);
+begin
+  if EventsCheckGroup.Checked[3] then Label1.Append('OnDbClick');
+end;
+
+procedure TForm1.BCMaterialEdit1EditingDone(Sender: TObject);
+begin
+  if EventsCheckGroup.Checked[4] then Label1.Append('OnEditingDone');
+end;
+
+procedure TForm1.BCMaterialEdit1Enter(Sender: TObject);
+begin
+  if EventsCheckGroup.Checked[5] then Label1.Append('OnEnter');
+end;
+
+procedure TForm1.BCMaterialEdit1Exit(Sender: TObject);
+begin
+  if EventsCheckGroup.Checked[6] then Label1.Append('OnExit');
+end;
+
+procedure TForm1.BCMaterialEdit1KeyDown(Sender: TObject; var Key: Word;
+  Shift: TShiftState);
+begin
+  if EventsCheckGroup.Checked[7] then Label1.Append('OnKeyDown');
+end;
+
+procedure TForm1.BCMaterialEdit1KeyPress(Sender: TObject; var Key: char);
+begin
+  if EventsCheckGroup.Checked[8] then Label1.Append('OnKeyPress');
+end;
+
+procedure TForm1.BCMaterialEdit1KeyUp(Sender: TObject; var Key: Word;
+  Shift: TShiftState);
+begin
+  if EventsCheckGroup.Checked[9] then Label1.Append('OnKeyUp');
+end;
+
+procedure TForm1.BCMaterialEdit1MouseDown(Sender: TObject;
+  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
+begin
+  if EventsCheckGroup.Checked[10] then Label1.Append('OnMouseDown');
+end;
+
+procedure TForm1.BCMaterialEdit1MouseEnter(Sender: TObject);
+begin
+  if EventsCheckGroup.Checked[11] then Label1.Append('OnMouseEnter');
+end;
+
+procedure TForm1.BCMaterialEdit1MouseLeave(Sender: TObject);
+begin
+  if EventsCheckGroup.Checked[12] then Label1.Append('OnMouseLeave');
+end;
+
+procedure TForm1.BCMaterialEdit1MouseMove(Sender: TObject; Shift: TShiftState;
+  X, Y: Integer);
+begin
+  if EventsCheckGroup.Checked[13] then Label1.Append('OnMouseMove');
+end;
+
+procedure TForm1.BCMaterialEdit1MouseUp(Sender: TObject; Button: TMouseButton;
+  Shift: TShiftState; X, Y: Integer);
+begin
+  if EventsCheckGroup.Checked[14] then Label1.Append('OnMouseUp');
+end;
+
+procedure TForm1.BCMaterialEdit1MouseWheel(Sender: TObject; Shift: TShiftState;
+  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
+begin
+  if EventsCheckGroup.Checked[15] then Label1.Append('OnMouseWheel');
+end;
+
+procedure TForm1.BCMaterialEdit1MouseWheelDown(Sender: TObject;
+  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
+begin
+  if EventsCheckGroup.Checked[16] then Label1.Append('OnMouseWheelDown');
+end;
+
+procedure TForm1.BCMaterialEdit1MouseWheelUp(Sender: TObject;
+  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
+begin
+  if EventsCheckGroup.Checked[17] then Label1.Append('OnMouseWheelUp');
+end;
+
+procedure TForm1.BCMaterialEdit1Resize(Sender: TObject);
+begin
+  if EventsCheckGroup.Checked[18] then Label1.Append('OnResize');
+end;
+
+procedure TForm1.Button1Click(Sender: TObject);
+begin
+  if Panel1.Color = clBlack then
+  begin
+    Panel1.Color := clWhite;
+    BCMaterialEdit1.Color := clWhite;
+    BCMaterialEdit1.Font.Color := clBlack;
+    BCMaterialEdit1.Edit.Color := clWhite;
+    BCMaterialEdit1.Edit.Font.Color := clBlack;
+  end else
+  begin
+    Panel1.Color := clBlack;
+    BCMaterialEdit1.Color := clBlack;
+    {$IFDEF LCLGTK2}
+    BCMaterialEdit1.Font.Color := clBlack;
+    BCMaterialEdit1.Edit.Color := clWhite;
+    BCMaterialEdit1.Edit.Font.Color := clBlack;
+    {$ELSE}
+    BCMaterialEdit1.Font.Color := clWhite;
+    BCMaterialEdit1.Edit.Color := clBlack;
+    BCMaterialEdit1.Edit.Font.Color := clWhite;
+    {$ENDIF}
+  end;
+end;
+
+procedure TForm1.AnchorsCheckGroupItemClick(Sender: TObject; Index: integer);
+var
+  NewAnchors: TAnchors;
+begin
+  NewAnchors := [];
+  if AnchorsCheckGroup.Checked[0] then Include(NewAnchors, akTop);
+  if AnchorsCheckGroup.Checked[1] then Include(NewAnchors, akLeft);
+  if AnchorsCheckGroup.Checked[2] then Include(NewAnchors, akRight);
+  if AnchorsCheckGroup.Checked[3] then Include(NewAnchors, akBottom);
+  BCMaterialEdit1.Anchors := NewAnchors;
+end;
+
+procedure TForm1.Button2Click(Sender: TObject);
+begin
+  Label1.Clear;
+end;
+
+procedure TForm1.Button3Click(Sender: TObject);
+begin
+  if Assigned(Sender) then
+    BCMaterialEdit1.AutoSize := not BCMaterialEdit1.AutoSize;
+
+  case BCMaterialEdit1.AutoSize of
+    True:  Button3.Caption := 'AutoSize is TRUE';
+    False: Button3.Caption := 'AutoSize is FALSE';
+  end;
+end;
+
+procedure TForm1.Button4Click(Sender: TObject);
+begin
+  if Assigned(Sender) then
+    BCMaterialEdit1.Enabled := not BCMaterialEdit1.Enabled;
+
+  case BCMaterialEdit1.Enabled of
+    True:  Button4.Caption := 'Enabled is TRUE';
+    False: Button4.Caption := 'Enabled is FALSE';
+  end;
+end;
+
+procedure TForm1.Button5Click(Sender: TObject);
+begin
+  if Assigned(Sender) then
+    BCMaterialEdit1.Visible := not BCMaterialEdit1.Visible;
+
+  case BCMaterialEdit1.Visible of
+    True:  Button5.Caption := 'Visible is TRUE';
+    False: Button5.Caption := 'Visible is FALSE';
+  end;
+end;
+
+procedure TForm1.ColorButton1ColorChanged(Sender: TObject);
+begin
+  BCMaterialEdit1.Color := ColorDialog1.Color;
+end;
+
+procedure TForm1.FormCreate(Sender: TObject);
+begin
+  Button3Click(nil);
+  Button4Click(nil);
+  Button5Click(nil);
+end;
+
+end.
+

BIN
test/test_material_edit/bcmaterialedit_test/bcmaterialedit_test.ico


+ 101 - 0
test/test_material_edit/bcmaterialedit_test/bcmaterialedit_test.lpi

@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CONFIG>
+  <ProjectOptions>
+    <Version Value="12"/>
+    <PathDelim Value="\"/>
+    <General>
+      <Flags>
+        <SaveClosedFiles Value="False"/>
+        <SaveJumpHistory Value="False"/>
+        <SaveFoldState Value="False"/>
+        <CompatibilityMode Value="True"/>
+      </Flags>
+      <Title Value="bcmaterialedit_test"/>
+      <Scaled Value="True"/>
+      <ResourceType Value="res"/>
+      <UseXPManifest Value="True"/>
+      <XPManifest>
+        <DpiAware Value="True"/>
+      </XPManifest>
+      <Icon Value="0"/>
+    </General>
+    <BuildModes Count="1" Active="Default">
+      <Item1 Name="Default" Default="True"/>
+    </BuildModes>
+    <PublishOptions>
+      <Version Value="2"/>
+      <UseFileFilters Value="True"/>
+    </PublishOptions>
+    <RunParams>
+      <FormatVersion Value="2"/>
+    </RunParams>
+    <RequiredPackages Count="4">
+      <Item1>
+        <PackageName Value="LazControls"/>
+      </Item1>
+      <Item2>
+        <PackageName Value="LazControlDsgn"/>
+      </Item2>
+      <Item3>
+        <PackageName Value="bgracontrols"/>
+      </Item3>
+      <Item4>
+        <PackageName Value="LCL"/>
+      </Item4>
+    </RequiredPackages>
+    <Units Count="2">
+      <Unit0>
+        <Filename Value="bcmaterialedit_test.lpr"/>
+        <IsPartOfProject Value="True"/>
+        <UsageCount Value="20"/>
+      </Unit0>
+      <Unit1>
+        <Filename Value="bcmaterialedit_form.pas"/>
+        <IsPartOfProject Value="True"/>
+        <ComponentName Value="Form1"/>
+        <HasResources Value="True"/>
+        <ResourceBaseClass Value="Form"/>
+        <IsVisibleTab Value="True"/>
+        <TopLine Value="170"/>
+        <CursorPos X="72" Y="180"/>
+        <UsageCount Value="20"/>
+        <Loaded Value="True"/>
+        <LoadedDesigner Value="True"/>
+      </Unit1>
+    </Units>
+  </ProjectOptions>
+  <CompilerOptions>
+    <Version Value="11"/>
+    <PathDelim Value="\"/>
+    <Target>
+      <Filename Value="bcmaterialedit_test"/>
+    </Target>
+    <SearchPaths>
+      <IncludeFiles Value="$(ProjOutDir)"/>
+      <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
+    </SearchPaths>
+    <Linking>
+      <Debugging>
+        <DebugInfoType Value="dsDwarf2Set"/>
+      </Debugging>
+      <Options>
+        <Win32>
+          <GraphicApplication Value="True"/>
+        </Win32>
+      </Options>
+    </Linking>
+  </CompilerOptions>
+  <Debugging>
+    <Exceptions Count="3">
+      <Item1>
+        <Name Value="EAbort"/>
+      </Item1>
+      <Item2>
+        <Name Value="ECodetoolError"/>
+      </Item2>
+      <Item3>
+        <Name Value="EFOpenError"/>
+      </Item3>
+    </Exceptions>
+  </Debugging>
+</CONFIG>

+ 22 - 0
test/test_material_edit/bcmaterialedit_test/bcmaterialedit_test.lpr

@@ -0,0 +1,22 @@
+program bcmaterialedit_test;
+
+{$mode objfpc}{$H+}
+
+uses
+  {$IFDEF UNIX}{$IFDEF UseCThreads}
+  cthreads,
+  {$ENDIF}{$ENDIF}
+  Interfaces, // this includes the LCL widgetset
+  Forms, lazcontrols, bcmaterialedit_form
+  { you can add units after this };
+
+{$R *.res}
+
+begin
+  RequireDerivedFormResource:=True;
+  Application.Scaled:=True;
+  Application.Initialize;
+  Application.CreateForm(TForm1, Form1);
+  Application.Run;
+end.
+