AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Komponente über Namensvarialble ansprechen?
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente über Namensvarialble ansprechen?

Ein Thema von Daniel L. · begonnen am 4. Jun 2019 · letzter Beitrag vom 7. Jun 2019
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.687 Beiträge
 
Delphi 12 Athens
 
#1

AW: Komponente über Namensvarialble ansprechen?

  Alt 6. Jun 2019, 12:40
Wenn man später doch mal wieder über die Komponenten gehen möchte, dann erfolgt das mit dem Dictionary wirklich nur über die gewünschten Komponenten. Keine nil Abfragen und schleifen mehr.
Das tut FindComponent auch gar nicht (mehr). Beim ersten Aufruf wird eine nach Namen sortierte Liste aller Komponenten erzeugt, auf die dann über eine binäre Suche zugegriffen wird. Das mag zwar noch marginal langsamer sein, als ein Zugriff in einem TDictionary, aber das schlägt vermutlich gar nicht ins Gewicht. Man spart sich eben den zusätzlichen Verwaltungsaufwand.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Daniel L.

Registriert seit: 25. Sep 2008
17 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Komponente über Namensvarialble ansprechen?

  Alt 6. Jun 2019, 22:26
Also ich hab jetzt erstmal FindComponent eingebaut.
Sinvoll eingesetzt konnte die Größe des gesamten Quelltextes meines Projektes prompt um 25 % verkleinert werden

Danke nochmal an alle - Daniel
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.443 Beiträge
 
Delphi 12 Athens
 
#3

AW: Komponente über Namensvarialble ansprechen?

  Alt 7. Jun 2019, 06:18
Moin...
Zitat:
Das Dictionary müsste doch erstmal erzeugt und befüllt werden. Wo läge da der Vorteil?
Das Dictionary wird einmal befüllt. Mit jedem FindComponent wird die Liste komplett neu aufgebaut.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.687 Beiträge
 
Delphi 12 Athens
 
#4

AW: Komponente über Namensvarialble ansprechen?

  Alt 7. Jun 2019, 06:49
Mit jedem FindComponent wird die Liste komplett neu aufgebaut.
Falsch! Die Liste wird nur beim ersten Aufruf von FindComponent neu aufgebaut und danach lediglich gepflegt (Insert, Remove, ChangeName).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.443 Beiträge
 
Delphi 12 Athens
 
#5

AW: Komponente über Namensvarialble ansprechen?

  Alt 7. Jun 2019, 06:58
Zitat:
Falsch! Die Liste wird nur beim ersten Aufruf von FindComponent neu aufgebaut und danach lediglich gepflegt
Echt?... Again what learned.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.687 Beiträge
 
Delphi 12 Athens
 
#6

AW: Komponente über Namensvarialble ansprechen?

  Alt 7. Jun 2019, 07:02
Ach ja, das Dictionary müsste natürlich ebenso gepflegt werden und bei Änderungen in der Komponentenliste sowie Umbenennung einzelner Komponenten aktualisiert werden. Ich glaube kaum, daß der Aufwand durch den geringen Geschwindigkeitsvorteil gerechtfertigt ist.

Ein solches Dictionary wäre eventuell dann von Vorteil, wenn es Komponenten mit unterschiedlichen Ownern enthält.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:09 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