Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zoom im tImage bei Apfelmann (https://www.delphipraxis.net/45969-zoom-im-timage-bei-apfelmann.html)

Daniel07A 15. Mai 2005 19:16


Zoom im tImage bei Apfelmann
 
Hi,

Habe ein Programm, welches das Apfelmännchen auf ein tImage zeichnet, nachedem ich auf den Button zeichnen geklickt habe. Nachdem das Apfelmännchen gezeichnet wurde, möchte ich auf dem tImage zoomen können. Ich habe schon versucht einen Quellcode zu schreiben. Der Funtkioniert jedoch nicht. Ihr könnt ihn euch ja mal anschauen und sagen wo der Fehler liegt.

Der Zoom kann auf 2 Arten funktionieren,

...Entweder man kann mit der Maus ein viereck ect. auf dem tImage ziehen und der Bereich wird dann vergrößert

...oder man hat eine kleine Lupe als Mauszeiger wenn man auf das tImage kommt und wenn man klickt wird das Bild immer an der Stelle wo man geklickt hat um das 2 Fache vergrößert.

Ist mir egal welche funktion ihr versucht, ich habe in meinem Bsp. die 1. gewählt.

Delphi-Quellcode:
procedure TFRM_Main.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var a,b : real;
begin
  a := xmin + (x-152)*(xmax-xmin) / IMG_Apfelmann.Width;
  b := ymax - (y-8)*(ymax-ymin) / IMG_Apfelmann.Height;
  FRM_Options.EDT_xmin.Text := floattostrf(a,fffixed,10,8);
  FRM_Options.EDT_ymax.Text := floattostrf(b,fffixed,10,8);
  xo := x; yl := y; xu := x; yr := y;
  md := true;
end;

procedure TFRM_Main.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  md := false;
end;

procedure TFRM_Main.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var a,b : real;
begin
  if md then
   begin
     a := xmin + (x-152)*(xmax-xmin) / IMG_Apfelmann.Width;
     b := ymax - (y-8)*(ymax-ymin) / IMG_Apfelmann.Height;
     FRM_Options.EDT_xmax.Text := floattostrf(a,fffixed,10,8);
     FRM_Options.EDT_ymin.Text := floattostrf(b,fffixed,10,8);
     IMG_Apfelmann.canvas.Pen.Mode := pmnotxor;
     IMG_Apfelmann.canvas.Rectangle(xo,yl,xu,yr);
     IMG_Apfelmann.canvas.Rectangle(xo,yl,x,y);
     IMG_Apfelmann.canvas.Pen.Mode := pmcopy;
     xu := x; yr := y;
   end;
end;

Denke das man mein Problem versteht :gruebel:

Gruß Daniel

toms 16. Mai 2005 00:15

Re: Zoom im tImage bei Apfelmann
 
Hallo!

So kannst du einen canvas zoomen.

Daniel07A 16. Mai 2005 10:49

Re: Zoom im tImage bei Apfelmann
 
Das funtkioniert irgendwie nicht mit deinem Tipp. Wenn ich es so mache wie es dort erklärt wird, und auf den button klicke, dann erscheint über dem eigentlichen tImage des Apfelmanns, genau das selbe Apfelmann-Bild nur ein Bisschen kleiner. Es wurde nichts herangezoomt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz