AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Welches Prinzip steckt hinter TCustom* - Klassen?
Thema durchsuchen
Ansicht
Themen-Optionen

Welches Prinzip steckt hinter TCustom* - Klassen?

Ein Thema von TheJeed · begonnen am 29. Jun 2009 · letzter Beitrag vom 29. Jun 2009
Antwort Antwort
Benutzerbild von TheJeed
TheJeed

Registriert seit: 11. Jun 2009
Ort: Leipzig
57 Beiträge
 
#1

Welches Prinzip steckt hinter TCustom* - Klassen?

  Alt 29. Jun 2009, 15:09
Hallo zusammen!

Ich beschäftigte mich gerade erstmals etwas genauer mit der Entwicklung von Komponenten. Wenn ich mir Quellcodes von allen möglichen VCL-Komponenten ansehe dann fällt mir sofort ins Auge, dass es meist nicht nur die Komponentenklasse gibt, die ich auf die Form kloppe - zum Beispiel TEdit -, sondern auch eine TCustomEdit. Wohin ich auch sehe begegnet mir diese Vorgehensweise.

Könnt Ihr mir erklären, warum man das macht? Und wenn ich eine neue Komponente von einer vorhandenen ableiten möchte, sollte ich dann besser von TSülze oder TCustomSülze ableiten?

Dankesehr
Teitmaschine Go!
  Mit Zitat antworten Zitat
Sven M.

Registriert seit: 21. Okt 2006
Ort: Halle/Saale
106 Beiträge
 
Delphi 5 Enterprise
 
#2

Re: Welches Prinzip steckt hinter TCustom* - Klassen?

  Alt 29. Jun 2009, 15:18
Hi,
Die Custom-Klassen haben einfach den Zweck, den Programmieraufwand so gering wie möglich zu halten...
Sie implementieren Eigenschaften und Funktionen von Komponenten, die alle Nachfahren enthalten sollen, im Falle des TEdit z.B. TMaskEdit und TEdit.

Um auf dein Beispiel einzugehen: Ob du nun von TSülze oder TCustomSülze ableitest, hängt davon ab, ob die Funktionen von TSülze für dich nötig sind oder nicht. Eine generelle Aussage lässt sich hier m.E. nicht treffen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Welches Prinzip steckt hinter TCustom* - Klassen?

  Alt 29. Jun 2009, 15:19
TCustomEdit stellt sozusagen die Basisklasse für TEdit und Co. dar
und dort sind, wie du vielleicht bemerken dürftest, noch nahezu alle Eigenschaften/Funktionen "versteckt" (protected) und in TEdit werden nur alle nötigen Eigenschaften "feigeschaltet" (die Sichbarkeiten in puplic/published geändert).

Grund: so kannst du dir selber ein TMyEdit anlegen, diese eventuell erweitern und auch nur das freigeben, was nötig ist.

Wenn schon standardmäßig alles feigegeben wäre, kannst du nix mehr verstecken, da man sie sichtbarkeit nur erhöhen (sichtbarer machen > public oder published) kannst, aber nicht verringern (z.B. private, protected)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Welches Prinzip steckt hinter TCustom* - Klassen?

  Alt 29. Jun 2009, 15:21
Vor allem deklarieren die TCustom...-Klassen ihre Properties (in den meisten Fällen) als protected, so dass Du selbst entscheiden kannst, ob Du sie in Deiner Ableitung veröffentlichen willst oder nicht.

[edit] *Pffh* [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von TheJeed
TheJeed

Registriert seit: 11. Jun 2009
Ort: Leipzig
57 Beiträge
 
#5

Re: Welches Prinzip steckt hinter TCustom* - Klassen?

  Alt 29. Jun 2009, 15:37
Das war sehr aufschlussreich, danke
Teitmaschine Go!
  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 16:56 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