Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Seltsames Verhalten einer Funktion (https://www.delphipraxis.net/200467-seltsames-verhalten-einer-funktion.html)

Klaus01 28. Apr 2019 14:23

AW: Seltsames Verhalten einer Funktion
 
..wo kommen denn diese "magischen" Werte her?

Delphi-Quellcode:
      getHeight[0] := round(FSize[0] * 0.31919 + FHeight * Boxplot);
      getHeight[1] := round(FSize[0] * 0.13214 + FHeight * Boxplot);
      getHeight[2] := round(FSize[0] * 0.18379 + FHeight * Boxplot);
      getHeight[3] := round(FSize[0] * 0.04839 + FHeight * Boxplot);
      getHeight[4] := round(FSize[0] * 0.09839 + FHeight * Boxplot);
      getHeight[5] := round(FSize[0] * 0.21839 + FHeight * Boxplot);
      getHeight[6] := round(FSize[0] * 0.15839 + FHeight * Boxplot);
      getHeight[7] := round(FSize[0] * 0.26839 + FHeight * Boxplot);
      getHeight[8] := round(FSize[0] * 0.28839 + FHeight * Boxplot);
      getHeight[9] := round(FSize[0] * 0.27742 + FHeight * Boxplot);
Um es lesbarer zu gestalten, vielleicht die Werte durch Konstante ersetzen.
Oder die Werte in ein Array stecken, mit den gleichen Indizes wie getHigh.
Dann könntest Du das alles in eine Schleife von 0 bis 9 abarbeiten.

Grüße
Klaus

Pytroxis 28. Apr 2019 15:45

AW: Seltsames Verhalten einer Funktion
 
Zitat:

Zitat von Klaus01 (Beitrag 1431222)
..wo kommen denn diese "magischen" Werte her?

Delphi-Quellcode:
      getHeight[0] := round(FSize[0] * 0.31919 + FHeight * Boxplot);
      getHeight[1] := round(FSize[0] * 0.13214 + FHeight * Boxplot);
      getHeight[2] := round(FSize[0] * 0.18379 + FHeight * Boxplot);
      getHeight[3] := round(FSize[0] * 0.04839 + FHeight * Boxplot);
      getHeight[4] := round(FSize[0] * 0.09839 + FHeight * Boxplot);
      getHeight[5] := round(FSize[0] * 0.21839 + FHeight * Boxplot);
      getHeight[6] := round(FSize[0] * 0.15839 + FHeight * Boxplot);
      getHeight[7] := round(FSize[0] * 0.26839 + FHeight * Boxplot);
      getHeight[8] := round(FSize[0] * 0.28839 + FHeight * Boxplot);
      getHeight[9] := round(FSize[0] * 0.27742 + FHeight * Boxplot);

Wie man der Procedure entnehmen kann ist sie ein Teil der Klasse.
FSize und FHeight sind Variablen der Klasse welche beim erstellen gesetzt werden. Ebenfalls werden diese bei dem ändern der Fenstergröße gesetzt.
-> in FSize ist die Fenstergröße und in FHeight die Größe eines Boxplots (relativ zur Fenstergröße).
-> Boxplot : Boxplot welcher gerade gezeichnet wird, muss demnach auch variable sein.


Zitat:

Zitat von Klaus01 (Beitrag 1431222)
Um es lesbarer zu gestalten, vielleicht die Werte durch Konstante ersetzen.
Oder die Werte in ein Array stecken, mit den gleichen Indizes wie getHigh.
Dann könntest Du das alles in eine Schleife von 0 bis 9 abarbeiten.

Grüße
Klaus

Wie oben beschrieben, kann ich die Werte nicht durch konstanten ersetzen.
Die Werte sind abhängig der Fenstergröße und ändern sich demnach, wenn man die Größe des Fensters verändert.

Klaus01 28. Apr 2019 15:59

AW: Seltsames Verhalten einer Funktion
 
.. ich meinte diese Werte "0.31919, ..."

Grüße
Klaus

Pytroxis 28. Apr 2019 19:34

AW: Seltsames Verhalten einer Funktion
 
Zitat:

Zitat von Klaus01 (Beitrag 1431230)
.. ich meinte diese Werte "0.31919, ..."

Grüße
Klaus

Als ich eben darüber nachgedacht habe ist es mir auch klar geworden.
Bin gerade einfach zu übermüdet :(
Aber vielen Dank für den Tipp, werde sie auslagern in die Create-Function und dort als Konstanten setzen und später über eine Schleife die Werte machen C:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:02 Uhr.
Seite 4 von 4   « Erste     234   

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