All pastes #392279 Raw Edit

Untitled

public text v1 · immutable
·published 2007-03-12 19:55 UTC
rendered paste body
type

    TFerramenta = (frLinha, frRetângulo, frElipse, frRetRedondo);
    TForm1 = class(TForm)

    public

    FlagDesenho: Boolean;
    Origem, MovePonto: TPoint;
    Ferramenta: TDrawingTool;

    end;

procedure TForm1.spbLinhaClick(Sender: TObject);

    begin

        Ferramenta := frLinha;

    end;

     

    procedure TForm1.spbRetânguloClick(Sender: TObject);

    begin

        Ferramenta := frRetângulo;

    end;

     

    procedure TForm1.spbElipseClick(Sender: TObject);

    begin

        Ferramenta := frElipse;

    end;

     

    procedure TForm1.sobRetRedondoClick(Sender: TObject);

    begin

        Ferramenta := frRetRedondo;

    end;

procedure TForm1.FormMouseUp(Sender: TObject);

    begin

    case Ferramenta of

    frLinha:

        begin
        Canvas.MoveTo(Origem.X, Origem.Y);
        Canvas.LineTo(X, Y)
        end;

    frRetângulo: Canvas.Rectangle(Origem.X, Origem.Y, X, Y);

    frElipse: Canvas.Ellipse(Origem.X, Origem.Y, X, Y);

    frRetRedondo: Canvas.RoundRect(Origem.X, Origem.Y, X, Y, . (Origem.X - X) div 2, (Origem.Y - Y) div 2);

    end;

    FlagDesenho := False;

    end;

     

    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: . Integer);

    begin

    if FlagDesenho then

    begin

    Canvas.Pen.Mode := pmNotXor;

    case Ferramenta of

    frLinha :

    begin

        Canvas.MoveTo(Origem.X, Origem.Y);
        Canvas.LineTo(MovePonto.X, MovePonto.Y);
        Canvas.MoveTo(Origem.X, Origem.Y);
        Canvas.LineTo(X, Y);

    end;

    frRetângulo :

    begin

        Canvas.Rectangle(Origem.X, Origem.Y, MovePonto.X, MovePonto.Y);
        Canvas.Rectangle(Origem.X, Origem.Y, X, Y);

    end;

    frElipse :

    begin

        Canvas.Ellipse(Origem.X, Origem.Y, X, Y);
        Canvas.Ellipse(Origem.X, Origem.Y, X, Y);

    end;

    frRetRedondo :

    begin

        Canvas.RoundRect(Origem.X, Origem.Y, X, Y,(Origem.X - X) div 2, (Origem.Y - Y) div 2);
        Canvas.RoundRect(Origem.X, Origem.Y, X, Y,(Origem.X - X) div 2, (Origem.Y - Y) div 2);

    end;

    end;

        MovePonto := Point(X, Y);

    end;

        Canvas.Pen.Mode := pmCopy;

    end;