S
Ok danke für deinen Tipp, habe das Bsp. auch im Builder5 gefunden. Habe mich daran orientiert und es so gelöst:
TPoint pOrigin,pMove;
void __fastcall TForm1::PaintBox1MouseDown(TObject *Sender,TMouseButton Button, TShiftState Shift, int X, int Y)
{
xstart=xstart+X*incr;
ystart=ystart+Y*incr;
pOrigin.x=X;pOrigin.y=Y;
pMove.x =X;pMove.y =Y;
Drawing=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PaintBox1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
if(Drawing)
{
DrawRectAngle(pOrigin,pMove); //altes Rechteck verschwinden lassen
pMove=Point(X,pOrigin.y+(pMove.x-pOrigin.x)); //neue Koord,y+(pMove.x-pOrigin.x)-->Zwang zum Quadrat
DrawRectAngle(pOrigin,pMove); //neues zeichnen
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PaintBox1MouseUp(TObject *Sender,TMouseButton Button, TShiftState Shift, int X, int Y)
{
Drawing=false;
xend=(xstarta+X*incr);
yend=(ystarta+(xend-xstart));
DrawFraktal(xstart,ystart,xend,yend);
}
//---------------------------------------------------------------------------
void TForm1::DrawRectAngle(TPoint TopLeft, TPoint BottomRight)
{
PaintBox1->Canvas->Pen->Style=psSolid;
PaintBox1->Canvas->Pen->Mode =pmNotXor;
PaintBox1->Canvas->Rectangle(TopLeft.x, TopLeft.y, BottomRight.x, BottomRight.y);
PaintBox1->Canvas->Pen->Mode =pmCopy;
}
Ist vllt nicht die elleganteste Methode, aber ich bin zufrieden damit, also vielen Dank nochmals .