Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ScaleBy() und wieder die originale Größe zurücksetzen ? (https://www.delphipraxis.net/115146-scaleby-und-wieder-die-originale-groesse-zuruecksetzen.html)

Delphiturbo 6. Jun 2008 19:23


ScaleBy() und wieder die originale Größe zurücksetzen ?
 
Hallo

gibt es eine Möglichkeit die originale Grösse der Form und aller anderen Controlls nach dem ScalBy() wieder zu bekommen ?

Z.B. : ScaleBy(133, 100); // d.h. 133% vergrössern
Wie kann ich nun die Form wieder verkleinen ?

Mathematik ist einfach : ScaleBy(100 / 133, 100);
Das Problem, es wird nur Integer akzeptiert !

Matze 6. Jun 2008 19:32

Re: ScaleBy() und wieder die originale Größe zurücksetzen ?
 
Prozentrechnung :wall:

Delphiturbo 6. Jun 2008 19:41

Re: ScaleBy() und wieder die originale Größe zurücksetzen ?
 
Das ist nicht das Problem, den wert zu berechnen
ich habe die Form komplett 164% skaliert so:
Delphi-Quellcode:
ScaleBy(164,100);
danach wollte ich die Form wieder verkleinern so :
Delphi-Quellcode:
begin
ScaleBy(trunc(100/164),100);
end;
Es wird die Form zwar verkleinert aber deformiert !
Alles durcheinander !

1234588 6. Jun 2008 20:01

Re: ScaleBy() und wieder die originale Größe zurücksetzen ?
 
waere es auch moeglich, nicht immer gleich nach dem zweiten fehlversuch ein thread aufzumachen?
ich beobachte schon laenger und muss sagen, das du recht schnell aufgibst. zumindest sieht es so aus.

wie waere es denn, wenn du ganz einfach den alten wert speicherst?

//edit

bzw. was gibt denn 100 / 164?
was gibt dann Trunc(100 / 164)?
schau dir mal an, was das fuer zahlen sind :o)

Fussball-Robby 6. Jun 2008 20:18

Re: ScaleBy() und wieder die originale Größe zurücksetzen ?
 
ScaleBy(133, 100), damit bekommst du 133% von den ursprünglichen 100. Was könnte man jetzt wohl machen, um wieder die alten 100 von den 133 zu bekommen? :roll:

Delphiturbo 6. Jun 2008 20:39

Re: ScaleBy() und wieder die originale Größe zurücksetzen ?
 
Zitat:

Zitat von Fussball-Robby
ScaleBy(133, 100), damit bekommst du 133% von den ursprünglichen 100. Was könnte man jetzt wohl machen, um wieder die alten 100 von den 133 zu bekommen? :roll:

:gruebel:
100x100 / 133
Man bekommt nie genau die alte Größe

Fussball-Robby 6. Jun 2008 20:41

Re: ScaleBy() und wieder die originale Größe zurücksetzen ?
 
Wie wärs einfach mal mit Parameter umdrehen? :gruebel:

SirThornberry 6. Jun 2008 21:48

Re: ScaleBy() und wieder die originale Größe zurücksetzen ?
 
Zitat:

Mathematik ist einfach : ScaleBy(100 / 133, 100);
:lol: Vielleicht solltest du dann mal den Taschenrechner nehmen und anhand eines Beispiels prüfen ob DU die einfache Mathematik vielleicht doch nicht verstehst.
:duck:

Delphiturbo 6. Jun 2008 23:01

Re: ScaleBy() und wieder die originale Größe zurücksetzen ?
 
Zitat:

Zitat von Fussball-Robby
Wie wärs einfach mal mit Parameter umdrehen? :gruebel:

die Parameter umtauschen, habe ich schon vorher getestet und habe ich gedacht
das es damit nicht geht, da die Form-Breite und die Form-Höhe bleiben groß unverändert.

Also mit Parameter umtauschen ScaleBy(100,133) geht schon. Ich muss nur in OnCreate
die originale Breite und Höhe der Form als Variable speichern, damit ich beim verkleinern diese wieder zuweisen kann :thumb:

Zitat:

Zitat von SirThornberry
Zitat:

Mathematik ist einfach : ScaleBy(100 / 133, 100);
:lol: Vielleicht solltest du dann mal den Taschenrechner nehmen und anhand eines Beispiels prüfen ob DU die einfache Mathematik vielleicht doch nicht verstehst.
:duck:

Was ist dann falsch? ScaleBy(100*100 / 133, 100);
oder wenn man was vergesst, nehmst Du es ernst :wall:
Das Format habe ich getestet und funktioniert 99,9999999999 %
Aber mit Parameter umtauschen funktioniert 100.0000000000 % :mrgreen:

mr_emre_d 12. Jun 2008 10:32

Re: ScaleBy() und wieder die originale Größe zurücksetzen ?
 
warum so kompliziert ???

geht doch einfacher :
Code:
  ...
  scaleby( 75, 100 );
  scaleby( 100, 75 ); //---> Umkehr

tja, Mathe ist nicht leicht ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 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