Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wozu TCaption und TComponentName? (https://www.delphipraxis.net/73769-wozu-tcaption-und-tcomponentname.html)

3_of_8 23. Jul 2006 19:54


Wozu TCaption und TComponentName?
 
Ich hab mir grad mal wieder ein bissel die OH angeschaut und mich was gefragt: Warum ist TLabel.Caption eine TCaption und kein String? Gleiches fragte ich mich auch bei TComponent.Name, das ein TComponentName ist.

Die Deklaration ist ja einfach nur TCaption = type String; bzw. TComponentName = type String;

Wozu ist das gut?

Bernhard Geyer 23. Jul 2006 19:59

Re: Wozu TCaption und TComponentName?
 
Es könnte ja mal sein das TCaption was anderes als ein String ist. Und dann könnte man (theoretisch) dies ganz einfach ändern können.
Ich denke Du kannst kein C/C++. Dann hättest Du diese Frage nicht gestellt. Dort ist es üblich das jede Bibliothek einen Integer 50 mal neu für irgendwelche eigenen Typen als Basisklasse nimmt.

3_of_8 23. Jul 2006 20:01

Re: Wozu TCaption und TComponentName?
 
Ich habe mich bisher tatsächlich noch nicht sehr stark mit C und C++ beschäftigt.

Das Argument, dass sich das mal ändern könnte, ist tatsächlich gut. Daran hatte ich nicht gedacht.

Hawkeye219 23. Jul 2006 20:12

Re: Wozu TCaption und TComponentName?
 
Durch diese Deklaration werden vom Compiler eigene Laufzeit-Typinformationen (RTTI) für TCaption und TComponentName erzeugt. Damit sind die Typen 'String', 'TCaption' und 'TComponenName' z.B. in einem Propertyeditor unterscheidbar.

Gruß Hawkeye

3_of_8 23. Jul 2006 20:35

Re: Wozu TCaption und TComponentName?
 
Ja, das war mir klar, nur ist es notwendig, dass man das unterscheidet?

SirThornberry 23. Jul 2006 21:02

Re: Wozu TCaption und TComponentName?
 
bei Captions ist es auf jeden fall Sinnvoll. Man kann sich einen Property-Editor für TCaption bauen der unter anderem berücksichtigt das aus "&" ein "_" wird.
Bei ComponentName kann man sich ebenso einen Propertyeditor bauen der bereits vorhandene Komponentennamen berücksichtigt etc.

3_of_8 23. Jul 2006 21:03

Re: Wozu TCaption und TComponentName?
 
Stimmt - das ist allerdings sinnvoll. Wenn man statt TCaption = type String; schreiben würde TCaption = String; würde das nicht mehr gehen, oder?

Dax 23. Jul 2006 21:05

Re: Wozu TCaption und TComponentName?
 
TCaption = string erzeugt nur einen Alias. TCaption = type string erzeugt einen Typen.

3_of_8 23. Jul 2006 21:07

Re: Wozu TCaption und TComponentName?
 
Aha. Dacht ichs mir doch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 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