Autor Beitrag
Quivadis
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 314

UBUNTU 9.04
D2005 PERS, JAVA, D7 Pers.
BeitragVerfasst: Mi 15.12.04 09:06 
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:
ausblenden 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:
ausblenden 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:
ausblenden 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.
Quivadis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 314

UBUNTU 9.04
D2005 PERS, JAVA, D7 Pers.
BeitragVerfasst: Mi 15.12.04 09:51 
Ich habe mir gerade alles in Ruhe nochmal durch den kopf gehen lassen und habe festgestellt das ich einen Denkfehler gemacht habe. Ich muss ja die Änderung der Position dazu Addieren und nicht nur die neue Änderung Übernehmen.
Habe das jetzt dazugeschrieben und siehe da es scheint zu funktionieren.
Brauche im gewissen sinne die eigentlichen von dem event übergeben Kooordinaten nicht.

_________________
Wissen ist macht, nichts wissen macht auch nichts. ODER: Wer nichts weis, kann nichts vergessen.