Changeset 31 for trunk/Forms/UFormMain.pas
- Timestamp:
- Jan 4, 2017, 11:49:56 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Forms/UFormMain.pas
r30 r31 11 11 type 12 12 13 TImageTool = (itMoveView, itPen); 14 13 15 { TFormMain } 14 16 15 17 TFormMain = class(TForm) 18 ColorButton1: TColorButton; 16 19 LastOpenedList1: TLastOpenedList; 17 20 MainMenu1: TMainMenu; … … 26 29 MenuItem19: TMenuItem; 27 30 MenuItem20: TMenuItem; 31 MenuItem21: TMenuItem; 32 MenuItem22: TMenuItem; 33 MenuItem23: TMenuItem; 28 34 MenuItemRecentFiles: TMenuItem; 29 35 MenuItem15: TMenuItem; … … 42 48 ToolBar1: TToolBar; 43 49 ToolButton1: TToolButton; 50 ToolButton2: TToolButton; 51 ToolButton3: TToolButton; 44 52 procedure FormActivate(Sender: TObject); 45 53 procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); … … 66 74 StartMousePoint: TPoint; 67 75 StartViewPoint: TPoint; 68 Mo veActive: Boolean;76 MouseButtonDown: Boolean; 69 77 MousePos: TPoint; 70 78 Activated: Boolean; 71 79 procedure OpenRecentClick(Sender: TObject); 72 80 public 81 ImageTool: TImageTool; 73 82 procedure EraseBackground(DC: HDC); override; 74 83 procedure UpdateStatusBar; … … 82 91 83 92 uses 84 UCore ;93 UCore, UFGraphics; 85 94 86 95 {$R *.lfm} … … 184 193 procedure TFormMain.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton; 185 194 Shift: TShiftState; X, Y: Integer); 195 var 196 P: TPoint; 186 197 begin 187 198 if Button = mbLeft then begin 188 StartMousePoint := Point(X, Y); 189 StartViewPoint := Core.Project.View.SrcRect.TopLeft; 190 MoveActive := True; 199 if ImageTool = itMoveView then begin 200 StartMousePoint := Point(X, Y); 201 StartViewPoint := Core.Project.View.SrcRect.TopLeft; 202 end else 203 if ImageTool = itPen then begin 204 P := Core.Project.View.DestToSrcPos(Point(X, Y)); 205 if (P.X >= 0) and (P.X < Core.Project.Bitmap.Size.X) and (P.Y >= 0) and (P.Y < Core.Project.Bitmap.Size.Y) then 206 Core.Project.Bitmap.Pixels[P.X, P.Y] := TFColor.Create(Core.Project.Bitmap.ColorFormat, ColorButton1.ButtonColor); 207 Redraw; 208 end; 209 MouseButtonDown := True; 191 210 end; 192 211 end; … … 194 213 procedure TFormMain.PaintBox1MouseLeave(Sender: TObject); 195 214 begin 196 Mo veActive:= False;215 MouseButtonDown := False; 197 216 end; 198 217 199 218 procedure TFormMain.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X, 200 219 Y: Integer); 220 var 221 P: TPoint; 201 222 begin 202 223 MousePos := Point(X, Y); 203 if Assigned(Core.Project) then begin 204 if MoveActive then 205 with Core.Project do begin 224 if MouseButtonDown then 225 if Assigned(Core.Project) then 226 with Core.Project do begin 227 if Imagetool = itMoveView then begin 206 228 View.SrcRect := Bounds(Trunc(StartViewPoint.X + (StartMousePoint.X - X) / View.Zoom), 207 229 Trunc(StartViewPoint.Y + (StartMousePoint.Y - Y) / View.Zoom), … … 209 231 View.SrcRect.Bottom - View.SrcRect.Top); 210 232 Redraw; 233 end else 234 if ImageTool = itPen then begin 235 P := Core.Project.View.DestToSrcPos(Point(X, Y)); 236 if (P.X >= 0) and (P.X < Core.Project.Bitmap.Size.X) and (P.Y >= 0) and (P.Y < Core.Project.Bitmap.Size.Y) then 237 Core.Project.Bitmap.Pixels[P.X, P.Y] := TFColor.Create(Core.Project.Bitmap.ColorFormat, ColorButton1.ButtonColor); 238 Redraw; 211 239 end; 212 240 end; … … 217 245 Shift: TShiftState; X, Y: Integer); 218 246 begin 219 Mo veActive:= False;247 MouseButtonDown := False; 220 248 end; 221 249
Note:
See TracChangeset
for help on using the changeset viewer.