GamerSK

Untitled

Jan 22nd, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.46 KB | None | 0 0
  1. unit Unit1;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8.   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  9.   ExtCtrls, Spin, ColorBox;
  10.  
  11. type
  12.  
  13.   { TForm1 }
  14.  
  15.   TForm1 = class(TForm)
  16.     btnClean: TButton;
  17.     bcolor: TColorButton;
  18.     Button1: TButton;
  19.     Button2: TButton;
  20.     Image1: TImage;
  21.     bsize: TSpinEdit;
  22.     procedure btnCleanClick(Sender: TObject);
  23.     procedure Button1Click(Sender: TObject);
  24.     procedure Button2Click(Sender: TObject);
  25.     procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
  26.       Shift: TShiftState; X, Y: Integer);
  27.     procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer
  28.       );
  29.   private
  30.     { private declarations }
  31.   public
  32.     { public declarations }
  33.   end;
  34.  
  35. var
  36.   Form1: TForm1;
  37.  
  38. implementation
  39.  
  40. {$R *.lfm}
  41.  
  42. { TForm1 }
  43.  
  44. procedure TForm1.btnCleanClick(Sender: TObject);
  45. begin
  46.   Image1.Canvas.Clear;
  47.   Image1.Canvas.Pen.Color:=clBlack;
  48.   Image1.Canvas.Brush.Color:=clWhite;
  49. end;
  50.  
  51. //Vytvoríme si plátno
  52. //Vytvoríme event: MouseDown a MouseMove pre plátno
  53. //Do eventu MouseDown "naprogramujeme" začiatok kreslenia
  54. //Do eventu MouseMove naprogramujeme samotné kreslenie a mazanie a ďalšie nastavenia
  55.  
  56. procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  57.   Shift: TShiftState; X, Y: Integer);
  58. begin
  59.   Image1.Canvas.MoveTo(X,Y); //Po kliknutí na plátno "kurzor" skočí na naše zvolené miesto X,Y
  60. end;
  61.  
  62. procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  63.   Y: Integer);
  64. begin
  65.   Image1.Canvas.Pen.Width:=bsize.Value; //Nastavenie veľkosti písma
  66.   Image1.Canvas.Pen.Color:=bcolor.Buttoncolor; //Nastavenie farby písma
  67.   if Shift = [ssLeft] then Image1.Canvas.LineTo(X,Y); //ak je ľavé tlačidlo na myši stisknuté tak sa začne kresliť
  68.   if Shift = [ssRight] then //ak je pravé tlačidlo na myši stisknuté tak sa začne mazať
  69.     begin
  70.       Image1.Canvas.Pen.Color:=clWhite; //Farba gumy. logicky biela. Ak máte pozadie inej farby tak nezadavajte bielu
  71.       Image1.Canvas.Ellipse(X+5,Y+5,X-5,Y-5); //Vytvorenie kruhu pomocou ktorého budeme mazať
  72.     end;
  73. end;
  74.  
  75. procedure TForm1.Button1Click(Sender: TObject);//Prvý spôsob polygonu
  76. begin
  77.   Image1.Canvas.Clear; //Vyčistí plátno
  78.   Image1.Canvas.Pen.Color:=clBlue; //Nastaví farbu pera na modrú
  79.   Image1.Canvas.Pen.Width:=5; //Nastaví hrúbku pera na 5
  80.   Image1.Canvas.Brush.Color:=clGreen; //Nastaví výplň objektu na zelenú
  81.   Image1.Canvas.Polygon([Point(Image1.Width div 2,0),Point(0,Image1.Height-1),Point(Image1.Width,Image1.Height-1)]);
  82.   Image1.Canvas.Pen.Color:=clBlack; //Resetovanie
  83.   Image1.Canvas.Brush.Color:=clWhite; //Resetovanie
  84.   Image1.Canvas.Pen.Width:=1; //Resetovanie
  85. end;
  86.  
  87. procedure TForm1.Button2Click(Sender: TObject);//Druhý spôsob polygonu
  88. var Bod: array of TPoint; //Definícia poľa
  89. begin
  90.   Image1.Canvas.Clear; //Vyčistí plátno
  91.   Image1.Canvas.Pen.Color:=clBlue; //Nastaví farbu pera na modrú
  92.   Image1.Canvas.Pen.Width:=5; //Nastaví hrúbku pera na 5
  93.   Image1.Canvas.Brush.Color:=clGreen; //Nastaví výplň objektu na zelenú
  94.   SetLength(bod, 3); //Nastavenie veľkosti poľa
  95.   bod[0]:=Point(Image1.Width div 2, 0);
  96.   bod[1]:=Point(0, Image1.Height-1);
  97.   bod[2]:=Point(Image1.Width, Image1.Height-1);
  98.   Image1.Canvas.Polygon(bod);
  99.   Image1.Canvas.Pen.Color:=clBlack; //Resetovanie
  100.   Image1.Canvas.Brush.Color:=clWhite; //Resetovanie
  101.   Image1.Canvas.Pen.Width:=1; //Resetovanie
  102. end;
  103.  
  104. end.
Advertisement
Add Comment
Please, Sign In to add comment