Hallo!
Ich habe ein kleines Problem mit meinem Mini-Paint Programm, welches ich zur Zeit programmiere:
Ich wollte ein Rechteck programmieren, dass man wie im echten Paint aufziehen kann.
Dies ist mir auch gelungen, sogar mit Fallunterscheidung für gefüllt und ungefüllt, aber man sieht während des Ziehens des Rechtecks nichts.
Wie kann ich das ändern?
Hier mein Quelltext:
Delphi-Quellcode:
procedure TPaint.BildMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
with Bild.Canvas do begin
if BtRechteck.Enabled=False
then begin
if BtRechteckungefuellt.Enabled=False
then begin
Brush.Style:=bsclear;
XAnfang:=X;
YAnfang:=Y;
XEnde:=X;
YEnde:=Y;
Moveto (XAnfang,YAnfang);
end;
if BtRechteckgefuellt.Enabled=False
then begin
Brush.Style:=bssolid;
XAnfang:=X;
YAnfang:=Y;
XEnde:=X;
YEnde:=Y;
Moveto (XAnfang,YAnfang);
end;
end;
end;
end;
procedure TPaint.BildMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
with Bild.Canvas do begin
if BtRechteck.Enabled=False
then begin
if MausGedrueckt=True
then begin
if BtRechteckungefuellt.Enabled=False
then begin
Brush.Style:=bsclear;
Pen.mode := pmnotxor;
Moveto (XAnfang,YAnfang);
Rectangle (xanfang,yanfang,xende,yende);
Pen.style := psdot;
Moveto (XAnfang,YAnfang);
Rectangle (xanfang,yanfang,x,y);
XEnde:=X;
YEnde:=Y;
end;
if BTRechteckgefuellt.Enabled=False
then begin
Brush.Style:=bssolid;
Pen.mode := pmnotxor;
Moveto (XAnfang,YAnfang);
Rectangle (xanfang,yanfang,xende,yende);
Pen.style := psdot;
Moveto (XAnfang,YAnfang);
Rectangle (xanfang,yanfang,x,y);
XEnde:=X;
YEnde:=Y;
end;
end;
end;
end;
end;
procedure TPaint.BildMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
with Bild.Canvas do begin
MausGedrueckt:=False;
if BtRechteck.Enabled=False
then begin
if BtRechteckungefuellt.Enabled=False
then begin
Brush.Style:=bsclear;
Pen.mode := pmcopy;
Pen.Style := pssolid ;
Xende := x;
YEnde := y;
Rectangle(XAnfang, YAnfang, X, Y);
end;
if BTRechteckgefuellt.Enabled=False
then begin
Brush.Style:=bssolid;
Pen.mode := pmcopy;
Pen.Style := pssolid ;
Xende := x;
YEnde := y;
Rectangle(XAnfang, YAnfang, X, Y);
end;
end;
end;
end;
Vielen Dank schonmal im Voraus !!!!