Due solltest alles erstmal ein wenig umstrukturieren.
1. erstelle für deine Zeichenoperationen eine eigene procedure um Zugriffe von verschiedenen Punkten des Programms aus machen zu können.
2. Lege die aktuelle einstellung des Zeichentools in eigenem Type ab. Erleichtert das erfassen und übergeben an andere Routinen.
Dann nimm nicht x_ende und X_Start für sowas gibts Point.
Definier dazu
Origin,MoveTo:TPoint;
Nimm z.B. bei Mousdown
Delphi-Quellcode:
Origin.x:=x;
Origin.y:=y;
MoveTo:=Origin;
zeichnen:=true;
Zeichne(Origin,Origin,pmnotxor);
Zeichne mußt du definieren
procedure Zeichne(Start,Ziel:TPoint; z_style:penstyle);
in mousemove
Delphi-Quellcode:
if zeichnen
then
Zeichne(Origin,MoveTo,pmnotxor);
MoveTo.x:=x
moveTo.y:=y;
Zeichne(Origin,MoveTo,pmnotxor);
und bei mouseup
Delphi-Quellcode:
if zeichnen then
Zeichne(Origin,MoveTo,pmcopy);
so in etwa wirds dann auch einfacher weitere sachen zu integrieren
Gruß Matthias