Sign in Join
Wiki copytemporary

Variant/de: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Variant/de

OldNewLine
1+Zurück zu den [[Data type/de|Datentypen]].
2+
3+Speicherbedarf bei 32 Bit Kompilierung: 16 Byte bzw. 128 Bit
4+
5+Speicherbedarf bei 64 Bit Kompilierung: 24 Byte bzw. 192 Bit
6+
7+Eigenschaft: Der [[Data type/de|Datentyps]] Variant bietet in der Programmierung eine grosse Flexibilität. Dafür braucht der [[Data type/de|Datentyp]] Variant mehr Arbeitsspeicher als normale Datenfelder / Variablen. Variablen vom Datentyp Variant können mit Ausnahme von strukturierten Datentypen Werte von beliebigen Datentypen speichern. Operationen mit dem Datentyp Variant sind deutlich langsamer als mit statisch typisierten [[Data field/de|Datenfeldern / Variablen]].
8+
9+Zwei Beispiele für Funktionen aus der Unit **Variants**:
10+
11+Die Funktion VarType() prüft von welchem Datentyp der Inhalt einer Variablen vom Datentyp Variant ist.
12+
13+Die Funktion VarToStr() wandelt den Inhalt einer Variablen vom Datentyp Variant in den Datentyp String.
14+
15+Definition eines Datenfeldes vom [[Data type/de|Datentyp]] Variant:
16+
17+``` pascal
18+var
19+ v: Variant;
20+```
21+
22+Definition der Datenfelder für die Beispiele:
23+
24+``` pascal
25+var
26+ v: Variant;
27+ s: String;
28+ i: Integer;
29+```
30+
31+Beispiel 1:
32+
33+``` pascal
34+ //Wertzuweisung:
35+ v := 1;
36+
37+ // Beispiele für zulässige Castings / Typzuweisungen / Konvertierungen des Datentyp:
38+ //Explizite Datentyp Konvertierungen:
39+ s := VarToStr(v);
40+ s := AnsiString(v);
41+ i := Integer(v);
42+ //Implizite Datentyp Konvertierung:
43+ i := v;
44+```
45+
46+Beispiel 2:
47+
48+``` pascal
49+ //Wertzuweisung:
50+ v := 'Tomate';
51+
52+ // Beispiele für zulässige Castings / Typzuweisungen / Konvertierungen des Datentyp:
53+ //Explizite Datentyp Konvertierungen:
54+ s := VarToStr(v);
55+ s := AnsiString(v);
56+```
57+
58+Beispiel 3:
59+
60+``` pascal
61+ //Beispiel für die Ermittlung des Datentyps des Inhaltes eines Datenfeldes vom Datentyp Variant:
62+ Case varType(v) of
63+ varEmpty:
64+ ShowMessage('Empty');
65+ varNull:
66+ ShowMessage('Null');
67+ varSingle:
68+ ShowMessage('Datentyp: Single');
69+ varDouble:
70+ ShowMessage('Datentyp: Double');
71+ varDecimal:
72+ ShowMessage('Datentyp: Decimal');
73+ varCurrency:
74+ ShowMessage('Datentyp: Currency');
75+ varDate:
76+ ShowMessage('Datentyp: Date');
77+ varOleStr:
78+ ShowMessage('Datentyp: UnicodeString');
79+ varStrArg:
80+ ShowMessage('Datentyp: COM-compatible string');
81+ varString:
82+ ShowMessage('Datentyp: Zeiger auf einen dynamisch erweiterbaren String');
83+ varDispatch:
84+ ShowMessage('Datentyp: Zeiger auf ein Automations Objekt');
85+ varBoolean:
86+ ShowMessage('Datentyp: Wordbool');
87+ varVariant:
88+ ShowMessage('Datentyp: Variant');
89+ varUnknown:
90+ ShowMessage('Datentyp: unbekannt');
91+ varShortInt:
92+ ShowMessage('Datentyp: ShortInt');
93+ varSmallint:
94+ ShowMessage('Datentyp: Smallint');
95+ varInteger:
96+ ShowMessage('Datentyp: Integer');
97+ varInt64:
98+ ShowMessage('Datentyp: Int64');
99+ varByte:
100+ ShowMessage('Datentyp: Byte');
101+ varWord:
102+ ShowMessage('Datentyp: Word');
103+ varLongWord:
104+ ShowMessage('Datentyp: LongWord');
105+ varQWord:
106+ ShowMessage('Datentyp: QWord');
107+ varError:
108+ ShowMessage('Fehlermeldung des Betriebsystems');
109+ else
110+ ShowMessage('Sonstiger Datentyp oder Zustand');
111+ end;
112+```
113+
114+---
115+*From the Free Pascal wiki, page "Variant/de", as it stood on 2020-03-03 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history