umain.pas 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. unit umain;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
  6. BCMDButton;
  7. type
  8. { TfrmMain }
  9. TfrmMain = class(TForm)
  10. Label1: TLabel;
  11. Label10: TLabel;
  12. Label2: TLabel;
  13. Label3: TLabel;
  14. Label5: TLabel;
  15. Label7: TLabel;
  16. Label9: TLabel;
  17. BCMDButton1: TBCMDButton;
  18. BCMDButton10: TBCMDButton;
  19. BCMDButton11: TBCMDButton;
  20. BCMDButton15: TBCMDButton;
  21. BCMDButton16: TBCMDButton;
  22. BCMDButton17: TBCMDButton;
  23. BCMDButton2: TBCMDButton;
  24. BCMDButton27: TBCMDButton;
  25. BCMDButton28: TBCMDButton;
  26. BCMDButton29: TBCMDButton;
  27. BCMDButton30: TBCMDButton;
  28. BCMDButton31: TBCMDButton;
  29. BCMDButton32: TBCMDButton;
  30. BCMDButton5: TBCMDButton;
  31. mdGetRadio: TBCMDButton;
  32. mdSelect: TBCMDButton;
  33. mdUnselect: TBCMDButton;
  34. mdInvert: TBCMDButton;
  35. BCMDButton33: TBCMDButton;
  36. BCMDButton34: TBCMDButton;
  37. BCMDButton35: TBCMDButton;
  38. mdAnimations: TBCMDButton;
  39. mdGet: TBCMDButton;
  40. BCMDButton9: TBCMDButton;
  41. Panel1: TPanel;
  42. Panel11: TPanel;
  43. Panel12: TPanel;
  44. Panel13: TPanel;
  45. Panel2: TPanel;
  46. Panel7: TPanel;
  47. Panel8: TPanel;
  48. Panel9: TPanel;
  49. procedure FormCreate(Sender: TObject);
  50. procedure MDButton1Click(Sender: TObject);
  51. procedure mdSelectClick(Sender: TObject);
  52. procedure mdUnselectClick(Sender: TObject);
  53. procedure mdInvertClick(Sender: TObject);
  54. procedure mdAnimationsClick(Sender: TObject);
  55. procedure mdGetRadioClick(Sender: TObject);
  56. procedure mdGetClick(Sender: TObject);
  57. private
  58. procedure EnableAnimations(Control: TControl);
  59. procedure DoubleBuffering(Control: TControl);
  60. public
  61. end;
  62. var
  63. frmMain: TfrmMain;
  64. implementation
  65. {$R *.lfm}
  66. { TfrmMain }
  67. procedure TfrmMain.mdSelectClick(Sender: TObject);
  68. begin
  69. BCMDButton33.SelectAll;
  70. end;
  71. procedure TfrmMain.MDButton1Click(Sender: TObject);
  72. begin
  73. ShowMessage('Hello World');
  74. end;
  75. procedure TfrmMain.FormCreate(Sender: TObject);
  76. begin
  77. {$ifdef windows}
  78. DoubleBuffering(Self);
  79. {$endif}
  80. end;
  81. procedure TfrmMain.mdUnselectClick(Sender: TObject);
  82. begin
  83. BCMDButton33.UnselectAll;
  84. end;
  85. procedure TfrmMain.mdInvertClick(Sender: TObject);
  86. begin
  87. BCMDButton33.InvertSelection;
  88. end;
  89. procedure TfrmMain.mdAnimationsClick(Sender: TObject);
  90. begin
  91. EnableAnimations(Self);
  92. // Refresh controls
  93. Invalidate;
  94. end;
  95. procedure TfrmMain.mdGetRadioClick(Sender: TObject);
  96. begin
  97. with BCMDButton27.GetSelected do
  98. begin
  99. ShowMessage(Text);
  100. Free;
  101. end;
  102. end;
  103. procedure TfrmMain.mdGetClick(Sender: TObject);
  104. begin
  105. with BCMDButton33.GetSelected do
  106. begin
  107. ShowMessage(Text);
  108. Free;
  109. end;
  110. end;
  111. procedure TfrmMain.EnableAnimations(Control: TControl);
  112. var
  113. i: integer;
  114. wincontrol: TWinControl;
  115. begin
  116. if Control is TBCMDButton then
  117. TBCMDButton(Control).Animation := mdAnimations.Checked;
  118. if Control is TWinControl then
  119. begin
  120. wincontrol := TWinControl(Control);
  121. if wincontrol.ControlCount > 0 then
  122. for i := 0 to wincontrol.ControlCount - 1 do
  123. EnableAnimations(wincontrol.Controls[i]);
  124. end;
  125. end;
  126. procedure TfrmMain.DoubleBuffering(Control: TControl);
  127. var
  128. i: integer;
  129. wincontrol: TWinControl;
  130. begin
  131. if Control is TWinControl then
  132. begin
  133. wincontrol := TWinControl(Control);
  134. wincontrol.DoubleBuffered := True;
  135. if wincontrol.ControlCount > 0 then
  136. for i := 0 to wincontrol.ControlCount - 1 do
  137. DoubleBuffering(wincontrol.Controls[i]);
  138. end;
  139. end;
  140. end.