AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Stringgrid, Zeile automatisch an Textgrösse anpassen
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid, Zeile automatisch an Textgrösse anpassen

Ein Thema von Luckner · begonnen am 8. Dez 2014 · letzter Beitrag vom 19. Mai 2015
Antwort Antwort
Seite 3 von 3     123   
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#21

AW: Stringgrid, Zeile automatisch an Textgrösse anpassen

  Alt 19. Mai 2015, 11:21
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.137 Beiträge
 
Delphi 12 Athens
 
#22

AW: Stringgrid, Zeile automatisch an Textgrösse anpassen

  Alt 19. Mai 2015, 11:41
1. kein unnötiger Funktionsaufruf (pro Schleifendurchgang)
Wieso? Ist bei Math.Max doch auch nicht. (inline )

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?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (19. Mai 2015 um 11:45 Uhr)
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#23

AW: Stringgrid, Zeile automatisch an Textgrösse anpassen

  Alt 19. Mai 2015, 18:07
1. kein unnötiger Funktionsaufruf (pro Schleifendurchgang)
Wieso? Ist bei Math.Max doch auch nicht. (inline )
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.

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.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:36 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