Advertisement
jpfassis

ComboBox3 - Delphi

Jan 3rd, 2021
1,737
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 5.62 KB | None | 0 0
  1. unit View.Components.ComboBox003;
  2.  
  3. interface
  4.  
  5. uses
  6.   System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  7.   FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Layouts,
  8.   View.Components.Interfaces, View.Components.Attributes.Interfaces,
  9.   View.Components.Attributes, FMX.Edit, FMX.ComboEdit, FMX.Objects,
  10.   FMX.Controls.Presentation, FMX.StdCtrls, View.Styles.States, FMX.Effects,
  11.   FMX.Filter.Effects, View.Styles, View.Services.Utils;
  12.  
  13. type
  14.   TComponentComboBox003 = class(TForm, iComponents<TComponentComboBox003>)
  15.     Layout1: TLayout;
  16.     Layout2: TLayout;
  17.     Layout3: TLayout;
  18.     Layout4: TLayout;
  19.     Layout5: TLayout;
  20.     Layout6: TLayout;
  21.     Label1: TLabel;
  22.     Layout7: TLayout;
  23.     Rectangle1: TRectangle;
  24.     ComboEdit1: TComboEdit;
  25.     Rectangle2: TRectangle;
  26.     Rectangle3: TRectangle;
  27.     Image1: TImage;
  28.     Image2: TImage;
  29.     SpeedButton1: TSpeedButton;
  30.     SpeedButton2: TSpeedButton;
  31.     FillRGBEffect1: TFillRGBEffect;
  32.     FillRGBEffect2: TFillRGBEffect;
  33.     BlurEffect1: TBlurEffect;
  34.     procedure FormCreate(Sender: TObject);
  35.     procedure SpeedButton2MouseEnter(Sender: TObject);
  36.     procedure SpeedButton1MouseEnter(Sender: TObject);
  37.     procedure SpeedButton1MouseLeave(Sender: TObject);
  38.     procedure SpeedButton2MouseLeave(Sender: TObject);
  39.     procedure ComboEdit1Enter(Sender: TObject);
  40.     procedure ComboEdit1Exit(Sender: TObject);
  41.   private
  42.     { Private declarations }
  43.     FAttributes : iComponentAttributes<TComponentComboBox003>;
  44.     FFieldValue : ^String; //ponteiro endereço de memória
  45.     FContainer : TFMXObject;
  46.     FRequired : Boolean;
  47.     FItens : TStringList;
  48.   public
  49.     { Public declarations }
  50.     function Component : TFMXObject;
  51.     function Attributes : iComponentAttributes<TComponentComboBox003>;
  52.     function LoadAttributes (aValue : String) : TComponentComboBox003;
  53.     function FieldValue(var aFieldValue : String) : TComponentComboBox003;
  54.     function Container (aValue : TFMXObject) : iComponents<TComponentComboBox003>;
  55.     function This : TComponentComboBox003;
  56.     function Required (aValue : Boolean) : TComponentComboBox003;
  57.     function AddItem (aName : String) : TComponentComboBox003;
  58.   end;
  59.  
  60. var
  61.   ComponentComboBox003: TComponentComboBox003;
  62.  
  63. implementation
  64.  
  65. {$R *.fmx}
  66.  
  67. function TComponentComboBox003.AddItem(aName: String): TComponentComboBox003;
  68. begin
  69.   Result := Self;
  70.  
  71.   if not Assigned(FItens) then
  72.     FItens := TStringList.Create;
  73.  
  74.   FItens.Add(aName);
  75.  
  76. end;
  77.  
  78. function TComponentComboBox003.Attributes: iComponentAttributes<TComponentComboBox003>;
  79. begin
  80.   Result := FAttributes;
  81. end;
  82.  
  83. procedure TComponentComboBox003.ComboEdit1Enter(Sender: TObject);
  84. begin
  85.   BlurEffect1.Enabled:=True;
  86.   Rectangle1.Stroke.Color := PRIMARY;
  87.   Rectangle1.Stroke.Thickness:=2;
  88. end;
  89.  
  90. procedure TComponentComboBox003.ComboEdit1Exit(Sender: TObject);
  91. begin
  92.   BlurEffect1.Enabled:=False;
  93.   Rectangle1.Stroke.Color := TAlphaColors.Lightgray;
  94.   Rectangle1.Stroke.Thickness:=1;
  95. end;
  96.  
  97. function TComponentComboBox003.Component: TFMXObject;
  98. var
  99. i : integer;
  100. begin
  101.   Result := Layout1;
  102.   if Assigned(FContainer) then FContainer.AddObject(Layout1);
  103.   Label1.FontColor:=FAttributes.FontColor;
  104.   Label1.Text := FAttributes.Title;
  105.   Rectangle1.Fill.Color := FAttributes.BackGround;
  106.   if FRequired then
  107.     Rectangle1.Fill.Color := FAttributes.DestBackGround;
  108.  
  109.   BlurEffect1.Enabled:=True;
  110.  
  111.   if Assigned(FItens) then
  112.   begin
  113.     for i := 0 to Pred(FItens.Count) do
  114.      ComboEdit1.Items.Add( FItens[i] );
  115.  
  116.     FItens.Free;
  117.   end;
  118.  
  119.   Rectangle2.Fill.Color := FAttributes.BackGround;
  120.   TServiceUtils.ResourceImage(FAttributes.Image, Image1);
  121.   FillRGBEffect1.Color:= FAttributes.DestBackGround;
  122.  
  123.   Rectangle3.Fill.Color := FAttributes.BackGround;
  124.   FillRGBEffect2.Color:= FAttributes.DestBackGround;
  125.   TServiceUtils.ResourceImage(FAttributes.Image2, Image2);
  126.  
  127.  
  128.   Layout1.Position.Y:=1000;
  129.   ComboEdit1.TabOrder := FAttributes.TabOrder;
  130.  
  131.   ComboEdit1.Caret.Color := FAttributes.FontColor;
  132.   ComboEdit1.FontColor := FAttributes.FontColor;
  133.   ComboEdit1.Font.Size := FAttributes.FontSize;
  134.  
  135.   Layout1.Align := FAttributes.Align;
  136.  
  137. end;
  138.  
  139. function TComponentComboBox003.Container(
  140.   aValue: TFMXObject): iComponents<TComponentComboBox003>;
  141. begin
  142.   Result := Self;
  143.   FContainer := aValue;
  144. end;
  145.  
  146. function TComponentComboBox003.FieldValue(
  147.   var aFieldValue: String): TComponentComboBox003;
  148. begin
  149.   Result := Self;
  150.   FFieldValue := @aFieldValue;
  151. end;
  152.  
  153. procedure TComponentComboBox003.FormCreate(Sender: TObject);
  154. begin
  155.   FAttributes := TComponentAttributes<TComponentComboBox003>.New(Self);
  156. end;
  157.  
  158. function TComponentComboBox003.LoadAttributes(
  159.   aValue: String): TComponentComboBox003;
  160. begin
  161.   Result := Self;
  162.   FAttributes := StylesStates.GetStyle(aValue) as iComponentAttributes<TComponentComboBox003>;
  163.   FAttributes.Parent(Self);
  164. end;
  165.  
  166. function TComponentComboBox003.Required(aValue: Boolean): TComponentComboBox003;
  167. begin
  168.   Result := Self;
  169.   FRequired := aValue;
  170. end;
  171.  
  172. procedure TComponentComboBox003.SpeedButton1MouseEnter(Sender: TObject);
  173. begin
  174.   FillRGBEffect1.Color := LIGHT;
  175. end;
  176.  
  177. procedure TComponentComboBox003.SpeedButton1MouseLeave(Sender: TObject);
  178. begin
  179.   FillRGBEffect1.Color := FAttributes.DestBackGround;
  180. end;
  181.  
  182. procedure TComponentComboBox003.SpeedButton2MouseEnter(Sender: TObject);
  183. begin
  184.   FillRGBEffect2.Color := LIGHT;
  185. end;
  186.  
  187. procedure TComponentComboBox003.SpeedButton2MouseLeave(Sender: TObject);
  188. begin
  189.   FillRGBEffect2.Color := FAttributes.DestBackGround;
  190. end;
  191.  
  192. function TComponentComboBox003.This: TComponentComboBox003;
  193. begin
  194.   Result := Self;
  195. end;
  196.  
  197. end.
  198.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement