AboutForm.pas 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. unit AboutForm;
  2. interface
  3. uses
  4. System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  5. FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Objects, FMX.Ani, FMX.Layouts,
  6. FMX.Filter.Effects, FMX.Effects, FMX.StdCtrls, FMX.Controls.Presentation, FMX.Graphics,
  7. Imaging,
  8. DemoUtils;
  9. type
  10. TFormAbout = class(TForm)
  11. ImgLogo: TImage;
  12. PanelBack: TPanel;
  13. BtnOk: TButton;
  14. LabVersion: TLabel;
  15. LabWebsite: TLabel;
  16. LabImaging: TLabel;
  17. FlowLayout: TFlowLayout;
  18. LabGitHub: TLabel;
  19. Effect: TPixelateEffect;
  20. EffectAnimation: TFloatAnimation;
  21. procedure FormCreate(Sender: TObject);
  22. procedure BtnOkClick(Sender: TObject);
  23. procedure EffectAnimationFinish(Sender: TObject);
  24. private
  25. { Private declarations }
  26. public
  27. { Public declarations }
  28. end;
  29. var
  30. FormAbout: TFormAbout;
  31. implementation
  32. uses
  33. ImagingClasses,
  34. ImagingFmx;
  35. {$R *.fmx}
  36. procedure LoadFmxBitmapFromResourceWithImaging(const ResName: string; Bitmap: TBitmap);
  37. var
  38. ResourceStream: TResourceStream;
  39. Image: TSingleImage;
  40. begin
  41. // Could read from stream directly to FMX Bitmap but let's also show
  42. // reading from resources to TSingleImage.
  43. ResourceStream := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
  44. Image := TSingleImage.Create;
  45. try
  46. Image.LoadFromStream(ResourceStream);
  47. ImagingFmx.ConvertImageToFmxBitmap(Image, Bitmap);
  48. finally
  49. ResourceStream.Free;
  50. Image.Free;
  51. end;
  52. end;
  53. procedure TFormAbout.EffectAnimationFinish(Sender: TObject);
  54. begin
  55. Effect.Enabled := False;
  56. Close;
  57. end;
  58. procedure TFormAbout.FormCreate(Sender: TObject);
  59. begin
  60. LoadFmxBitmapFromResourceWithImaging('LOGO', ImgLogo.Bitmap);
  61. LabVersion.Text := LabVersion.Text + GetVersionStr;
  62. end;
  63. procedure TFormAbout.BtnOkClick(Sender: TObject);
  64. begin
  65. if Effect.Enabled then
  66. Exit;
  67. Effect.Enabled := True;
  68. EffectAnimation.Start;
  69. end;
  70. end.