Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Typdefinition Unterschied (https://www.delphipraxis.net/32456-typdefinition-unterschied.html)

Insider2004 23. Okt 2004 16:30


Typdefinition Unterschied
 
type
T1 = type T2;

type
T1 = T2;


Kann mir einer sagen, was da der Unterschied ist ???

Dax 23. Okt 2004 16:35

Re: Typdefinition Unterschied
 
Im ersten Fall
Delphi-Quellcode:
type
  T1 = type T2
ist T1 ein eigenständiger Typ, der zufälligerweise (:gruebel:) durch Typecast in T2 umgewandelt werden kann.
Im zweiten Fall
Delphi-Quellcode:
type
  T1 = T2
ist T1 nur ein Alias für T2, ähnlich einer Konstante, die nur der Bequemlichkeit wegen verwendet wird.

[edit]Ich seh' grade, dass das auch in der OH unter Delphi-Referenz durchsuchenType steht..[/edit]

Sprint 23. Okt 2004 16:48

Re: Typdefinition Unterschied
 
Zitat:

Zitat von Insider2004
Kann mir einer sagen, was da der Unterschied ist ???

Bei überladenen Funktion kann das sehr hilfreich sein. Das folgende Beispiel ist falsch...
Delphi-Quellcode:
type
  TMyInteger = Integer;

function MyFunction(Value: Integer): Integer; overload;
function MyFunction(Value: TMyInteger): Integer; overload;
Aber so würde es funktionieren...
Delphi-Quellcode:
type
  TMyInteger = type Integer;

var
  Form1: TForm1;

function MyFunction(Value: Integer): Integer; overload;
function MyFunction(Value: TMyInteger): Integer; overload;

Muetze1 23. Okt 2004 22:36

Re: Typdefinition Unterschied
 
Moin!

Das zweite Type sorgt dafür, das ein eigener RTTI Typ angelegt wird. (siehe Hilfe).

Beispiel für Anwendung:

TFileName - Ist so ein normaler String, definiert als
Delphi-Quellcode:
Type
  TFileName = Type String;
- warum? Ganz einfach: wenn es einfach nur
Delphi-Quellcode:
Type
  TFileName = String;
wäre, dann würde bei einer Komponente mit TFileName immer der Editor für die Strings kommen - also einfach direkt eingeben. Durch den neuen Typ TFileName wie er bei der ersten Methode angelegt wird, kommt dabei dann der Dateiauswahldialog. Es wurde ein komplett neuer Type angelegt und wird auch als solches zurück gegeben und behandelt, beim anderen wird ein String zurück gegeben und so behandelt...

MfG
Muetze1

F.W. 13. Dez 2004 17:28

Re: Typdefinition Unterschied
 
Aber warum musste erst TFileName deklariert werden wenns ein einfacher String auch getan hätte?

maximov 13. Dez 2004 17:51

Re: Typdefinition Unterschied
 
Zitat:

Zitat von F.W.
Aber warum musste erst TFileName deklariert werden wenns ein einfacher String auch getan hätte?

->
Zitat:

dann würde bei einer Komponente mit TFileName immer der Editor für die Strings kommen - also einfach direkt eingeben. Durch den neuen Typ TFileName wie er bei der ersten Methode angelegt wird, kommt dabei dann der Dateiauswahldialog. Es wurde ein komplett neuer Type angelegt und wird auch als solches zurück gegeben und behandelt, beim anderen wird ein String zurück gegeben und so behandelt...
Dem kann ich mich nur anschliessen, denn mein OI macht das genauso.

F.W. 13. Dez 2004 19:14

Re: Typdefinition Unterschied
 
Habs gerade gemerkt! Habe das Zitat vorher nicht ganz verstanden, aber jetzt ist alles klar. Da öffnet sich dann eben ein OpenDialog! :lol:

Sorry!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:12 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 by Thomas Breitkreuz