6 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
7 FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Ani, FMX.Layouts, FMX.Gestures,
8 FMX.StdCtrls, FMX.Media, FMX.Objects, FMX.TabControl, FMX.Graphics, Unit2;
12 ToolbarHolder: TLayout;
14 ToolbarPopupAnimation: TFloatAnimation;
16 ToolbarApplyButton: TButton;
17 ToolbarCloseButton: TButton;
18 ToolbarAddButton: TButton;
19 TabControl1: TTabControl;
24 CameraComponent1: TCameraComponent;
29 SpeedButton1: TSpeedButton;
30 OpenDialog1: TOpenDialog;
32 procedure ToolbarCloseButtonClick(Sender: TObject);
33 procedure FormGesture(Sender: TObject;
34 const EventInfo: TGestureEventInfo; var Handled: Boolean);
35 procedure FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char;
37 procedure CameraComponent1SampleBufferReady(Sender: TObject;
39 procedure SpeedButton1Click(Sender: TObject);
40 procedure Button1Click(Sender: TObject);
41 procedure FormCreate(Sender: TObject);
42 procedure FormDestroy(Sender: TObject);
43 procedure Button3Click(Sender: TObject);
44 procedure Image1Paint(Sender: TObject; Canvas: TCanvas;
47 FGestureOrigin: TPointF;
48 FGestureInProgress: Boolean;
52 procedure ShowToolbar(AShow: Boolean);
64 procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
65 var KeyChar: Char; Shift: TShiftState);
67 if Key = vkEscape then
68 ShowToolbar(not ToolbarPopup.IsOpen);
71 procedure TForm1.Image1Paint(Sender: TObject; Canvas: TCanvas;
76 for i := 0 to obj.numRect-1 do
80 procedure TForm1.ToolbarCloseButtonClick(Sender: TObject);
82 Application.Terminate;
85 procedure TForm1.Button1Click(Sender: TObject);
87 Image1.Bitmap.Assign(buf1);
90 obj.color:=TAlphaColors.Red;
91 obj.BinaryGray(Image1.Bitmap,77,true);
92 obj.DetectArea(Image1.Bitmap);
96 procedure TForm1.Button3Click(Sender: TObject);
98 if OpenDialog1.Execute = true then
100 buf1.LoadFromFile(OpenDialog1.FileName);
101 Image1.Bitmap.Assign(buf1);
105 procedure TForm1.CameraComponent1SampleBufferReady(Sender: TObject;
110 if TabControl1.TabIndex = 0 then
114 CameraComponent1.SampleBufferToBitmap(bmp,true);
117 procedure TForm1.FormCreate(Sender: TObject);
119 obj:=TFourier.Create;
120 buf1:=TBitmap.Create;
121 buf2:=TBitmap.Create;
122 buf1.Assign(Image1.Bitmap);
125 procedure TForm1.FormDestroy(Sender: TObject);
132 procedure TForm1.FormGesture(Sender: TObject;
133 const EventInfo: TGestureEventInfo; var Handled: Boolean);
137 if EventInfo.GestureID = igiPan then
139 if (TInteractiveGestureFlag.gfBegin in EventInfo.Flags)
140 and ((Sender = ToolbarPopup)
141 or (EventInfo.Location.Y > (ClientHeight - 70))) then
143 FGestureOrigin := EventInfo.Location;
144 FGestureInProgress := True;
147 if FGestureInProgress and (TInteractiveGestureFlag.gfEnd in EventInfo.Flags) then
149 FGestureInProgress := False;
150 DX := EventInfo.Location.X - FGestureOrigin.X;
151 DY := EventInfo.Location.Y - FGestureOrigin.Y;
152 if (Abs(DY) > Abs(DX)) then
158 procedure TForm1.ShowToolbar(AShow: Boolean);
160 ToolbarPopup.Width := ClientWidth;
161 ToolbarPopup.PlacementRectangle.Rect := TRectF.Create(0, ClientHeight-ToolbarPopup.Height, ClientWidth-1, ClientHeight-1);
162 ToolbarPopupAnimation.StartValue := ToolbarPopup.Height;
163 ToolbarPopupAnimation.StopValue := 0;
165 ToolbarPopup.IsOpen := AShow;
168 procedure TForm1.SpeedButton1Click(Sender: TObject);
170 CameraComponent1.Active:=SpeedButton1.IsPressed;
171 if SpeedButton1.IsPressed = false then
172 if TabControl1.TabIndex = 0 then
173 buf2.Assign(Image2.Bitmap)
175 buf1.Assign(Image1.Bitmap);