我需要使用Delphi FMX做一件简单的事情,可以通过VCl轻松完成:控制画布上的一个矩形,右下角点跟随鼠标(选择矩形)。我写了这样的代码:
interface type TfrmSettings = class(TForm) //... sbDetectors: TScrollBox; XStart, YStart: Single; bMouseDrawing: Boolean; FMouseBrush: TBrush; //... public { Public declarations } end; var frmSettings: TfrmSettings; implementation {$R *.fmx} procedure TfrmSettings.FormCreate(Sender: TObject); begin FMouseBrush := TBrush.Create(TBrushKind.Solid, $FFD1DDA1); // $FF505050 { .$FFD1DDA1 } ); end; procedure TfrmSettings.FormDestroy(Sender: TObject); begin FMouseBrush.Free; end; procedure TfrmSettings.sbDetectorsMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin XStart := X; YStart := Y; bMouseDrawing := True; sbDetectors.Canvas.Fill.Assign(FMouseBrush); end; procedure TfrmSettings.sbDetectorsMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin if bMouseDrawing then begin sbDetectors.Canvas.BeginScene; sbDetectors.Canvas.DrawRect(rectF(X, Y, XStart, YStart), 0, 0, [], 1); sbDetectors.Canvas.EndScene; end; end; procedure TfrmSettings.sbDetectorsMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin bMouseDrawing := False; end;
此代码无法正常运行
怎么做?