Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Stringgrid, Zeile automatisch an Textgrösse anpassen (https://www.delphipraxis.net/183053-stringgrid-zeile-automatisch-textgroesse-anpassen.html)

Luckner 19. Mai 2015 12:21

AW: Stringgrid, Zeile automatisch an Textgrösse anpassen
 
Hallo BadenPower,
bin gerade aus dem Urlaub zurück (dieses JvStringGrid1 hat mich fertig gemacht) und wollte mich für den Beispiel bedanken. Hat mich richtig weiter gebracht. Habe zwar nur ein Teil davon verstanden, aber es funktioniert mit einigen Anpassungen. Ich muss mir dringend ein Tutorial für dieses Stringgrid suchen, weil mir die Arbeitsweise dieser Komponente überhaupt nicht verstädlich ist. Oder mir eine andere Stringrid-Komponente suchen zBsp. von TMSsoftware. Aber jetz komme ich erstmal weiter. Danke.

Luckner

himitsu 19. Mai 2015 12:41

AW: Stringgrid, Zeile automatisch an Textgrösse anpassen
 
Zitat:

Zitat von BadenPower (Beitrag 1301216)
1. kein unnötiger Funktionsaufruf (pro Schleifendurchgang)

Wieso? Ist bei Math.Max doch auch nicht. (inline :stupid:)

Zitat:

Zitat von BadenPower (Beitrag 1301216)
3. keine Notwendigkeit Math in die Uses aufzunehmen

Math ist klein, hat nichtmal einen Initializations-Abschnitt und über die VCL oder andere (Fremd)Komponenten ist sie eh oft bereits eingebungen, also warum dann nicht nutzen?

BadenPower 19. Mai 2015 19:07

AW: Stringgrid, Zeile automatisch an Textgrösse anpassen
 
Zitat:

Zitat von himitsu (Beitrag 1302138)
Zitat:

Zitat von BadenPower (Beitrag 1301216)
1. kein unnötiger Funktionsaufruf (pro Schleifendurchgang)

Wieso? Ist bei Math.Max doch auch nicht. (inline :stupid:)

Bei der Verwendung von Math.Max müssen wesentlich mehr Arbeitschritte durchlaufen werden, als mit der Variante mit der einfachen If-Abfrage

Wir benötigen lMaxRowHeight:
Das erbibt die zwei Möglichkeiten:

1. mit Math.Max():
Delphi-Quellcode:

  lMaxRowHeight := Math.Max(lTextHeigth,lMaxRowHeight);
.
2. mit einer einfachen IF-Abfrage:
Delphi-Quellcode:
  if (lTextHeigth > lMaxRowHeight) then
   begin
    lMaxRowHeight := lTextHeigth;
   end;
Bei Version2 wird bei jedem Schleifendurchlauf die IF-Abfrage durchgeführt und nur bei "wahr" lMaxRowHeight ein neuer Wert zugewiesen.

Bei Version1 wird bei jedem Schleifendurchlauf die Funktion Max() aufgerufen, welche mit zwei Parametern bestückt ist, welche mit übergeben werden müssen.
In der Max-Funktion wiederum wird eine If-Abfrage durchgeführt und der Variablen Result egal ob "Wahr" oder "Falsch" auf jeden Fall ein Wert zugewiesen. Und auch der Variablen lMaxRowHeight wird bei jedem Schleifendurchlauf das Resultat der Funktion zugewiesen.

Das sind doch unnötige Arbeitsschritte/Rechenoperationen/Speicherplatzzuordnungen.

Zitat:

Zitat von himitsu (Beitrag 1302138)
Math ist klein, hat nichtmal einen Initializations-Abschnitt und über die VCL oder andere (Fremd)Komponenten ist sie eh oft bereits eingebungen, also warum dann nicht nutzen?

Es mag zwar wie Erbsenzählerei klingen, aber alles was unnötig ist ist eben unnötig. Und viele Erbsen ergeben einen sättigenden Eintopf.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr.
Seite 3 von 3     123   

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 by Thomas Breitkreuz