Autor Beitrag
Fabian
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42



BeitragVerfasst: Mi 24.07.02 09:45 
Hallo,
Gibt es eine Möglichkeit eigene Variablentypen zu definieren ?
wwerner
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 185



BeitragVerfasst: Mi 24.07.02 09:48 
Ja, z.B. records

_________________
Gruß

Wolfgang

----------
zu hause ist es doch am schönsten
b.brecht
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: Mi 24.07.02 10:29 
Jopp, hier ein Beispiel:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.FormCreate(Sender: TObject);
        type
                Schueler = record
        Name, Geburtsdatum: String;
        Alter: Integer;
        Geschlecht: Char;
        end;
var
Klasse:ARRAY[1..30] of Schueler;
begin
Klasse[1].Name:='Name, Vorname';
Klasse[1].Geburtsdatum:='XX.XX.XXXX';
Klasse[1].Alter:=00;
Klasse[1].Geschlecht:='m';
end;


Moderiert von user profile iconKlabautermann: Code- durch Delphi-Tags ersetzt
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 24.07.02 14:04 
Hi,

eine weitere möglichkeit sind Aufzählungstypen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
Type
  tKarten = (Karo, Kreuz, Piek, Herz);
Var
  Farbe : tKarten;
BEGIN
  Farbe := Kreuz;
[...]


Gruß
Klabautermann

Moderiert von user profile iconKlabautermann: Code- durch Delphi-Tags ersetzt


Zuletzt bearbeitet von Klabautermann am Di 31.07.07 10:02, insgesamt 1-mal bearbeitet
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mo 30.07.07 18:57 
Hihi, vor 5 Jahren minus 6 Tage stellte user profile iconFabian die Frage, und ich möchte heute auch noch eine Lösung schreiben, vielleicht für andere, die sich diese Frage auch stellen:

type TRange = 3..6; definiert einen Typ, der Werte zwischen 3 und 6 aufnehmen kann

type TFileAttribute = (faReadOnly, faHidden, faSystem, faArchive); definiert einen Typ, der die Werte faReadOnly, faHidden, faSystem, faArchive aufnehmen kann

type TFileAttributes = set of TFileAttribute; definiert einen Typ, bei dem die einzelnen Werte faReadOnly, faHidden, faSystem, faArchive entweder aktiviert oder deaktiviert sein können.

type TText = String; definiert einen Typ, der genau dem Typ String gleicht.

Weitere Typen sind Records und Klassen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
type TItem = record
  Name: String;
  Value: String;
end;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
type TRectange = class
  Rect: TRect;
  procedure Draw;
end;


Records können nur Eigenschaften enthalten, Klassen dagegen auch Methoden.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 30.07.07 19:37 
Du hast noch einen kleinen Sonderfall vergessen:

ausblenden Delphi-Quelltext
1:
type TAlmostButNotQuiteEntirelyUnlikeInteger = type Integer;					

defines a type that is almost, but not quite, entirely unlike Integer.

Spaß bei Seite. Wenn man hinter dem =-Zeichen noch einmal Type schreibt erzeugt man eine Kopie eines bereits definierten Typen, für den explizite, vom Original-Typ unabhängige Typ-Informationen generiert werden, was dazu führt, dass die beiden Typen sich zwar gleich verhalten und auch zuweisungskompatibel bleiben, jedoch von der RTTI als zwei vollkommen unterschiedliche Typen zur Laufzeit behandelt werden. Eines der bekanntesten Beispiele für solch eine Definition ist der Typ TDateTime, der als Type TDateTime = Type Double; (D7) definiert ist (in System.pas).

Auch sollte hier der Vollständigkeit mal noch auf die Schlüsselwörter Object, Interface, DispInterface usw. hingewiesen werden ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.


Zuletzt bearbeitet von BenBE am Mo 30.07.07 20:09, insgesamt 1-mal bearbeitet
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mo 30.07.07 19:59 
Ich glaube, das gibt es in D3 nicht. Habs auf jeden Fall noch nicht gesehen.

BenBe, was ist mit deinem Delphi-BB-Codes? Die haben heute einen schlechten Tag... :D