Habs jetzt nur überflogen. Kann es sein, dass du BTRechteckungefuellt zweimal auf False überprüfst?
Tipp1: auf true oder false überprüfen ist doppelt gemoppelt. Du kannst das direkt so schreiben.
Tipp2: Wenn du einrückst, kannst du deinen eigenen Code auch nachher noch lesen
Delphi-Quellcode:
procedure TPaint.BildMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
with Bild.Canvas do
begin
if not(BtRechteck.Enabled) then
if MausGedrueckt then
if BtRechteckungefuellt.Enabled 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
else
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
end;
end;
LG Isilive
Stefan
Jedoch kann die referenzbasierte Implementierung des Standard-Objektmodells in Kombination mit den komplexen syntaktischen Dereferenzierungsregeln bei einer objektorientierten
API wie ein Stolperstein wirken.