Announcement

Collapse
No announcement yet.

Markierrungsrahmen in Image?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Markierrungsrahmen in Image?

    Hallo,
    wie kann ich einen Markierrungsrahmen wie bei Paint "Auswahl" in einen Image erzeugen und ihn so nutzen (kopieren, aussschneiden).

    Danke im Vorraus
    Hans

  • #2
    hallo hans,

    ich mache das mit einer Markierung wie folgt:

    procedure TForm1.BildMouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);

    begin

    if (ssLeft in Shift) then begin

    StartPos.X := X; StartPos.Y := Y;

    DrawMark(Bild.Canvas,X,Y);

    OldMark.X := X; OldMark.Y := Y;

    end;

    end;

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

    begin

    if (ssLeft in Shift) then begin

    DrawMark(Bild.Canvas,OldMark.X,OldMark.Y); // alte Markierung löschen

    DrawMark(Bild.Canvas,X,Y); // neue Markierung zeichnen

    OldMark.X := X; OldMark.Y := Y;

    end;

    end;

    procedure TForm1.BildMouseUp(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);

    begin
    DrawMark(Bild.Canvas,OldMark.X,OldMark.Y,DrawFlag) ; // alte Markierung löschen

    if (ssShift in Shift) then

    BearbeiteAusschnitt(X,Y,Startpos.X,StartPos.Y);

    StartPos.X := 0; StartPos.Y := 0; OldMark.X := 0; OldMark.Y := 0;

    end;

    procedure TForm1.DrawMark(Canvas: TCanvas; X,Y : Integer);

    begin

    if (X > 0) and (Y > 0) and (StartPos.X > 0) and (StartPos.Y > 0)then begin

    Canvas.Pen.Mode := pmNot;
    Canvas.Pen.Width := 1;
    Canvas.Brush.Style := bsClear;

    Canvas.Rectangle(StartPos.X,StartPos.Y,X,Y);

    Canvas.Pen.Mode := pmCopy;

    end;

    end;

    Gruss
    Luk

    Comment

    Working...
    X