Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Resize einer Form verläuft proportional... (https://www.delphipraxis.net/90659-resize-einer-form-verlaeuft-proportional.html)

xZise 21. Apr 2007 12:45


Resize einer Form verläuft proportional...
 
Ich habe folgenden Code um meine Form zu vergrößern bzw. zu verkleinern:
Delphi-Quellcode:
procedure TfrmSpeedMemo.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
   if Shift = [ssShift] then
  begin
    Height := Height + 4;
    Top := Top - 2;
  end;
  if [ssCtrl] = Shift then
  begin
    Width := Width + 4;
    Left := Left - 2;
  end;
end;

procedure TfrmSpeedMemo.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
   if ssShift in Shift then
  begin
    Height := Height - 4;
    Top := Top + 2;
  end;
  if ssCtrl in Shift then
  begin
    Width := Width - 4;
    Left := Left + 2;
  end;
end;
An sich sollte es theoretisch funktionieren! Aber das tut es nicht, weil er Width und Height in beiden Fällen verändert.
Nun habe ich mal debugt, und mir ist aufgefallen, dass wenn man Strg drückt, dass er ordnunggemäßt die Form resized... Aber dann gibt es ein 2 Durchlauf (o.O) ohne Mausradbewegung und mit Shift = [ssShift]... Ich habe keine Anhnung woran es liegen könnte :(

[edit]Mit [ssAlt] funktioniert es seltsamerweise...[/edit]

Daniel G 21. Apr 2007 12:55

Re: Resize einer Form verläuft proportional...
 
Warum prüfst du einmal, ob nur (=) Shift gedrückt wird und einmal, ob neben anderen Tasten auch (in) Shift gedrückt wird?

xZise 21. Apr 2007 12:57

Re: Resize einer Form verläuft proportional...
 
Das ist zu Test da... Und egal welches Zeichen (in oder =) resized es in beide Richtungen...

Daniel G 21. Apr 2007 13:01

Re: Resize einer Form verläuft proportional...
 
Zitat:

Zitat von xZise
Das ist zu Test da... Und egal welches Zeichen (in oder =) resized es in beide Richtungen...

Ähh.... Bei mir nicht... Wenn ich Shift drücke, wird die Höhe verändert. Wenn ich Strg drücke, wird die Breite verändert. Drücke ich beides, dann kann ich das Formular proportional verkleinern, aber nicht mehr vergrößern. (wg. des =)

Zum Testen habe ich einfach ein neues Projekt mit den Standard-Parametern erstellt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 Uhr.

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