Hallo an alle hier,
ich habe folgendes Problem:
Beim versuch das Windowsmalprogramm in Delphi nachzuprogrammieren (ms-paint), bin ich bei dem Versuch die Anfasser (die blauen Punkte, womit man das Bild vergrössern bzw. verkleinern kann) auf folgendesn problem gestossen.
Wenn man auf meine Anfassser klickt die übergeben Koordinaten verkehrt sind, anderer Nullpunkt nehme ich an, und deswwegen mein Programm nur Fehlermeldungen bringt.
Ich male in eine Imagebox, diese liegt auf einer/in einer Scrollbox. Die Anfasser habe ich ich alle als shapes simuliert, welche ich ganz klein gemacht habe und um die imagebox ausrichte.
Von diesen shapes habe ich folgende Events benutzt:
OnMousedown:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.Shape_unten_rechtsMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin sx:=image1.Height; sy:=image1.Width; end; |
OnMouseMove:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.Shape_unten_rechtsMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin statusbar.Panels[2].Text:=inttostr(x)+','+inttostr(y) end; |
OnMouseUP:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Shape_unten_rechtsMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin image1.Height:=(y); image1.width:=(x); image1.Picture.Graphic.Height:=(y); image1.Picture.graphic.Width:=(x);
anfasser(x,y); statusbar.Panels[2].Text:=inttostr(x)+' , '+inttostr(y); end; |
Die Procedure Anfasser richtet nur die shape um die imagebox aus. Die x und y werde die aus den events kommen werden auch negativ. Das erzeigt meinen Fehler, weil ich keine negative imagebox erzeugen kann.
Weis jemand wie ich das umgehen kann und trotzdem meine Imagebox grösser oder kleiner machen kann?
Vielen Dank schonmal im voraus
Quivadis
Wissen ist macht, nichts wissen macht auch nichts. ODER: Wer nichts weis, kann nichts vergessen.