Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   TImage Zoom (https://www.delphipraxis.net/170474-timage-zoom.html)

Davidlocke13 20. Sep 2012 09:38

AW: TImage Zoom
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe jetzt NewWidth und NewHeight raus geworfen, da ich die als Variablen schon mal wo anders eingetragen habe ! Mein Fenster schaut jetzt so komisch aus und lässt sich auch in keiner Größe mehr ändern ! Anhang 37683

DeddyH 20. Sep 2012 09:41

AW: TImage Zoom
 
Welche Änderungen hast Du denn gemacht (Code)?

Davidlocke13 20. Sep 2012 09:42

AW: TImage Zoom
 
Code:
unit WerkPlan;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, jpeg, Grids;

type
    TPercentRect = record
    Left, Top, Width, Height: double;
    end;
  TForm1 = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    ScrollBox1: TScrollBox;
    Image1: TImage;
    Button3: TButton;
    procedure FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer;
      var Resize: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
      MousePos: TPoint; var Handled: Boolean);
    procedure FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
      MousePos: TPoint; var Handled: Boolean);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);


  private
    { Private-Deklarationen }
     FPercent: TPercentRect;

  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation



{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
NewWidth,NewHeight: Integer;
begin
NewWidth := round(Image1.Width * 1.25);
NewHeight := round(Image1.Height * 1.25);
Image1.Width := NewWidth;
Image1.Height := NewHeight;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
NewWidth,NewHeight: Integer;
begin
NewWidth := round(Image1.Width / 1.25);
NewHeight := round(Image1.Height / 1.25);
Image1.Width := NewWidth;
Image1.Height := NewHeight;
end;

procedure TForm1.FormCanResize (Sender: TObject; var NewWidth,
  NewHeight: Integer; var Resize: Boolean);
var
  NewLeft, NewTop: integer;
begin
  NewLeft := round(ClientWidth / 100 * FPercent.Left);
  NewTop := round(ClientHeight / 100 * FPercent.Top);
  NewWidth := round(ClientWidth / 100 * FPercent.Width);
  NewHeight := round(ClientHeight / 100 * FPercent.Height);
  Button1.SetBounds(NewLeft, NewTop, NewWidth, NewHeight);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FPercent.Left := Button1.Left / ClientWidth * 100;
  FPercent.Top := Button1.Top / ClientHeight * 100;
  FPercent.Width := Button1.Width / ClientWidth * 100;
  FPercent.Height := Button1.Height / ClientHeight * 100;
end;

procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
var
NewWidth,NewHeight: Integer;
begin
NewWidth := round(Image1.Width / 1.03);
NewHeight := round(Image1.Height / 1.03);
Image1.Width := NewWidth;
Image1.Height := NewHeight;
end;

procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
var
NewWidth,NewHeight: Integer;
begin
NewWidth := round(Image1.Width * 1.03);
NewHeight := round(Image1.Height * 1.03);
Image1.Width := NewWidth;
Image1.Height := NewHeight;
end;

end.

DeddyH 20. Sep 2012 09:48

AW: TImage Zoom
 
Du weißt, was ein Var-Parameter ist? Im CanResize setzt Du ja Höhe und Breite neu, wohingegen in meinem Beispiel die Variablen nur der Berechnung dienen. Schau doch einmal hier: TCanResizeEvent

Davidlocke13 20. Sep 2012 09:55

AW: TImage Zoom
 
Vielleicht sollte ich mir erst mal Delphi für Dummies kaufen und das auswendig lernen :wink:

DeddyH 20. Sep 2012 09:56

AW: TImage Zoom
 
Vielleicht hilft das hier zum Verständnis: Deklaration von Funktionsparametern

Davidlocke13 20. Sep 2012 10:38

AW: TImage Zoom
 
Zitat:

Zitat von DeddyH (Beitrag 1183686)

Hab es gelesen aber umgesetzt bekomme ich da von was da steht NIX :(

DeddyH 20. Sep 2012 10:46

AW: TImage Zoom
 
Es ging ja nicht um das Umsetzen, sondern um das Verständnis. Im OnCanResize sind NewWidth und NewHeight Variablenparameter, d.h. vereinfacht gesagt sie werden "außerhalb" deklariert und Dir zur Bearbeitung übergeben. Schreibst Du also dort Werte hinein, werden sie übernommen und wirken sich damit aus, das ist der Grund für das von Dir beobachtete Verhalten.

[edit] Ansonsten kann ich Dir für die ersten Schritte die Grundlagentutorials und das E-Book vom Delphi-Treff empfehlen. [/edit]

Davidlocke13 20. Sep 2012 11:01

AW: TImage Zoom
 
THX für die Seiten vom Delphi Treff arbeit damit auch schon ne zeit lang ;-)

Davidlocke13 20. Sep 2012 12:34

AW: TImage Zoom
 
Tja ich komme da einfach nicht mehr weiter :cry:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:17 Uhr.
Seite 3 von 5     123 45      

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