Ich versuche in einem Image einen rechteckigen Bereich mit der Maus zu markieren indem ich das Rechteck in ein gleich großes Transparentes Image zeichne.
(Das deshalb) weil ich so nur ein transparentes Rechteck zeichnen muß um es wieder zu löschen, im Originalbild müßte ich die Bildpunkte zwischenspeichern)
Leider sieht man das Rechteck nur - unter Flackern - während ich die Maus bewege. Sobald ich sie loslasse Ist nur das Bild zu sehen.
Hier die betreffenden Routinen:
Code: Alles auswählen
procedure TImport.Image6MouseDown(Sender: TObject; Button: TMouseButton;//Markieren beginnen
Shift: TShiftState; X, Y: Integer);
begin
markieren := true;
x1 := x; y1 := y;
end;
procedure TImport.Image6MouseMove(Sender: TObject; Shift: TShiftState; X,//Markieren
Y: Integer);
begin
if markieren then
begin
if markiert then
begin
Image6.canvas.Brush.Style:=bsclear;
Image6.canvas.Pen.Color := Image6.Picture.Bitmap.TransparentColor;
Image6.Canvas.Rectangle(x1o,y1o,x2o,y2o);
end;
x2 := x;y2 := y;
Image6.canvas.Brush.Style:=bsclear;
Image6.canvas.Pen.Color:=clGreen;
Image6.canvas.Rectangle(x1,y1,x2,y2);
x1o:=x1;x2o:=x2;y1o:=y1;y2o:=y2;
markiert := true;
image6.BringToFront;
end;
end;
procedure TImport.Image6MouseUp(Sender: TObject; Button: TMouseButton;//Markieren beenden
Shift: TShiftState; X, Y: Integer);
begin
markieren := false;
end;
Hat jemand einen Tip?
Schöne Grüße
Christian