<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hgunther</id>
	<title>RAD Studio - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hgunther"/>
	<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/de/Spezial:Beitr%C3%A4ge/Hgunther"/>
	<updated>2026-08-30T21:53:04Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=E2178_Dynamische_und_Botschaftsmethoden_sind_im_OLE-Automatisierungbereich_nicht_erlaubt_(Delphi)&amp;diff=220210</id>
		<title>E2178 Dynamische und Botschaftsmethoden sind im OLE-Automatisierungbereich nicht erlaubt (Delphi)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=E2178_Dynamische_und_Botschaftsmethoden_sind_im_OLE-Automatisierungbereich_nicht_erlaubt_(Delphi)&amp;diff=220210"/>
		<updated>2025-05-09T08:42:18Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Fehler- und Warnungsmeldungen (Delphi)}}&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;cm_232&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&amp;lt;ideTag id=&amp;quot;DYNAMIC_IN_AUTO&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&amp;lt;ideTag id=&amp;quot;cm_E2178_Delphi&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;Sie haben unzulässigerweise eine dynamische Methode oder eine Botschaftsmethode in einen Automatisierungsbereich einer Klassendeklaration gestellt.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 program Produce;&lt;br /&gt;
 &lt;br /&gt;
   type&lt;br /&gt;
     Base = class&lt;br /&gt;
     automated&lt;br /&gt;
       procedure DynaMethod; dynamic;&lt;br /&gt;
       procedure MessageMethod(VAR msg : Integer); message 151;&lt;br /&gt;
     end;&lt;br /&gt;
 &lt;br /&gt;
     procedure Base.DynaMethod;&lt;br /&gt;
     begin&lt;br /&gt;
     end;&lt;br /&gt;
 &lt;br /&gt;
     procedure Base.MessageMethod;&lt;br /&gt;
     begin&lt;br /&gt;
     end;&lt;br /&gt;
 &lt;br /&gt;
 begin&lt;br /&gt;
 end.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Es ist nicht möglich, eine Deklaration einer dynamischen Methode oder einer Botschaftsmethode in den OLE-Automatisierungsabschnitt einer Klasse zu stellen. Aus diesem Grunde erzeugen beide Methodendeklarationen in diesem Quelltext einen Fehler.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 program Solve;&lt;br /&gt;
 &lt;br /&gt;
   type&lt;br /&gt;
     Base = class&lt;br /&gt;
       procedure DynaMethod; dynamic;&lt;br /&gt;
       procedure MessageMethod(VAR msg : Integer); message 151;&lt;br /&gt;
     end;&lt;br /&gt;
 &lt;br /&gt;
     procedure Base.DynaMethod;&lt;br /&gt;
     begin&lt;br /&gt;
     end;&lt;br /&gt;
 &lt;br /&gt;
     procedure Base.MessageMethod;&lt;br /&gt;
     begin&lt;br /&gt;
     end;&lt;br /&gt;
 &lt;br /&gt;
 begin&lt;br /&gt;
 end.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Dieser Fehler kann auf verschiedene Arten aus Ihrem Programm entfernt werden. Als Erstes könnten Sie alle Deklarationen, die diesen Fehler auslösen, aus dem Automatisierungsabschnitt herausbringen, wie dies in diesem Beispiel geschehen ist. Eine andere Möglichkeit besteht darin, die Attribute dynamic oder message der Methode zu entfernen; dadurch wird natürlich nicht das gewünschte Verhalten der Methode erzielt, aber der Fehler ist behoben.&lt;br /&gt;
[[Category:{{Product}} – Referenz]]&lt;br /&gt;
&lt;br /&gt;
[[en:E2178 Dynamic methods and message handlers not allowed in OLE automation section (Delphi)]]&lt;br /&gt;
[[fr:E2178 Méthodes dynamiques et gestionnaires de messages non autorisés dans la section OLE Automation (Delphi)]]&lt;br /&gt;
[[ja:E2178 dynamic メソッドとメッセージハンドラは OLE オートメーション部に置くことはできません (Delphi)]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Datenbankkomponenten-Editor_(Dialogfeld)&amp;diff=219969</id>
		<title>Datenbankkomponenten-Editor (Dialogfeld)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Datenbankkomponenten-Editor_(Dialogfeld)&amp;diff=219969"/>
		<updated>2024-12-20T10:05:36Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Datenbanken (Dialogfelder)}}&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;IBX&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&amp;lt;ideTag id=&amp;quot;IBX_topic&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;Im Dialogfeld &#039;&#039;&#039;Datenbank-Editor&#039;&#039;&#039; definieren Sie die Verbindung, die zu einer Datenbank aufgebaut werden soll. Über die entsprechenden Eigenschaften können Sie den Typ der Datenbank, die Verbindungsparameter, den Benutzernamen, den SQLRole-Namen und das Passwort festlegen. Außerdem können Sie angeben, ob eine Aufforderung zur Anmeldung angezeigt werden soll.&lt;br /&gt;
&lt;br /&gt;
Die Eigenschaften für die Datenbankkomponente können auch mithilfe des Objektinspektors festgelegt werden.&lt;br /&gt;
&lt;br /&gt;
Doppelklicken Sie auf eine IBDatabase-Komponente, um das Dialogfeld &#039;&#039;&#039;Datenbank-Editor&#039;&#039;&#039; zu öffnen.&lt;br /&gt;
&lt;br /&gt;
==Dialogfeldoptionen==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verbindung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Option&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Bedeutung&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Lokal&lt;br /&gt;
|&lt;br /&gt;
Gibt an, dass sich die Datenbank auf dem lokalen Server befindet. Durch die Auswahl dieser Option wird die Schaltfläche &#039;&#039;&#039;Durchsuchen&#039;&#039;&#039; aktiviert, damit Sie die gewünschte Datenbank im Dialogfeld &#039;&#039;&#039;Datei öffnen&#039;&#039;&#039; angeben können.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Extern&lt;br /&gt;
|&lt;br /&gt;
Gibt an, dass sich die Datenbank auf einem Remote-Server befindet. Durch die Auswahl dieser Option werden die Felder &#039;&#039;&#039;Protokoll&#039;&#039;&#039; und &#039;&#039;&#039;Server&#039;&#039;&#039; aktiviert.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Protokoll&lt;br /&gt;
|&lt;br /&gt;
Legt das Protokoll fest, das für die Verbindung zum dem Remote-Server verwendet werden soll. Sie haben die Wahl zwischen TCP, NamedPipe und SPX.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Server&lt;br /&gt;
|&lt;br /&gt;
Der Name des Remote-Servers.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Datenbank&lt;br /&gt;
|&lt;br /&gt;
Der Name der Datenbank.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Datenbank-Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Option&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Bedeutung&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Benutzername&lt;br /&gt;
|&lt;br /&gt;
Der Name des Datenbankbenutzers.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Passwort&lt;br /&gt;
|&lt;br /&gt;
Das Passwort des Datenbankbenutzers.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
SQLRole&lt;br /&gt;
|&lt;br /&gt;
Der SQLRole-Name, der für die Datenbankverbindung verwendet wird.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Zeichensatz&lt;br /&gt;
|&lt;br /&gt;
Der Zeichensatz, der für die Datenbankverbindung verwendet wird.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Anmeldeaufforderung&lt;br /&gt;
|&lt;br /&gt;
Legt fest, ob für den Zugriff auf die Datenbank eine Anmeldung erforderlich ist.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Einstellungen&lt;br /&gt;
|&lt;br /&gt;
Zeigt die aktuellen Parameter an. Sie können weitere Parameter hinzufügen.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#004a80&amp;quot;&amp;gt;user_name=sysdba&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#004a80&amp;quot;&amp;gt;password=masterkey&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#004a80&amp;quot;&amp;gt;sql_role_name=finance&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#004a80&amp;quot;&amp;gt;lc_ctype=WIN1252&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen über Datenbankparameter finden Sie im InterBase-API-Handbuch.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:{{Product}} – Referenz]]&lt;br /&gt;
&lt;br /&gt;
[[en:IBDatabase Editor dialog box]]&lt;br /&gt;
[[fr:Boîte de dialogue Editeur IBDatabase]]&lt;br /&gt;
[[ja:データベースコンポーネント設定ダイアログボックス]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Bibliotheken_(TLib)&amp;diff=219968</id>
		<title>Bibliotheken (TLib)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Bibliotheken_(TLib)&amp;diff=219968"/>
		<updated>2024-12-20T08:42:46Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Projektoptionen (Dialogfeld)}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Projekt &amp;amp;gt; Optionen &amp;amp;gt; TLib}}&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie dieses Dialogfeld dazu, Bibliotheksoptionen (TLib) festzulegen. Diese Optionen stehen nur für statische Bibliotheken zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Optionen, die auf den Optionsseiten mit einem Sternchen (*) markiert sind, sind die Vorgabewerte.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Optionen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Ziel, Übernehmen, Speichern&lt;br /&gt;
|&lt;br /&gt;
Siehe [[Optionen für das Ziel|Optionen für das Ziel]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Gemeinsame Elemente&lt;br /&gt;
|&lt;br /&gt;
Siehe [[Gemeinsame Elemente auf den Projektoptionsseiten|Gemeinsame Elemente auf den Projektoptionsseiten]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;TLib-Optionen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
In Bibliothek Schreibweise beachten &amp;lt;br /&amp;gt;(/c)&lt;br /&gt;
|&lt;br /&gt;
Gibt bei Symbolen, die eine Berücksichtigung der Groß-/Kleinschreibung erfordern, eine Warnung aus. Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Mit dynamischer RTL linken&lt;br /&gt;
|&lt;br /&gt;
Steuert, ob die C RTL die Laufzeitbibliothek (cc3280.dll) statisch oder dynamisch linkt. Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Dateiname für Listing-Datei&lt;br /&gt;
|&lt;br /&gt;
Legt den Dateinamen des Listings fest. Klicken Sie auf die [[Image:ProjectOptionsEllipsis.jpg|Ellipse]] Popup-Schaltfläche, wie oben beschrieben.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Ohne Kommentardatensätze (/0)&lt;br /&gt;
|&lt;br /&gt;
Entfernt Kommentardatensätze. Entfernt zusätzliche Records, wie etwa Zeilennummern. Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Größe für Bibliotheksseite setzen &amp;lt;br /&amp;gt;(/P)&lt;br /&gt;
|&lt;br /&gt;
Setzt die Größe für die Bibliotheksseite. Vorgabe = 0x0010&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{f|cmd|&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[TLIB.EXE: Der Bibliotheksmanager|TLIB.EXE: Der Bibliotheksmanager]] }}&lt;br /&gt;
&lt;br /&gt;
[[Category:RAD Studio – Referenz]]&lt;br /&gt;
&lt;br /&gt;
[[en:Librarian (TLib)]]&lt;br /&gt;
[[fr:Bibliothécaire (TLib)]]&lt;br /&gt;
[[ja:ライブラリアン（TLib）]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Grundlegende_syntaktische_Elemente_(Delphi)&amp;diff=218385</id>
		<title>Grundlegende syntaktische Elemente (Delphi)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Grundlegende_syntaktische_Elemente_(Delphi)&amp;diff=218385"/>
		<updated>2024-03-29T12:53:58Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
{{Parent|Grundlegende syntaktische Elemente - Index}}&lt;br /&gt;
{{DISPLAYTITLE:Grundlegende syntaktische Elemente ({{Delphi}})}}&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;#&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;$&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;&amp;amp;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;&#039;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;(&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;)&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;()&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;( )&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;*&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;+&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;,&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;:&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;=&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;@&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;[&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;]&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;[]&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;[ ]&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;^&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;{&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;{}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;{ }&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;(.&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;.)&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;(*&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;*)&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;_&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;and&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;else&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;inherited&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;packed&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;then&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;array&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;end&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;initialization&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;procedure&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;threadvar&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;as&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;except&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;inline&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;program&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;to&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;asm&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;exports&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;interface&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;property&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;try&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;begin&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;file&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;is&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;raise&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;type&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;case&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;final&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;label&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;record&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;unit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;class&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;finalization&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;library&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;repeat&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;unsafe&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;const&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;finally&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;mod&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;resourcestring&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;until&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;constructor&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;for&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;nil&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;sealed&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;uses&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;destructor&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;function&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;not&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;set&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;var&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;dispinterface&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;goto&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;object&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;shl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;while&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;div&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;if&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;of&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;shr&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;with&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;do&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;implementation&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;or&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;static&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;xor&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;downto&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;in&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;out&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;string&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;absolute&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;dynamic&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;local&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;platform&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;requires&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;abstract&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;export&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;message&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;private&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;resident&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;assembler&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;external&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;name&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;protected&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;safecall&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;automated&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;far&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;near&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;public&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;stdcall&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;cdecl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;forward&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;nodefault&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;published&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;stored&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;contains&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;implements&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;overload&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;read&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;varargs&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;default&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;index&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;override&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;readonly&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;virtual&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;deprecated&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;inline&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;package&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;register&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;write&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;dispid&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;library&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;pascal&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;reintroduce&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;writeonly&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;idetag id=&amp;quot;Integer&amp;quot; /&amp;gt;&lt;br /&gt;
Kombinationen, die sich aus den grundlegenden syntaktischen Elementen (den sogenannten &#039;&#039;Token&#039;&#039;) zusammensetzen, ergeben Ausdrücke, Deklarationen und Anweisungen.&lt;br /&gt;
Eine &#039;&#039;Anweisung&#039;&#039; beschreibt eine algorithmische Aktion, die innerhalb eines Programms ausgeführt werden kann. Ein &#039;&#039;Ausdruck&#039;&#039; ist eine syntaktische Einheit, die in einer Anweisung enthalten ist und einen Wert beschreibt. Eine &#039;&#039;Deklaration&#039;&#039; definiert einen Bezeichner (z.&amp;amp;nbsp;B. den Namen einer Funktion oder Variable), der in Ausdrücken und Anweisungen verwendet wird. Sie weist dem Bezeichner bei Bedarf auch Speicherplatz zu.&lt;br /&gt;
&lt;br /&gt;
Dieses Thema enthält einen Überblick über den Zeichensatz von Delphi und eine Beschreibung der Deklarationssyntax für folgende Komponenten:&lt;br /&gt;
&lt;br /&gt;
*Bezeichner&lt;br /&gt;
*Zahlen&lt;br /&gt;
*Zeichen-Strings&lt;br /&gt;
*Labels&lt;br /&gt;
*Quelltextkommentare&lt;br /&gt;
&lt;br /&gt;
==Der {{Delphi}}-Zeichensatz==&lt;br /&gt;
&lt;br /&gt;
Die {{Delphi}}-Sprache verwendet für ihren Zeichensatz die Unicode-Zeichencodierung mit alphabetischen und alphanumerischen Unicode-Zeichen und den Unterstrich. {{Delphi}} unterscheidet nicht zwischen Groß- und Kleinschreibung. Das Leerzeichen und die Steuerzeichen (U+0000 bis U+001F und U+000D, das Wagenrücklauf- bzw. Zeilenendezeichen) sind &amp;quot;Blanks&amp;quot; (leer).&lt;br /&gt;
&lt;br /&gt;
Der {{Variables|Product}}-Compiler akzeptiert eine Datei, die in UCS-2 oder UCS-4 codiert ist, wenn die Datei eine Byte-Reihenfolgenkennzeichnung (Byte Order Mark = BOM) enthält. Bei der Verwendung anderer Formate als UTF-8 kann jedoch die Compiliergeschwindigkeit beeinträchtigt werden. Alle Zeichen in einer in UCS-4 codierten Quelltextdatei müssen in UCS-2 ohne Ersatzpaare darstellbar sein. UCS-2-Codierungen mit Ersatzpaaren (einschließlich GB18030) werden nur akzeptiert, wenn die Compileroption &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;codepage&amp;lt;/span&amp;gt; angegeben ist.&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
&lt;br /&gt;
Im Prinzip ist ein Programm eine Folge von Token, die durch Trennzeichen voneinander getrennt sind. Token sind die kleinsten Texteinheiten in einem Programm. Ein Trennzeichen kann entweder ein Leerzeichen oder ein Kommentar sein. Prinzipiell ist die Trennung zweier Token durch ein Trennzeichen nicht in jedem Fall erforderlich. Das Quelltextfragment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 Size:=20;Price:=10;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ist beispielsweise korrekt. Aufgrund gängiger Konventionen und zugunsten der besseren Lesbarkeit sollte aber die folgende Schreibweise mit zwei Zeilen verwendet werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  Size := 20;&lt;br /&gt;
  Price := 10;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein Token ist ein Symbol, ein Bezeichner, ein reserviertes Wort, eine Direktive, eine Ziffer, ein Label oder eine String-Konstante. Außer bei String-Konstanten darf ein Trennzeichen nicht Teil eines Token sein. Zwei aufeinanderfolgende Bezeichner, reservierte Wörter, Ziffern oder Labels müssen durch ein oder mehrere Trennzeichen voneinander getrennt werden.&lt;br /&gt;
&lt;br /&gt;
===Spezielle Symbole===&lt;br /&gt;
&lt;br /&gt;
Symbole sind nicht alphanumerische Zeichen bzw. Zeichenpaare, die eine feste Bedeutung haben. Als spezielle Symbole gelten folgende Einzelzeichen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#004A80&amp;quot;&amp;gt;# $ &amp;amp;amp; &#039; ( ) * + , - . /&amp;amp;nbsp;:&amp;amp;nbsp;; &amp;amp;lt; = &amp;amp;gt; @ [ ] ^ { }&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die folgenden Zeichenpaare sind ebenfalls spezielle Symbole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#004A80&amp;quot;&amp;gt;(* (. *) .) .. //&amp;amp;nbsp;:= &amp;amp;lt;= &amp;amp;gt;= &amp;amp;lt;&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle enthält Symbolpaare aus {{Delphi}}, die gleichbedeutend sind (die Symbolpaare {} und (* *) sind Kommentarzeichen, die im folgenden Thema ausführlich beschrieben werden:&lt;br /&gt;
[[Grundlegende syntaktische Elemente (Delphi)#Kommentare und Compiler-Direktiven|Kommentare und Compiler-Direktiven]]):&lt;br /&gt;
&lt;br /&gt;
{| frame=&amp;quot;hsides&amp;quot; border=&amp;quot;1&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Spezielle Symbole&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
! &#039;&#039;&#039;Entsprechende spezielle Symbole&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[ &amp;amp;nbsp;&amp;amp;nbsp; ]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
(. &amp;amp;nbsp;&amp;amp;nbsp;.)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
{ &amp;amp;nbsp;&amp;amp;nbsp; }&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
(* &amp;amp;nbsp;&amp;amp;nbsp; *)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die öffnende eckige Klammer &#039;&#039;&#039;[&#039;&#039;&#039; ist gleichbedeutend mit dem Zeichenpaar, das aus einer öffnenden runden Klammer und einem Punkt besteht: &#039;&#039;&#039;(.&#039;&#039;&#039;.&lt;br /&gt;
              &lt;br /&gt;
&lt;br /&gt;
Die schließende eckige Klammer &#039;&#039;&#039;]&#039;&#039;&#039; ist gleichbedeutend mit dem Zeichenpaar, das aus einem Punkt und einer schließenden runden Klammer besteht: &#039;&#039;&#039;.)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die öffnende geschweifte Klammer &#039;&#039;&#039;{&#039;&#039;&#039; ist gleichbedeutend mit dem Zeichenpaar, das aus einer öffnenden runden Klammer und einem Sternchen besteht: &#039;&#039;&#039;(*&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die schließende geschweifte Klammer &#039;&#039;&#039;}&#039;&#039;&#039; ist gleichbedeutend mit dem Zeichenpaar, das aus einem Sternchen und einer schließenden runden Klammer besteht: &#039;&#039;&#039;*)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Folgende Zeichen sind keine speziellen Symbole: &#039;&#039;&#039;%&#039;&#039;&#039;, &#039;&#039;&#039;?&#039;&#039;&#039;, &#039;&#039;&#039;\&#039;&#039;&#039;, &#039;&#039;&#039;!&#039;&#039;&#039;, &#039;&#039;&#039;&amp;quot;&#039;&#039;&#039; (Anführungszeichen), &#039;&#039;&#039;_&#039;&#039;&#039; (Unterstrich), &#039;&#039;&#039;| &#039;&#039;&#039;(Pipe) und &#039;&#039;&#039;~&#039;&#039;&#039; (Tilde).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bezeichner===&lt;br /&gt;
&lt;br /&gt;
Bezeichner werden für Konstanten, Variablen, Felder, Typen, Eigenschaften, Prozeduren, Funktionen, Programme, Units, Bibliotheken und Packages verwendet. Obwohl ein Bezeichner beliebig lang sein kann, sind nur die ersten 255 Zeichen signifikant. Ein Bezeichner muss mit einem alphabetischen Zeichen, einem Unicode-Zeichen oder einem Unterstrich (&#039;&#039;&#039;_&#039;&#039;&#039;) beginnen und darf keine Leerzeichen enthalten. Auf das erste Zeichen können alphanumerische Zeichen, Unicode-Zeichen, Ziffern und Unterstriche folgen. Reservierte Wörter dürfen nicht als Bezeichner verwendet werden.&lt;br /&gt;
Da die Groß-/Kleinschreibung in {{Delphi}} nicht berücksichtigt wird, sind beispielsweise für den Bezeichner &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;CalculateValue&amp;lt;/span&amp;gt; folgende Schreibweisen zulässig:&lt;br /&gt;
&lt;br /&gt;
  CalculateValue&lt;br /&gt;
  calculateValue&lt;br /&gt;
  calculatevalue&lt;br /&gt;
  CALCULATEVALUE&lt;br /&gt;
&lt;br /&gt;
Da Unit-Namen Dateinamen entsprechen, kann eine unterschiedliche Schreibweise zu Compilierungsfehlern führen. Weitere Informationen finden Sie im Abschnitt [[Programme und Units#Unit-Referenzen_und_die_uses-Klausel|Unit-Referenzen und die uses-Klausel]] in [[Programme und Units|Programme und Units (Delphi)]].&lt;br /&gt;
&lt;br /&gt;
====Qualifizierte Bezeichner====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie einen Bezeichner verwenden, der an mehreren Stellen deklariert wurde, muss dieser unter Umständen qualifiziert werden. Die Syntax für einen qualifizierten Bezeichner lautet:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bezeichner1.Bezeichner2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dabei qualifiziert &#039;&#039;Bezeichner1&#039;&#039; den &#039;&#039;Bezeichner2&#039;&#039;. Angenommen, zwei Units deklarieren eine Variable namens &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;CurrentValue&amp;lt;/span&amp;gt;. Mit der folgenden Anweisung legen Sie fest, dass auf &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;CurrentValue&amp;lt;/span&amp;gt; in &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;Unit2&amp;lt;/span&amp;gt; zugegriffen werden soll:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 Unit2.CurrentValue&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bezeichner können über mehrere Ebenen qualifiziert werden. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 Form1.Button1.Click&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dieser Anweisung wird die Methode &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;Click&amp;lt;/span&amp;gt; in &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;Button1&amp;lt;/span&amp;gt; von &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;Form1&amp;lt;/span&amp;gt; aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie einen Bezeichner nicht qualifizieren, wird seine Interpretation von den Regeln für den Gültigkeitsbereich festgelegt, die im Abschnitt [[Deklarationen und Anweisungen (Delphi)#Blöcke und Gültigkeitsbereich|Blöcke und Gültigkeitsbereich]] unter [[Deklarationen und Anweisungen (Delphi)|Deklarationen und Anweisungen (Delphi)]] beschrieben sind.&lt;br /&gt;
&lt;br /&gt;
====Erweiterte Bezeichner====&lt;br /&gt;
&lt;br /&gt;
Sie könnten auf Bezeichner (z. B. Typen oder Methoden in Klassen) stoßen, die denselben Namen wie ein reserviertes Wort von {{Delphi}} haben. Eine Klasse könnte beispielsweise eine Methode mit dem Namen &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;begin&amp;lt;/span&amp;gt; haben. Da &#039;&#039;&#039;begin&#039;&#039;&#039; aber in {{Delphi}} ein reserviertes Wort ist, darf es nicht als Name für einen Bezeichner verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den Bezeichner vollständig qualifizieren, dann besteht kein Problem. Um beispielsweise das reservierte {{Delphi}}-Wort &#039;&#039;&#039;type&#039;&#039;&#039; als Bezeichnername zu verwenden, müssen Sie den voll qualifizierten Namen angeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 var TMyType.type&lt;br /&gt;
 // Using a fully qualified name avoids ambiguity with {{Delphi}} language keyword.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ampersandoperator (&#039;&#039;&#039;&amp;amp;amp;&#039;&#039;&#039;) kann als eine kürzere Alternative zum Auflösen der Doppeldeutigkeit zwischen Bezeichnern und reservierten {{Delphi}}-Wörtern verwendet werden. Das &#039;&#039;&#039;&amp;amp;amp;&#039;&#039;&#039; verhindert, dass ein Schlüsselwort als Schlüsselwort (d. h., als reserviertes Wort) behandelt wird. Wenn Sie auf eine Methode oder einen Typ mit demselben Namen wie ein {{Delphi}}-Schlüsselwort stoßen, können Sie die Namespace-Spezifikation weglassen. Sie müssen dann aber dem Bezeichnernamen ein Ampersand voranstellen. Wenn Sie aber einen Bezeichner mit demselben Namen wie ein Schlüsselwort &#039;&#039;&#039;deklarieren&#039;&#039;&#039;, dann &amp;lt;i&amp;gt;müssen&amp;lt;/i&amp;gt; Sie das &amp;lt;b&amp;gt;&amp;amp;amp;&amp;lt;/b&amp;gt; verwenden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 type&lt;br /&gt;
  &amp;amp;Type = Integer;&lt;br /&gt;
  // Prefix with &#039;&amp;amp;&#039; is ok.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reservierte Wörter===&lt;br /&gt;
&lt;br /&gt;
Die folgenden reservierten Wörter können weder neu definiert noch als Bezeichner verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reservierte Wörter in {{Delphi}}:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| frame=&amp;quot;hsides&amp;quot; border=&amp;quot;1&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Ausdrücke (Delphi)#Logische_(bitweise)_Operatoren|and]]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#Verbundanweisungen|end]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Programme und Units#Der_interface-Abschnitt|interface]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Strukturierte Typen (Delphi)#Records_.28traditionelle.29|record]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Parameter (Delphi)#Parametersemantik|var]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Strukturierte Typen (Delphi)#Array-Typen|array]]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Exceptions (Delphi)#Exceptions_auslösen_und_behandeln|except]]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Klassenreferenzen#Der_Operator_is|is]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#repeat-Anweisungen|repeat]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#while-Anweisungen|while]]&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Klassenreferenzen#Der_Operator_as|as]]&amp;lt;br /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Dynamisch ladbare Bibliotheken schreiben|exports]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#Goto-Anweisungen|label]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarierte Konstanten#Ressourcenstrings|resourcestring]]&#039;&#039;&#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#with-Anweisungen|with]]&#039;&#039;&#039;  &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Assembler-Syntax|asm]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Strukturierte Typen (Delphi)#Dateitypen_(Win32)|file]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Dynamisch ladbare Bibliotheken schreiben|library]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;3&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Strukturierte Typen (Delphi)#Mengentypen|set]]&#039;&#039;&#039;  &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Ausdrücke (Delphi)#Logische_(bitweise)_Operatoren:|xor]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#Verbundanweisungen|begin]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Programme und Units#Der finalization-Abschnitt|finalization]]&#039;&#039;&#039; &amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Ausdrücke (Delphi)#Arithmetische Operatoren|mod]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Ausdrücke (Delphi)#Logische_(bitweise)_Operatoren|shl]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#case-Anweisungen|case]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Exceptions (Delphi)#Die Anweisung try...finally|finally]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Zeiger und Zeigertypen (Delphi)|nil]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Ausdrücke (Delphi)#Logische_(bitweise)_Operatoren|shr]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Klassen und Objekte (Delphi)|class]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#for-Anweisungen|for]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Ausdrücke (Delphi)#Logical_(Bitwise)_Operators|not]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[String|String]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarierte Konstanten|const]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Prozeduren und Funktionen (Delphi)|function]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Klassen und Objekte (Delphi)#Objekttypen|object]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#if-Anweisungen|then]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Klassen und Objekte (Delphi)|constructor]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#Goto-Anweisungen|goto]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;of&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Variables (Delphi)#Thread-Variablen|threadvar]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Klassen und Objekte (Delphi)|destructor]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#if-Anweisungen|if]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Ausdrücke (Delphi)#Logische_(bitweise)_Operatoren|or]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#for-Anweisungen|to]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Automatisierungsobjekte|dispinterface]]&#039;&#039;&#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Programme und Units#Der_implementation-Abschnitt|implementation]]&#039;&#039;&#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Strukturierte Typen (Delphi)|packed]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Exceptions (Delphi)|try]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Ausdrücke (Delphi)#Arithmetische Operatoren|div]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[In|In]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Prozeduren und Funktionen (Delphi)|procedure]]&#039;&#039;&#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Einfache Typen (Delphi)#Aufzählungstypen|type]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#for-Anweisungen|do]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Methoden (Delphi)#Inherited|inherited]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Programme und Units|program]]&#039;&#039;&#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Programme und Units|unit]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#for-Anweisungen|downto]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Programme und Units#Der_initialization-Abschnitt|initialization]]&#039;&#039;&#039; &amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Eigenschaften (Delphi)|property]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#repeat-Anweisungen|until]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#if-Anweisungen|else]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Verwendung des integrierten Assemblers|inline]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Exceptions (Delphi)#Exceptions auslösen und behandeln|raise]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Programme und Units#Die_Syntax_der_uses-Klausel|uses]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Neben den Wörtern in der obigen Tabelle gelten [[Klassen und Objekte (Delphi)#Sichtbarkeit_von_Klassenelementen|in Objekttypdeklarationen]] auch &#039;&#039;&#039;private&#039;&#039;&#039;, &#039;&#039;&#039;protected&#039;&#039;&#039;, &#039;&#039;&#039;public&#039;&#039;&#039;, &#039;&#039;&#039;published&#039;&#039;&#039; und &#039;&#039;&#039;automated&#039;&#039;&#039; als reservierte Wörter. In allen anderen Fällen werden sie als Direktiven behandelt. Die Wörter &#039;&#039;&#039;at&#039;&#039;&#039; und &#039;&#039;&#039;on&#039;&#039;&#039; haben ebenfalls eine besondere Bedeutung. Die Schlüsselwörter &#039;&#039;&#039;of object&#039;&#039;&#039; werden verwendet, um [[Prozedurale Typen#Methodenzeiger|Methodenzeiger]] zu definieren.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Direktiven===&lt;br /&gt;
&lt;br /&gt;
In {{Delphi}} werden verschiedene Typen von Direktiven verwendet. So versteht man unter einer Direktive z. B. ein Wort, das an bestimmten Stellen des Quelltextes besonders behandelt wird. Direktiven dieses Typs haben in {{Delphi}} eine spezielle Bedeutung. Sie werden aber im Gegensatz zu reservierten Wörtern nur in Umgebungen verwendet, in denen benutzerdefinierte Bezeichner nicht auftreten können. Aus diesem Grund lassen sich Bezeichner definieren, die wie Direktiven lauten. Dieses Vorgehen ist allerdings nicht empfehlenswert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Direktiven:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| frame=&amp;quot;hsides&amp;quot; border=&amp;quot;1&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Variables (Delphi)#Absolute_Adressen|absolute]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;export&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;12&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Dynamisch ladbare Bibliotheken schreiben|name]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Klassen und Objekte (Delphi)#Sichtbarkeit_von_Klassenelementen|public]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Prozeduren und Funktionen (Delphi)#Aufrufkonventionen|stdcall]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Methoden (Delphi)#Abstrakte_Methoden|abstract]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Prozeduren und Funktionen (Delphi)#external-Deklarationen|external]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;near&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Klassen und Objekte (Delphi)#Sichtbarkeit_von_Klassenelementen|published]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Klassen und Objekte (Delphi)#Sichtbarkeitsbezeichner_&amp;quot;strict&amp;quot;|strict]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;assembler&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;12&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;far&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Eigenschaften (Delphi)|nodefault]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Eigenschaften (Delphi)|read]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Eigenschaften (Delphi)#Speicherbezeichner|stored]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Klassen und Objekte (Delphi)#automated-Elemente_(nur_Win32)|automated]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Methoden (Delphi)#Final_Methods|final]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Überladene Operatoren (Delphi)|operator]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;10&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Automatisierungsobjekte#Eigenschaften_für_Dispatch-Interfaces|readonly]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Automatische Referenzzählung in mobilen Delphi-Compilern|unsafe]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Prozeduren und Funktionen (Delphi)#Aufrufkonventionen|cdecl]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Prozeduren und Funktionen (Delphi)|forward]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Parameter (Delphi)#Ausgabeparameter|out]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Anonyme Methoden in Delphi|reference]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;9&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Prozeduren und Funktionen (Delphi)#external-Deklarationen|varargs]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Packages (Delphi)#Die_contains-Klausel|contains]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;7&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Unterstützende Klassen und Records (Delphi)|helper]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;8&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039; [[Methoden (Delphi)#Methoden_überladen|overload]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Prozeduren und Funktionen (Delphi)#Aufrufkonventionen|register]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Methoden (Delphi)#Virtuelle_und_dynamische_Methoden|virtual]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Eigenschaften (Delphi)|default]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Implements für die Delegation verwenden|implements]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Methoden überschreiben|override]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Methoden (Delphi)#Reintroduce|reintroduce]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Prozeduren und Funktionen (Delphi)#Aufrufkonventionen|winapi]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Bibliotheken und Packages (Delphi)#Verzögertes Laden|delayed]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Eigenschaften (Delphi)#Indexbezeichner|index]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Packages (Delphi)|package]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;7&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Packages (Delphi)#Die_requires-Klausel|requires]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;7&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Eigenschaften (Delphi)|write]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#Hinweis-Direktiven|deprecated]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;11&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Verwendung des integrierten Assemblers|inline]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;2&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Prozeduren und Funktionen (Delphi)#Aufrufkonventionen|pascal]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;resident&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Automatisierungsobjekte#Eigenschaften_für_Dispatch-Interfaces|writeonly]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Automatisierungsobjekte|dispid]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Dynamisch ladbare Bibliotheken schreiben|library]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;3&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;11&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#Hinweis-Direktiven|platform]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;11&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Prozeduren und Funktionen (Delphi)#Aufrufkonventionen|safecall]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Dynamische Methoden|dynamic]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;local&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;4&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Klassen und Objekte (Delphi)#Sichtbarkeit_von_Klassenelementen|private]]&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Klassen und Objekte (Delphi)#Klassentypen|sealed]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Deklarationen und Anweisungen (Delphi)#Hinweis-Direktiven|experimental]]&#039;&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;&#039;11&#039;&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Methoden (Delphi)#Botschaftsmethoden|message]]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Klassen und Objekte (Delphi)#Sichtbarkeit_von_Klassenelementen|protected]]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[[Methoden (Delphi)#CKlassenstatische Methoden|static]]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Hinweise:&#039;&#039;&#039;&amp;amp;nbsp; &#039;&#039;&#039;1.&#039;&#039;&#039; &#039;&#039;&#039;far&#039;&#039;&#039;, &#039;&#039;&#039;near&#039;&#039;&#039; und &#039;&#039;&#039;resident&#039;&#039;&#039; sind obsolet.&amp;amp;nbsp; &#039;&#039;&#039;2.&#039;&#039;&#039; &#039;&#039;&#039;[[Verwendung des integrierten Assemblers|inline]]&#039;&#039;&#039; wird am Ende von Prozedur- und Funktionsdeklarationen wie eine Direktive verwendet, um die Prozedur oder Funktion für das Inlinig zu markieren{{f|radstudio|, wurde aber in Turbo Pascal zu einem reservierten Wort}}.&amp;amp;nbsp; &#039;&#039;&#039;3.&#039;&#039;&#039; &#039;&#039;&#039;[[Dynamisch ladbare Bibliotheken schreiben|library]]&#039;&#039;&#039; ist auch ein Schlüsselwort, wenn es als erstes Token im Projektquelltext verwendet wird; es kennzeichnet eine DLL. Ansonsten kennzeichnet es ein Symbol, damit es bei Verwendung eine Bibliothekswarnung erzeugt.&amp;amp;nbsp; &#039;&#039;&#039;4.&#039;&#039;&#039; &#039;&#039;&#039;local&#039;&#039;&#039; war eine Kylix-Direktive und wird in {{Delphi}} für Win32 ignoriert.&amp;amp;nbsp; &#039;&#039;&#039;5.&#039;&#039;&#039; &#039;&#039;&#039;[[Klassen und Objekte (Delphi)#Klassentypen|sealed]]&#039;&#039;&#039; ist eine Klassendirektive mit der Syntax: &#039;class sealed&#039;. Eine &amp;quot;sealed&amp;quot;-Klasse darf nicht erweitert oder abgeleitet werden (so wie &amp;lt;code&amp;gt;final&amp;lt;/code&amp;gt; in C++). &#039;&#039;&#039;6.&#039;&#039;&#039; &#039;&#039;&#039;[[Prozeduren und Funktionen (Delphi)#Aufrufkonventionen|winapi]]&#039;&#039;&#039; legt die Standardaufrufkonvention für die Plattform fest. So entspricht z. B. &#039;&#039;&#039;winapi&#039;&#039;&#039; &#039;&#039;&#039;stdcall&#039;&#039;&#039; für für Win32. &#039;&#039;&#039;7.&#039;&#039;&#039; &#039;&#039;&#039;[[Packages (Delphi)|package]]&#039;&#039;&#039; kennzeichnet, wenn es als erstes Token verwendet wird, ein Package und aktiviert die Package-Syntax. &#039;&#039;&#039;[[Packages (Delphi)#requires-Klausel|requires]]&#039;&#039;&#039; und &#039;&#039;&#039;[[Packages (Delphi)#contains-Klausel|contains]]&#039;&#039;&#039; sind nur in der Package-Syntax Direktiven. &#039;&#039;&#039;8.&#039;&#039;&#039; &#039;&#039;&#039;helper&#039;&#039;&#039; gibt an: [[Unterstützende Klassen und Records (Delphi)|&amp;quot;class helper for&amp;quot;]]. &#039;&#039;&#039;9.&#039;&#039;&#039; &#039;&#039;&#039;[[Anonyme Methoden in Delphi|reference]]&#039;&#039;&#039; gibt eine Referenz auf eine Funktion oder Prozedur an. &#039;&#039;&#039;10&#039;&#039;&#039;. &#039;&#039;&#039;[[Überladene Operatoren (Delphi)|operator]]&#039;&#039;&#039; gibt einen Klassenoperator an. &#039;&#039;&#039;11.&#039;&#039;&#039; &#039;&#039;&#039;platform&#039;&#039;&#039;, &#039;&#039;&#039;deprecated&#039;&#039;&#039;, &#039;&#039;&#039;experimental&#039;&#039;&#039; und &#039;&#039;&#039;library&#039;&#039;&#039; sind [[Deklarationen und Anweisungen (Delphi)#Hinweis-Direktiven|Hinweis- (oder Warnung-) Direktiven]]. Diese Direktiven erstellen Warnungen zur Compilierungszeit. &#039;&#039;&#039;12.&#039;&#039;&#039; &#039;&#039;&#039;assembler&#039;&#039;&#039;- und &#039;&#039;&#039;export&#039;&#039;&#039;-Direktiven haben keine Bedeutung. Sie existieren nur für die Abwärtskompatibilität.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Typen von Direktiven====&lt;br /&gt;
&lt;br /&gt;
{{Delphi}} verwendet neben dem in der Tabelle [[#Direktiven|Direktiven]] ausgeführten kontextbezogenen Typ zwei weitere Typen von Direktiven.&lt;br /&gt;
&lt;br /&gt;
Eine kontextbezogene &#039;&#039;&#039;Direktive&#039;&#039;&#039; kann auch ein Bezeichner sein (in der Regel kein Schlüsselwort), der am Ende einer Deklaration platziert wird, um die Bedeutung der Deklaration zu ändern. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  procedure P; forward;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  procedure M; virtual; override;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  property Foo: Integer read FFoo write FFoo default 42;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; Der letzte Direktiventyp stellt die offizielle &#039;&#039;&#039;[[Liste der Delphi-Compiler-Direktiven - Index|Compiler-Direktive]]&#039;&#039;&#039; dar. Eine Compiler-Direktive ist ein Schalter oder eine Option, die das Verhalten des Compilers beeinflusst. Compiler-Direktiven werden in geschweifte Klammern ({}) gesetzt und beginnen mit einem Dollarzeichen ($), z. B.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  {$POINTERMATH ON}&lt;br /&gt;
&lt;br /&gt;
  {$D+} // DEBUGINFO ON&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie die anderen Direktiventypen sind auch &#039;&#039;&#039;Compiler-Direktiven&#039;&#039;&#039; keine Schlüsselwörter. Ein Liste der Compiler-Direktiven finden Sie unter &#039;&#039;&#039;[[Liste der Delphi-Compiler-Direktiven - Index|Liste der {{Delphi}}-Compiler-Direktiven]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Zahlen===&lt;br /&gt;
&lt;br /&gt;
Integer- und Real-Konstanten lassen sich in dezimaler Notation als Folge von Ziffern ohne Kommas oder Leerzeichen darstellen. Das Vorzeichen wird durch den vorangestellten Operator &#039;&#039;&#039;+&#039;&#039;&#039; oder &#039;&#039;&#039;-&#039;&#039;&#039; angegeben. Werte sind per Vorgabe positiv (67258 ist also identisch mit +67258) und müssen im Bereich des größten vordefinierten Real- bzw. Integer-Typs liegen.&lt;br /&gt;
&lt;br /&gt;
Zahlen mit Nachkommastellen oder Exponenten bezeichnen Real-Konstanten. Andere Dezimalzahlen sind Integer-Konstanten. Bei Real-Typen wird die wissenschaftliche Notation (E oder e gefolgt von einem Exponenten) als &amp;quot;mal 10 hoch&amp;quot; gelesen. So bedeutet 7E2 beispielsweise 7 * 10^2, und 12,25e+6 oder 12,25e6 bedeutet 12,25 * 10^6. &lt;br /&gt;
&lt;br /&gt;
Das Dollarzeichen als Vorzeichen kennzeichnet eine hexadezimale Zahl, beispielsweise $8F. Hexadezimalzahlen ohne vorausgehenden unären Operator &#039;&#039;&#039;-&#039;&#039;&#039; werden als positive Werte angesehen. Liegt ein Hexadezimalwert während einer Zuweisung außerhalb des Bereichs des empfangenden Typs, wird ein Fehler ausgelöst, ausgenommen bei &#039;&#039;&#039;Integer&#039;&#039;&#039; (32-Bit-Integer). Hier wird eine Warnung ausgelöst. In diesem Fall werden Werte, die den positiven Bereich für &#039;&#039;&#039;Integerwerte&#039;&#039;&#039; überschreiten, als negative Zahlen angesehen. Dieses Verfahren entspricht der Zweierkomplement-Darstellung von Ganzzahlen.&lt;br /&gt;
&lt;br /&gt;
Ausführliche Informationen über Real- und Integer-Typen finden Sie unter [[Überblick über Datentypen (Delphi)|Überblick über Datentypen (Delphi)]]. Informationen über die Datentypen von Zahlen finden Sie unter [[Deklarierte Konstanten|Deklarierte Konstanten]].&lt;br /&gt;
&lt;br /&gt;
===Labels===&lt;br /&gt;
&lt;br /&gt;
Als Label kann ein Bezeichner oder eine positive Integer-Zahl verwendet werden. Der {{Delphi}}-Compiler akzeptiert nummerische Label von 0 bis 4294967295 (uint32-Bereich).&lt;br /&gt;
&lt;br /&gt;
Label werden in &#039;&#039;&#039;goto&#039;&#039;&#039;-Anweisungen verwendet. Ausführliche Informationen über &#039;&#039;&#039;goto&#039;&#039;&#039;-Anweisungen und Labels finden Sie im Abschnitt [[Deklarationen und Anweisungen (Delphi)#Goto-Anweisungen|Goto-Anweisungen]] unter [[Deklarationen und Anweisungen (Delphi)|Deklarationen und Anweisungen]].&lt;br /&gt;
&lt;br /&gt;
===Zeichen-Strings===&lt;br /&gt;
&lt;br /&gt;
Ein Zeichen-String (auch String-Literal oder String-Konstante genannt) kann aus einem String in Anführungszeichen, einem Steuerzeichen-String oder einer Kombination aus beiden bestehen. Trennzeichen dürfen nur bei Strings in Anführungszeichen auftreten.&lt;br /&gt;
&lt;br /&gt;
Ein String in Anführungszeichen setzt sich aus einer Folge von Zeichen des ANSI- oder Multibyte-Zeichensatzes zusammen, die in einer Zeile stehen und in halbe Anführungszeichen eingeschlossen sein muss. Ein String in Anführungszeichen, der zwischen den halben Anführungszeichen kein Zeichen enthält, ist ein Null-String. Zwei in einem String in Anführungszeichen unmittelbar aufeinanderfolgende halbe Anführungszeichen stehen für ein einzelnes Anführungszeichen.&lt;br /&gt;
&lt;br /&gt;
Der String wird intern als ein in UTF-16 codierter Unicode-String dargestellt. Für Zeichen aus dem Basic Multilingual Plane (BMP) werden 2 Byte und für Zeichen, die nicht im BMP enthalten sind, 4 Byte benötigt.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
   &#039;Embarcadero&#039;        { Embarcadero }&lt;br /&gt;
   &#039;You&#039;&#039;ll see&#039;        { You&#039;ll see }&lt;br /&gt;
   &#039;アプリケーションを Unicode 対応にする&#039;&lt;br /&gt;
   &#039;&#039;&#039;&#039;                 { &#039; }&lt;br /&gt;
   &#039;&#039;                   { null string }&lt;br /&gt;
   &#039; &#039;                  { a space }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein Steuerzeichen-String ist eine Folge von einem oder mehreren Steuerzeichen. Jedes dieser Steuerzeichen besteht aus einem &#039;&#039;&#039;#&#039;&#039;&#039;-Symbol und einer vorzeichenlosen Integer-Konstante zwischen 0 und 65535 (dezimal) oder zwischen $0 und $FFFF (hexadezimal) in UTF-16-Codierung und bezeichnet das einem bestimmten Codewert entsprechende Zeichen. Jeder Integerwert wird in dem String intern durch 2 Byte dargestellt. Dies ist für die Darstellung von Steuerzeichen und Multibyte-Zeichen hilfreich. Der Steuerzeichen-String&lt;br /&gt;
&lt;br /&gt;
 #89#111#117&lt;br /&gt;
&lt;br /&gt;
entspricht dem folgenden String in Anführungszeichen:&lt;br /&gt;
&lt;br /&gt;
 &#039;You&#039;&lt;br /&gt;
&lt;br /&gt;
Sie können Strings in Anführungszeichen mit Steuerzeichen-Strings kombinieren und damit längere Strings bilden. Beispielsweise wird mit dem String&lt;br /&gt;
&lt;br /&gt;
 &#039;Line 1&#039;#13#10&#039;Line 2&#039;&lt;br /&gt;
&lt;br /&gt;
das Zeichen für einen Wagenrücklauf/Zeilenvorschub zwischen Zeile 1 und Zeile 2 eingefügt. Strings in Anführungszeichen lassen sich allerdings nicht auf diese Weise miteinander verbinden, weil ein Paar aufeinanderfolgender halber Anführungszeichen als ein einzelnes Zeichen interpretiert wird. (Für das Verketten von Strings in Anführungszeichen steht der Operator &#039;&#039;&#039;+&#039;&#039;&#039; zur Verfügung. Sie können die betreffenden Strings aber auch zu einem einzigen String in Anführungszeichen kombinieren.)&lt;br /&gt;
&lt;br /&gt;
Zeichen-Strings sind mit allen String-Typen und mit dem Typ &#039;&#039;&#039;PChar&#039;&#039;&#039; kompatibel. Weil der Typ &#039;&#039;&#039;AnsiString&#039;&#039;&#039; Multibyte-Zeichen, einen Zeichen-String mit einem Zeichen, Einzel- oder Multibyte, enthalten kann, ist er mit allen Zeichentypen kompatibel. Wenn die erweiterte Syntax aktiviert ist (mit der Compiler-Direktive &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;{$X+}&amp;lt;/span&amp;gt;), ist ein nicht leerer Zeichen-String der Länge n mit nullbasierten Arrays und gepackten Arrays mit n Zeichen kompatibel. Weitere Informationen finden Sie unter [[Überblick über Datentypen (Delphi)|Überblick über Datentypen (Delphi)]].&lt;br /&gt;
&lt;br /&gt;
==Kommentare und Compiler-Direktiven==&lt;br /&gt;
&lt;br /&gt;
Kommentare werden vom Compiler ignoriert. Dies gilt jedoch nicht für Kommentare, die als Trennzeichen (zur Trennung aufeinanderfolgender Token) oder als Compiler-Direktiven fungieren.&lt;br /&gt;
&lt;br /&gt;
Kommentare lassen sich auf verschiedene Arten kennzeichnen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 { Text between left and right braces is a comment. }&lt;br /&gt;
 (* Text between left-parenthesis-plus-asterisk and an&lt;br /&gt;
  asterisk-plus-right-parenthesis is also a comment *)&lt;br /&gt;
 // Text between double-slash and end of line is a comment.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gleiche Kommentararten können nicht verschachtelt werden. &amp;lt;code&amp;gt;(*{}*)&amp;lt;/code&amp;gt; dagegen schon. Diese Form ist nützlich zum Auskommentieren von Abschnitten, die ebenfalls Kommentare enthalten.&lt;br /&gt;
&lt;br /&gt;
Empfehlungen für die Verwendung der drei Kommentararten:&lt;br /&gt;
&lt;br /&gt;
*Doppelter Schrägstrich (//) Eignet sich zum Auskommentieren temporärer Änderungen, die während der Entwicklung vorgenommen wurden. Sie können im Quelltext-Editor mit der Tastenkombination &amp;lt;code&amp;gt;STRG+/&amp;lt;/code&amp;gt; (Nummernzeichen) diese Kommentarzeichen bequem einfügen. &lt;br /&gt;
*Klammer-Sternchen &amp;quot;(*...*)&amp;quot;: Eignet sich für Entwicklungskommentare und zum Auskommentieren eines Codeblocks, der andere Kommentare enthält. In diese Kommentarzeichen können mehrere Quelltextzeilen, einschließlich andere Kommentararten, eingeschlossen werden. Der gesamte Block wird vom Compiler ignoriert.&lt;br /&gt;
*Geschweifte Klammern ({}): Eignet sich zur Dokumentation des Quelltextes. Diese Kommentare sollen im Quelltext verbleiben.&lt;br /&gt;
&lt;br /&gt;
Ein Kommentar, in dem unmittelbar nach &#039;&#039;&#039;{&#039;&#039;&#039; oder &#039;&#039;&#039;(*&#039;&#039;&#039; ein Dollarzeichen (&#039;&#039;&#039;$&#039;&#039;&#039;) steht, ist eine Compiler-Direktive. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 {$WARNINGS OFF}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Direktive weist den Compiler an, keine Warnmeldungen zu generieren.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
*[[Ausdrücke (Delphi)|Ausdrücke (Delphi)]]&lt;br /&gt;
*[[Deklarationen und Anweisungen (Delphi)|Deklarationen und Anweisungen (Delphi)]]&lt;br /&gt;
*[[Programme und Units#Unit-Referenzen_und_die_uses-Klausel|Unit-Referenzen und die uses-Klausel]]&lt;br /&gt;
* [[Bibliotheken und Packages (Delphi)#Verzögertes_Laden|Verzögertes Laden]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:Delphi-Sprachreferenz]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Fundamental Syntactic Elements (Delphi)]]&lt;br /&gt;
[[fr:Eléments syntaxiques fondamentaux (Delphi)]]&lt;br /&gt;
[[ja:基本的な構文要素（Delphi）]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Native_FireMonkey-Steuerelemente&amp;diff=211571</id>
		<title>Native FireMonkey-Steuerelemente</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Native_FireMonkey-Steuerelemente&amp;diff=211571"/>
		<updated>2017-08-23T15:47:59Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|FireMonkey-Anwendungshandbuch}}&lt;br /&gt;
&lt;br /&gt;
In diesem Thema werden die &#039;&#039;&#039;nativen Steuerelemente&#039;&#039;&#039; von {{FM}} beschrieben.&lt;br /&gt;
&lt;br /&gt;
==Darstellung von nativen {{FM}}-Steuerelementen==&lt;br /&gt;
&lt;br /&gt;
{{FM}} bietet für bestimmte visuelle Komponenten eine native Darstellung.&lt;br /&gt;
&lt;br /&gt;
* Setzen Sie die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] auf {{Const|Styled}}, um das Steuerelement in der Standard-{{FM}}-Darstellung anzuzeigen. {{Const|Styled}} ist der Vorgabewert von [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]].&lt;br /&gt;
* Setzen Sie die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] auf {{Const|Platform}}, um dieses Steuerelement im nativen Stil anzuzeigen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Plattformen==&lt;br /&gt;
&lt;br /&gt;
Gegenwärtig unterstützen nur [[Native FireMonkey-iOS-Steuerelemente|iOS]] und [[Native FireMonkey-Windows-Steuerelemente|Windows]] native Steuerelemente. Der Wert der Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] hat auf anderen Plattformen keine Auswirkung.&lt;br /&gt;
&lt;br /&gt;
==Verfügbare native {{FM}}-Steuerelemente==&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter dem plattformspezifischen Thema:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;iOS&#039;&#039;&#039;: [[Native FireMonkey-iOS-Steuerelemente#Verfügbare native {{FM}}-iOS-Steuerelemente|Verfügbare native {{FM}}-iOS-Steuerelemente]].&lt;br /&gt;
* &#039;&#039;&#039;Windows&#039;&#039;&#039;: [[Native FireMonkey-Windows-Steuerelemente#Verfügbare native {{FM}}-Windows-Steuerelemente|Verfügbare native {{FM}}-Windows-Steuerelemente]].&lt;br /&gt;
&lt;br /&gt;
==Visuelle Änderungen an nativen Steuerelementen==&lt;br /&gt;
&lt;br /&gt;
Wenn die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] einer visuellen Komponente auf {{Const|Platform}} gesetzt wird, ändert sich die Darstellung dieses Steuerelements im [[Formular-Designer|Formular-Designer]], um anzuzeigen, dass es sich um ein natives Steuerelement handelt, und ein kleines telefonähnliches Symbol erscheint in der rechten unteren Ecke.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter dem plattformspezifischen Thema:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;iOS&#039;&#039;&#039;: [[Native FireMonkey-iOS-Steuerelemente#Visuelle Änderungen an nativen iOS-Steuerelementen|Visuelle Änderungen an nativen iOS-Steuerelementen]].&lt;br /&gt;
* &#039;&#039;&#039;Windows&#039;&#039;&#039;: [[Native FireMonkey-Windows-Steuerelemente#Visuelle Änderungen an nativen Windows-Steuerelementen|Visuelle Änderungen an nativen Windows-Steuerelementen]].&lt;br /&gt;
&lt;br /&gt;
==Hinzufügen von nativen Steuerelementen zu Anwendungen==&lt;br /&gt;
&lt;br /&gt;
So fügen Sie Ihrer Anwendung native Steuerelemente hinzu:&lt;br /&gt;
&lt;br /&gt;
# Fügen Sie dem Formular eine Komponente hinzu, die die native Darstellung unterstützt ([[#Verfügbare native {{FM}}-Steuerelemente|Liste der unterstützten Steuerelemente]]).&lt;br /&gt;
# Setzen Sie im [[Objektinspektor|Objektinspektor]] auf der Registerkarte &#039;&#039;&#039;Eigenschaften&#039;&#039;&#039; die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] auf {{Const|Platform}}. Die Darstellung der Komponente zur Entwurfszeit ändert sich (siehe [[#Visuelle Änderungen an nativen Steuerelementen|Visuelle Änderungen an nativen Steuerelementen]]).&lt;br /&gt;
# Führen Sie Ihre Anwendung auf einer [[#Unterstützte Plattformen|unterstützten Plattform]] aus.&lt;br /&gt;
&lt;br /&gt;
Alternativ können Sie den Wert von [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] zur Laufzeit ändern. Um die native Darstellung für ein [[lib_de:FMX.Edit.TEdit|TEdit]]-Steuerelement zu ändern, fügen Sie Ihrer Anwendung den folgenden Code hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
Edit1.ControlType := TPresentedControl.TControlType.Platform;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
Edit1-&amp;gt;ControlType = TPresentedControl::TControlType::Platform;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kombinieren nativer Steuerelemente mit nicht nativen Steuerelementen==&lt;br /&gt;
&lt;br /&gt;
Die gemeinsame Verwendung von nicht nativen Steuerelementen mit nativen Steuerelementen wird nicht empfohlen, weil die nativen Steuerelemente die Z-Reihenfolge des Formulars nicht unterstützen: Ein natives Steuerelement befindet sich immer über allen Steuerelementen auf dem Formular. Es gibt aber einige nicht native Steuerelemente, die Sie mit nativen Steuerelementen kombinieren können, weil sie die Z-Reihenfolge unterstützen.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter dem plattformspezifischen Thema:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;iOS&#039;&#039;&#039;: [[Native FireMonkey-iOS-Steuerelemente#Kombinieren nativer iOS-Steuerelemente mit nicht nativen Steuerelementen|Kombinieren nativer iOS-Steuerelemente mit nicht nativen Steuerelementen]].&lt;br /&gt;
* &#039;&#039;&#039;Windows&#039;&#039;&#039;: [[Native FireMonkey-Windows-Steuerelemente#Kombinieren nativer Windows-Steuerelemente mit nicht nativen Steuerelementen|Kombinieren nativer Windows-Steuerelemente mit nicht nativen Steuerelementen]].&lt;br /&gt;
&lt;br /&gt;
==Vorteile nativer Steuerelemente==&lt;br /&gt;
&lt;br /&gt;
Einige Steuerelemente unterstützen zusätzliche Funktionen, wenn sie als native Steuerelemente verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter dem plattformspezifischen Thema:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;iOS&#039;&#039;&#039;: [[Native FireMonkey-iOS-Steuerelemente#Vorteile von nativen iOS-Steuerelementen|Vorteile von nativen iOS-Steuerelementen]].&lt;br /&gt;
* &#039;&#039;&#039;Windows&#039;&#039;&#039;: [[Native FireMonkey-Windows-Steuerelemente#Vorteile von nativen Windows-Steuerelementen|Vorteile von nativen Windows-Steuerelementen]].&lt;br /&gt;
&lt;br /&gt;
==Beschränkungen nativer Steuerelemente==&lt;br /&gt;
&lt;br /&gt;
Bevor Sie die nativen Steuerelemente verwenden, sollten Sie die folgenden Beschränkungen beachten.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter dem plattformspezifischen Thema:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;iOS&#039;&#039;&#039;: [[Native FireMonkey-iOS-Steuerelemente#Beschränkungen von nativen iOS-Steuerelementen|Beschränkungen von nativen iOS-Steuerelementen]].&lt;br /&gt;
* &#039;&#039;&#039;Windows&#039;&#039;&#039;: [[Native FireMonkey-Windows-Steuerelemente#Beschränkungen von nativen Windows-Steuerelementen|Beschränkungen von nativen Windows-Steuerelementen]].&lt;br /&gt;
&lt;br /&gt;
==Themen==&lt;br /&gt;
&lt;br /&gt;
* [[Native FireMonkey-iOS-Steuerelemente|Native {{FM}}-iOS-Steuerelemente]]&lt;br /&gt;
* [[Native FireMonkey-Windows-Steuerelemente|Native {{FM}}-Windows-Steuerelemente]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|TPresentedControl.ControlType]]&lt;br /&gt;
* [[Anpassen der Darstellung von FireMonkey-Listenansichten|Anpassen der Darstellung von {{FM}}-Listenansichten]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
&lt;br /&gt;
* [[samp_en:FMX.NativeControls Sample|{{FM}} Native Controls]] (Beispiel)&lt;br /&gt;
&lt;br /&gt;
[[Category:Geräteübergreifend]]&lt;br /&gt;
[[Category:FMX]]&lt;br /&gt;
[[Category:IOS]]&lt;br /&gt;
[[Category:Seattle]]&lt;br /&gt;
&lt;br /&gt;
[[en:FireMonkey Native Controls]]&lt;br /&gt;
[[fr:Contrôles natifs de FireMonkey]]&lt;br /&gt;
[[ja:FireMonkey のネイティブ コントロール]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Sprachunterst%C3%BCtzung_f%C3%BCr_die_RAD_Studio-Bibliotheken_(C%2B%2B)&amp;diff=210205</id>
		<title>Sprachunterstützung für die RAD Studio-Bibliotheken (C++)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Sprachunterst%C3%BCtzung_f%C3%BCr_die_RAD_Studio-Bibliotheken_(C%2B%2B)&amp;diff=210205"/>
		<updated>2017-03-24T09:09:57Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|C++-Spezifikation - Index}}&lt;br /&gt;
&lt;br /&gt;
{{CBuilder}} nutzt die RAD-Fähigkeiten (Rapid Application Development, schnelle Anwendungsentwicklung) der in Object Pascal compilierten {{Product}}-Bibliotheken:&lt;br /&gt;
{{f|radstudio|&lt;br /&gt;
&lt;br /&gt;
* Die [[Einführung in die VCL (Visual Component Library)|visuelle Komponentenbibliothek (VCL)]] }}&lt;br /&gt;
* Die [[FireMonkey|FireMonkey-Anwendungsplattform]]&lt;br /&gt;
* Die [[Verwenden der RTL (Laufzeitbibliothek)|Laufzeitbibliothek (RTL)]]  &lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt der Hilfe:&lt;br /&gt;
&lt;br /&gt;
* Erläutert, wie die Sprachfunktionen, Konstrukte und Konzepte von Object Pascal in {{CBuilder}} zur Unterstützung dieser {{Product}}-Bibliotheken implementiert wurden.  &lt;br /&gt;
* Vergleicht die Objektmodelle von C++ und Object Pascal und beschreibt, wie {{CBuilder}} diese beiden Ansätze vereint. &lt;br /&gt;
* Beschreibt, wie die Sprachekonstrukte von Object Pascal in C++-Entsprechungen in {{CBuilder}} übersetzt wurden.&lt;br /&gt;
* Enthält Einzelheiten über Schlüsselworterweiterungen, die zur Unterstützung der Bibliotheken hinzugefügt wurden. Einige Erweiterungen, wir Closures und Eigenschaften, bieten - abgesehen von ihrer Unterstützung des bibliotheksbasierten Codes - nützliche Leistungsmerkmale.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Referenzen auf C++-Klassen, die von &#039;&#039;&#039;[[lib_de:System.TObject|System.TObject]]&#039;&#039;&#039; abgeleitet sind, verweisen auf Klassen, für die TObject der letzte, aber nicht zwangsläufig der unmittelbare Vorfahre ist. Aus Konsistenzgründen mit der Compiler-Diagnose werden solche Klassen als &#039;&#039;&#039;Klassen im {{Delphi}}-Stil&#039;&#039;&#039; bezeichnet. &lt;br /&gt;
&lt;br /&gt;
==Themen==&lt;br /&gt;
*[[C++- und Object Pascal-Modelle|C++- und Object Pascal-Modelle]]&lt;br /&gt;
** [[Vererbung und Interfaces|Vererbung und Interfaces]]&lt;br /&gt;
** [[Objektidentität und -instantiierung|Objektidentität und -instantiierung]]&lt;br /&gt;
** [[Objekterstellung für die C++Builder-Bibliotheken|Objekterstellung für die {{CBuilder}}-Bibliotheken]] &lt;br /&gt;
** [[Aufrufen virtueller Methoden in Konstruktoren für Basisklassen|Aufrufen virtueller Methoden in Konstruktoren für Basisklassen]]&lt;br /&gt;
** [[Objektfreigabe|Objektfreigabe]]&lt;br /&gt;
** [[AfterConstruction und BeforeDestruction|AfterConstruction und BeforeDestruction]]&lt;br /&gt;
** [[Virtuelle Klassenfunktionen|Virtuelle Klassenfunktionen]]&lt;br /&gt;
*[[Unterstützung für Object Pascal-Datentypen und Sprachkonzepte|Unterstützung für Object Pascal-Datentypen und Sprachkonzepte]]&lt;br /&gt;
** [[Typedefs|Typedefs]]&lt;br /&gt;
** [[Klassen, die die Sprache Object Pascal unterstützen|Klassen, die die Sprache Object Pascal unterstützen]]&lt;br /&gt;
** [[Object Pascal-Sprachentsprechungen in C++|Object Pascal-Sprachentsprechungen in C++]]&lt;br /&gt;
** [[Offene Arrays|Offene Arrays]]&lt;br /&gt;
** [[Unterschiedlich definierte Typen|Unterschiedlich definierte Typen]]&lt;br /&gt;
** [[Zuordnung der Delphi-Typen zu C++-Typen|Zuordnung der {{Delphi}}-Typen zu C++-Typen]]&lt;br /&gt;
** [[Delphi-Interfaces|{{Delphi}}-Interfaces]]&lt;br /&gt;
** [[Ressourcenstrings|Ressourcenstrings]]&lt;br /&gt;
** [[Standardparameter|Standardparameter]]&lt;br /&gt;
** [[Laufzeittypinformationen|Laufzeittypinformationen]]&lt;br /&gt;
** [[Nicht zugeordnete Typen|Nicht zugeordnete Typen]]&lt;br /&gt;
** [[Schlüsselwort-Erweiterungen in C++|Schlüsselwort-Erweiterungen in C++]]&lt;br /&gt;
** [[Die Schlüsselwort-Erweiterung declspec|Die Schlüsselwort-Erweiterung __declspec]]&lt;br /&gt;
** [[C++-Zuweisungsoperator mit gleicher Funktion wie der implizite Delphi-Operator|C++-Zuweisungsoperator mit gleicher Funktion wie der implizite {{Delphi}}-Operator]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=children /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Declspec(pascalimplementation)|__declspec(pascalimplementation)]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Sprachunterstutzung fur die RAD Studio-Bibliotheken (C++)}}&lt;br /&gt;
[[Category:C++-Referenz]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
&lt;br /&gt;
[[en:Language Support for the RAD Studio Libraries (C++)]]&lt;br /&gt;
[[fr:Prise en charge du langage pour les bibliothèques RAD Studio (C++)]]&lt;br /&gt;
[[ja:RAD Studio ライブラリに対する言語サポート（C++）]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Web-Services-Anwendungen_erstellen&amp;diff=210193</id>
		<title>Web-Services-Anwendungen erstellen</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Web-Services-Anwendungen_erstellen&amp;diff=210193"/>
		<updated>2017-03-21T15:41:04Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: Adjusted terminology&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Anwendungen, Komponenten und Bibliotheken erstellen - Index}}&lt;br /&gt;
&lt;br /&gt;
Webdienste (Web-Services) sind eigenständige modulare Anwendungen, die über ein Netzwerk (etwa das World Wide Web) verbreitet und aufgerufen werden können. Webdienste bieten umfassend definierte Schnittstellen, welche die verfügbaren Dienste beschreiben. Mithilfe von Webdiensten können Sie programmierbare Dienste über das Internet bereitstellen oder in Anspruch nehmen. Dabei nutzen Sie die Vorteile neuer Standards, wie XML, XML Schema, SOAP (Simple Object Access Protocol) und WSDL (Web Service Definition Language).&lt;br /&gt;
&lt;br /&gt;
Webdienste nutzen SOAP, ein standardisiertes einfaches Protokoll für den Austausch von Informationen in einer verteilten Umgebung. Als Kommunikationsprotokoll dient HTTP und mit XML werden die Remote-Procedure-Aufrufe programmiert.&lt;br /&gt;
&lt;br /&gt;
Mit {{Delphi}} können Sie Server erstellen, die Webdienste implementieren, sowie Clients, die diese Dienste anfordern. Ebenso können Clients für beliebige Server geschrieben werden, um Webdienste zu implementieren, die auf SOAP-Botschaften basieren, und Server, die Webdienste für beliebige Clients zur Verfügung stellen.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Web-Services verwenden|Web-Services verwenden]].&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Web-Broker-Anwendungen erstellen|Web-Broker-Anwendungen erstellen]]&lt;br /&gt;
[[Category:Windows-Entwicklerhandbuch]]&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
&lt;br /&gt;
[[en:Creating Web Services Applications]]&lt;br /&gt;
[[fr:Création d&#039;applications services Web]]&lt;br /&gt;
[[ja:Web サービス アプリケーションの作成]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Installationshinweise&amp;diff=209913</id>
		<title>Installationshinweise</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Installationshinweise&amp;diff=209913"/>
		<updated>2017-03-10T15:28:14Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Installation}}&lt;br /&gt;
&lt;br /&gt;
Diese Seite enthält wichtige Informationen, die Sie kennen müssen, bevor Sie {{Delphi}} {{MarketingVersion}}, {{CBuilder}} {{MarketingVersion}} oder {{Product}} {{MarketingVersion}} [[Installation|installieren]]. Die aktuelle Version dieser Seite finden Sie [{{fullurl:{{PAGENAME}}}} hier].&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; In diesem Dokument sowie in der übrigen [[Hilfe zur Hilfe|Dokumentation]] wird der Begriff &amp;quot;{{Product}}&amp;quot; für jedes der oben aufgelisteten Produkte verwendet.&lt;br /&gt;
&lt;br /&gt;
==Systemvoraussetzungen==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Voraussetzungen beziehen sich auf {{Product}}.&lt;br /&gt;
&lt;br /&gt;
Informationen über unterstützte Zielplattformen von {{Product}}-Projekten finden Sie unter &#039;&#039;&#039;[[Unterstützte Zielplattformen|Unterstützte Zielplattformen]]&#039;&#039;&#039; und &#039;&#039;&#039;[[Plattformvoraussetzungen für FireMonkey|Plattformvoraussetzungen für {{FM}}]]&#039;&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Informationen über unterstützte Datenbanksysteme finden Sie unter &#039;&#039;&#039;[[Übersicht (FireDAC)#Hauptfunktionen von FireDAC|Hauptfunktionen von FireDAC]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Hardwarevoraussetzungen===&lt;br /&gt;
&lt;br /&gt;
Für {{Product}} ist mindestens Folgendes erforderlich:&lt;br /&gt;
&lt;br /&gt;
* 1,6 GHz oder schnellerer Prozessor&lt;br /&gt;
* 1 GB RAM&lt;br /&gt;
* Zwischen 6 GB und 60 GB¹ verfügbarer Festplattenspeicherplatz &lt;br /&gt;
* Für DirectX 11 geeignete Grafikkarte mit der Auflösung 1024x768 oder höher&lt;br /&gt;
&lt;br /&gt;
===Betriebssystemvoraussetzungen===&lt;br /&gt;
&lt;br /&gt;
Sie können {{Product}} unter den folgenden Versionen von Windows ausführen:&lt;br /&gt;
&lt;br /&gt;
* Windows 10&lt;br /&gt;
* Windows 8 und 8.1&lt;br /&gt;
* Windows 7 SP1&lt;br /&gt;
*: &#039;&#039;&#039;Tipp:&#039;&#039;&#039; Sie können eine virtuelle Maschine mit einer der unterstützten Versionen von Windows verwenden, um {{Product}} auf anderen Plattformen auszuführen. Für die Entwicklung von [[FireMonkey|{{FM}}]]-Projekten muss Ihre Virtualisierungs-Software einen direkten Zugriff auf die Host-GPU bereitstellen.&lt;br /&gt;
&lt;br /&gt;
Ihr Windows-System muss folgendermaßen konfiguriert sein:&lt;br /&gt;
&lt;br /&gt;
* Der Benutzer, der {{Product}} installiert, muss der Systemadministrator sein oder auf der Administratorberechtigungsliste stehen.&lt;br /&gt;
*&amp;lt;p&amp;gt;Die [http://www.computerhope.com/issues/ch000549.htm {{Code|PATH}}-Umgebungsvariable (EN)] darf bis zu 1830 Zeichen lang sein.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Bei der Installation von {{Product}} werden der {{Code|PATH}}-Umgebungsvariable bis zu 218 Zeichen hinzugefügt. Wenn die {{Code|PATH}}-Umgebungsvariable länger als 2048 Zeichen ist, [https://software.intel.com/en-us/articles/limitation-to-the-length-of-the-system-path-variable zeigt Ihr System ein unerwartetes Verhalten (EN)].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Voraussetzungen für unterstützte Zielplattformen===&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen für die Entwicklung von Projekten für [[Unterstützte Zielplattformen|unterstützte Zielplattformen]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Zielplattform&lt;br /&gt;
! Voraussetzungen&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
64-Bit-Windows&lt;br /&gt;
|&lt;br /&gt;
* Entweder ein PC mit 64-Bit-Windows oder ein 32-Bit-PC, der mit einem PC mit 64-Bit-Windows verbunden ist.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
OS X&lt;br /&gt;
|&lt;br /&gt;
* Ein Intel-basierter Mac mit mehr als 2 GiB RAM, auf dem die folgenden Versionen von OS X ausgeführt werden:&lt;br /&gt;
** OS X 10.9 Mavericks&lt;br /&gt;
** OS X 10.10 Yosemite&lt;br /&gt;
** OS X 10.11 El Capitan&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
iOS&lt;br /&gt;
|&lt;br /&gt;
* Alle Voraussetzungen für die &#039;&#039;&#039;OS X&#039;&#039;&#039;-Unterstützung.&lt;br /&gt;
* [https://developer.apple.com/xcode/ Xcode (EN)] Version 6 oder später.&lt;br /&gt;
* Mitgliedschaft beim [[Teilnehmen am Apple-Entwicklerprogramm|Apple-Entwicklerprogramm]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Android&lt;br /&gt;
|&lt;br /&gt;
* Ein Android-Gerät, das auf einem ARMv7-Prozessor mit NEON-Unterstützung ausgeführt wird.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Voraussetzungen für andere Features===&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen für andere Features:&lt;br /&gt;
&lt;br /&gt;
* Sie müssen den [https://get2.adobe.com/flashplayer/ Adobe Flash Player installieren (EN)], um:&lt;br /&gt;
** Die &#039;&#039;&#039;Video-Tutorials&#039;&#039;&#039; abzuspielen.&lt;br /&gt;
** Den interaktiven Inhalt in [[Projektdokumentation erzeugen|Erzeugen der Dokumentation]] anzuzeigen.&lt;br /&gt;
* Für die Unterstützung von &#039;&#039;&#039;[[FireMonkey 3D|{{FM}} 3D]]&#039;&#039;&#039; muss Ihr System Ressourcen mit einer Größe von über 4 GiB zulassen und die Indizes aller Ressourcen bei 32 Bit beibehalten.&lt;br /&gt;
* Um [[Importieren eines Projekts im IBM Rational Rose-Format (MDL)|Modelle im IBM Rational Rose-Format (MDL) zu importieren]], müssen Sie die [https://java.com/en/download/ JRE (Java Runtime Environment) installieren (EN)].&lt;br /&gt;
*: &#039;&#039;&#039;Tipp:&#039;&#039;&#039; Die JRE wird automatisch installiert, wenn Sie die Unterstützung für die Android-Zielplattform installieren.&lt;br /&gt;
&lt;br /&gt;
==Weitere Software==&lt;br /&gt;
&lt;br /&gt;
Die {{Product}}-Installation enthält weitere Software. In {{Product}} können Sie zudem nach der Installation weitere zusätzliche Software installieren. Einzelheiten zu weiterer {{Product}}-Software finden Sie unter [[Software-Add-ins von Fremdherstellern|Software-Add-ins von Fremdherstellern]].&lt;br /&gt;
&lt;br /&gt;
===Immer installierte zusätzliche Software===&lt;br /&gt;
&lt;br /&gt;
Die folgende zusätzliche Software wird immer mit {{Product}} installiert:&lt;br /&gt;
&lt;br /&gt;
* [[Beyond Compare|Beyond Compare]]&lt;br /&gt;
* [[Indy|Internet Direct (Indy)]]&lt;br /&gt;
&lt;br /&gt;
[https://www.microsoft.com/en-us/download/details.aspx?id=21 Microsoft .NET Framework 3.5 (EN)] wird installiert, wenn es auf Ihrem System nicht gefunden wird.&lt;br /&gt;
&lt;br /&gt;
Wenn Ihre {{Product}}-Installation die C++-Unterstützung enthält, wird mit {{Product}} auch die [[Dinkumware Standard-C++-Bibliothek|Dinkumware Standard-C++-Bibliothek]] installiert.&lt;br /&gt;
&lt;br /&gt;
===Optionale zusätzliche Software===&lt;br /&gt;
&lt;br /&gt;
Die in der folgenden Tabelle aufgeführte zusätzliche Software ist in bestimmten Editionen von {{Product}} enthalten. Der größte Teil davon kann nach der Installation von {{Product}} mit [[Feature-Manager|Feature-Manager]], [[GetIt-Package-Manager|GetIt-Package-Manager]] oder die Software kann von [http://downloads.embarcadero.com/Products.aspx?prodid=22 CodeCentral (EN)] heruntergeladen werden. Bestimmte Software kann auch bei der {{Product}}-Installation installiert werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Software&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Verfügbarkeit&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Wichtige Hinweise&lt;br /&gt;
|-&lt;br /&gt;
! Installationsprogramm&lt;br /&gt;
! GetIt&lt;br /&gt;
! CodeCentral&lt;br /&gt;
! Offline-Installationsprogramm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#Windows 10 SDK|Windows 10 SDK]]&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
Siehe den Abschnitt [[Installationshinweise#Windows 10 SDK|Windows 10 SDK]].&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#Android JDK, SDK, NDK | Android SDK {{AndroidToolsRevision}} - NDK ({{AndroidNDKVersion}})]]&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
Siehe den Abschnitt [[Installationshinweise#Android JDK.2C SDK.2C NDK|Android JDK, SDK, NDK]].&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#Android JDK, SDK, NDK | Java Development Kit 1.8]]&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
Siehe den Abschnitt [[Installationshinweise#Android JDK.2C SDK.2C NDK|Android JDK, SDK, NDK]].&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Boost|Boost]] (C++)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;center&amp;gt;[http://altd.embarcadero.com/releases/radstudio/18.0/boost_18.zip Herunterladen (EN)]&amp;lt;/center&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[CodeSite|CodeSite Express 5.2]] &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
DUnit Unit-Test-Frameworks ([[Überblick über DUnit|DUnit]] und [[Überblick über DUnitX|DUnitX]])&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[FastReport|FastReport 5.0]] ([[VCL|VCL]]) &lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;center&amp;gt;[http://cc.embarcadero.com/item/30500 Download]&amp;lt;/center&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
Siehe den Abschnitt [[Installationshinweise#FastReport .28VCL.29- und TeeChart Standard-Abhängigkeit|Abhängigkeit mit TeeChart-Funktionen]].&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
InterBase Express (IBX)-Komponenten&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
InterBase XE7 Developer Edition&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[IntraWeb-Einführung - Index|IntraWeb]]&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[TeeChart|TeeChart Standard]]&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
DB PowerStudio Developer Edition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;center&amp;gt;[http://altd.embarcadero.com/download/DBPowerStudio/DBPowerStudioDev_v1601.zip Download]&amp;lt;/center&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
ER/Studio Developer Edition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;center&amp;gt;[http://altd.embarcadero.com/download/radstudio/10.1/erde_1602.exe Download]&amp;lt;/center&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[FastReport|FastReport 5.0]] (FMX {{Company}}-Edition für [[FireMonkey|{{FM}}]])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;center&amp;gt;[http://cc.embarcadero.com/item/30501 Download]&amp;lt;/center&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[http://docwiki.embarcadero.com/HTML5_Builder/en/Main_Page HTML5 Builder XE5]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;center&amp;gt;[http://altd.embarcadero.com/download/html5builder/html5_builder_xe5_win.zip Download]&amp;lt;/center&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[http://www.nsoftware.com/ipworks/ IP*Works! (EN)]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;center&amp;gt;[http://cc.embarcadero.com/item/30498 Download für {{Delphi}}]&amp;lt;/center&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[http://cc.embarcadero.com/item/30499 Download für C++]&amp;lt;/center&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Hinweise:&#039;&#039;&#039;&lt;br /&gt;
:* Software von &#039;&#039;&#039;CodeCentral&#039;&#039;&#039; steht möglicherweise nicht für alle Editionen von {{Product}} zur Verfügung. Nach der [[Installation|Installation von {{Product}}]] finden Sie ausführlichere Informationen in der Datei {{Path|{{InstallPath}}\available_downloads_{{CONTENTLANGUAGE}}.html}}.&lt;br /&gt;
&lt;br /&gt;
====Windows 10 SDK====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die C++-Unterstützung für {{Product}} installieren, öffnet das {{Product}}-Installationsprogramm das Installationsprogramm für das Windows 10 SDK.&lt;br /&gt;
&lt;br /&gt;
Sie müssen das Windows 10 SDK installieren, um die vollständigen Windows API-Header-Dateien zu erhalten.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das Windows 10 SDK nicht installieren möchten, schließen Sie das Installationsprogramm für das Windows 10 SDK einfach.&lt;br /&gt;
&lt;br /&gt;
====Android JDK, SDK, NDK====&lt;br /&gt;
&lt;br /&gt;
Wenn Ihre {{Product}}-Installation Android-Unterstützung enthält, bietet das {{Product}}-Installierungsprogramm auch weitere Software, die zur Android-Entwicklung auf der [[Installationsprogramm für Features#Seite &amp;quot;Weitere Auswahl&amp;quot;|Seite &amp;quot;Weitere Auswahl&amp;quot;]] benötigt wird:&lt;br /&gt;
&lt;br /&gt;
* Android SDK {{AndroidToolsRevision}} - NDK ({{AndroidNDKVersion}}).&lt;br /&gt;
* Java Development Kit 1.8.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
:* Sie können diese Features später mit dem [[Feature-Manager|Feature-Manager]] installierren.&lt;br /&gt;
:* Selbst wenn Sie einen JDK bereits installiert haben, installieren Sie mit der Auswahl von &#039;&#039;&#039;Java Development Kit 1.8&#039;&#039;&#039; diese Version von JDK und modifizieren den aktuellen JDK-Pfad.&lt;br /&gt;
:* Wenn Sie die Android-Entwicklungs-Tools installieren möchten, werden Sie dazu aufgefordert, die entsprechenden Lizenzen zu akzeptieren.&lt;br /&gt;
&lt;br /&gt;
====[[FastReport|FastReport]]- ([[VCL|VCL]]) und [[TeeChart|TeeChart Standard]]-Abhängigkeit====&lt;br /&gt;
&lt;br /&gt;
[[FastReport|FastReport]] verwendet einige Komponenten von [[TeeChart|TeeChart Standard]]. Wählen Sie [[TeeChart|TeeChart Standard]] zusammen mit [[FastReport|FastReport]] aus, um beie Funktionen in {{product}} zu installieren, um alle Funktionalitäten von [[FastReport|FastReport]] einzusetzen.&lt;br /&gt;
&lt;br /&gt;
==Hinweise für die Registrierung==&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Update Subscription&amp;quot;-Plan===&lt;br /&gt;
&lt;br /&gt;
Wenn Sie über einen aktiven &#039;&#039;&#039;&amp;quot;Update Subscription&amp;quot;-Plan&#039;&#039;&#039; verfügen:&lt;br /&gt;
&lt;br /&gt;
* Wenn auf Ihrem Computer eine frühere Version von {{Product}} mit diesem &#039;&#039;&#039;&amp;quot;Update Subscription&amp;quot;-Plan&#039;&#039;&#039; installiert ist, ermittelt der Installationsexperte Ihre Lizenz automatisch.&lt;br /&gt;
* Andernfalls können Sie Ihre neue {{Product}}-Installation mit derselben Seriennummer wie Ihre frühere {{Product}}-Version, die Teil Ihres &#039;&#039;&#039;&amp;quot;Update Subscription&amp;quot;-Plans&#039;&#039;&#039; ist, registrieren.&lt;br /&gt;
&lt;br /&gt;
===Netzwerklizenzen===&lt;br /&gt;
&lt;br /&gt;
Wenn Sie eine Netzwerklizenz (verwaltet von [http://docwiki.embarcadero.com/ELC/53/en/Main_Page {{Company}} License Center (EN)], FLEXnet oder AppWave) erworben haben, kopieren Sie die Netzwerklizenzdatei ({{Path|named*.slip}} oder {{Path|concurrent*.slip}}), die Sie vom Lizenzserveradministrator erhalten haben, auf das System, auf dem Sie {{Product}} installieren möchten.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Nur das &#039;&#039;&#039;Offline-Installationsprogramm&#039;&#039;&#039; unterstützt Netzwerklizenzen. Weitere Informationen zu verfügbaren Installationsprogrammen finden Sie unter [[Installation#Auswählen_eines_Installationsprogramms|Auswählen eines Installationsprogramms]].&lt;br /&gt;
&lt;br /&gt;
Gehen Sie während der [[Installation|{{Product}}-Installation]], wenn Sie aufgefordert werden, Ihre Lizenzinformationen einzugeben, wie folgt vor:&lt;br /&gt;
&lt;br /&gt;
# Wählen Sie &amp;quot;Ich habe eine gültige Lizenzdatei (.slip oder reg*.txt) zum Importieren&amp;quot;.&lt;br /&gt;
# Klicken Sie im Tool &#039;&#039;&#039;[[Embarcadero-Produktregistrierung#Lizenzmanager|{{Company}}-Produktregistrierung]]&#039;&#039;&#039;, das daraufhin geöffnet wird, auf &#039;&#039;&#039;Importieren&#039;&#039;&#039;.&lt;br /&gt;
# Suchen Sie Ihre Registrierungsdatei, wählen Sie sie aus, und klicken Sie auf &#039;&#039;&#039;Öffnen&#039;&#039;&#039;.&lt;br /&gt;
# Wenn Ihre Registrierungsdatei importiert wurde, klicken Sie auf &#039;&#039;&#039;OK&#039;&#039;&#039;, um das Tool &#039;&#039;&#039;{{Company}}-Produktregistrierung&#039;&#039;&#039; zu schließen.&lt;br /&gt;
# Führen Sie die verbleibenden Schritte im Installationsexperten aus, um Ihre Offline-Installation von {{Product}} abzuschließen.&lt;br /&gt;
&lt;br /&gt;
==Bekannte Installationsprobleme==&lt;br /&gt;
&lt;br /&gt;
===Fehler 0x800F0906, 0x800F081F und 0x800F0907 bei der Installation von .NET Framework 3.5===&lt;br /&gt;
&lt;br /&gt;
Falls bei der Installation von .NET Framework 3.5 einer der Fehler 0x800F0906, 0x800F081F oder 0x800F0907 auftritt, finden Sie unter [https://support.microsoft.com/en-en/kb/2734782 Microsoft Support - .NET Framework 3.5 installation error: 0x800F0906, 0x800F081F, 0x800F0907 (EN)] Informationen zum Beheben dieser Fehler.&lt;br /&gt;
&lt;br /&gt;
==Installieren von {{Product}}==&lt;br /&gt;
&lt;br /&gt;
Auf der Seite [{{fullurl:Installation}} Installation] der Online-Dokumentation finden Sie Installationsanweisungen.&lt;br /&gt;
&lt;br /&gt;
==Kontaktieren des Supports==&lt;br /&gt;
&lt;br /&gt;
[http://support.embarcadero.com Öffnen Sie eine Support-Anfrage], wenn Sie bei der Installation von {{Product}} auf Probleme stoßen.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Release-Hinweise|Release-Hinweise]]&lt;br /&gt;
* [[Neuerungen|Neuerungen]]&lt;br /&gt;
&lt;br /&gt;
* [[Plat en:Main Page#{{Product}} {{Version}}|Hotfixes und Workarounds für {{Version}}]]&lt;br /&gt;
&lt;br /&gt;
[[Category:{{Version}}]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=%C3%9Cberblick_zu_ThingPoint&amp;diff=202755</id>
		<title>Überblick zu ThingPoint</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=%C3%9Cberblick_zu_ThingPoint&amp;diff=202755"/>
		<updated>2016-03-22T11:00:41Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Enterprise Mobility Services (EMS)}}&lt;br /&gt;
Ein &#039;&#039;&#039;ThingPoint&#039;&#039;&#039; ist eine Anwendung, die Sie mithilfe verschiedener IoT-Features erstellen. Eine ThingPoint-Anwendung kann eine [[Iot:ThingConnect|ThingConnect]]-Komponente, [[EMS-EdgeModules|EMS-EdgeModules]]-Komponenten und deren [[Übersicht über EMS-Ressourcen|Ressourcen]] enthalten. &lt;br /&gt;
&lt;br /&gt;
Eine ThingPoint-Anwendung wird normalerweise in der Nähe von IoT-Geräten ausgeführt. ThingPoints stellen für benutzerdefinierten Code einen einfachen Zugriff zum Aufrufen von EMS bereit. Der benutzerdefinierte Code eines ThingPoint verwendet die [[Iot:ThingConnect|ThingConnect-Komponenten]] zum Koppeln von Geräten.&lt;br /&gt;
&lt;br /&gt;
Eine ThingPoint-Anwendung kann als Antwort auf eine REST-Anforderung von einer [[EMS-Client-Anwendung|EMS-Client-Anwendung]] aus dem [[EMS-Server|EMS-Server]] aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
[[File:ThingPoints.png|500px]]&lt;br /&gt;
&lt;br /&gt;
==Hauptmerkmale==&lt;br /&gt;
&lt;br /&gt;
Ein ThingPoint kann: &lt;br /&gt;
&lt;br /&gt;
* Durch REST-API-Aufrufe bilateral mit dem [[EMS-Server|EMS-Server]] kommunizieren. Eine ThingPoint-Anwendung mit EMS-EdgeModules kann auf Anforderungen eines EMS-Servers antworten.  &lt;br /&gt;
* Edge-Daten in einer SQL-Datenbank zwischenspeichern.&lt;br /&gt;
* Daten von sich in der Nähe befindenden [[Iot:ThingConnect|ThingConnect-Geräten]] sammeln.&lt;br /&gt;
* Die Vor- und Nachverarbeitung von IoT-Daten zulassen, während diese von den [[Iot:ThingConnect|ThingConnect-Geräten]] gesammelt werden.&lt;br /&gt;
* Gesammelte IoT-Daten anhand verschiedener Filterkriterien filtern.&lt;br /&gt;
&lt;br /&gt;
==Themen==&lt;br /&gt;
&lt;br /&gt;
* [[Entwickeln einer ThingPoint-Anwendung mit EMS|Entwickeln einer ThingPoint-Anwendung mit EMS]]&lt;br /&gt;
* [[Registrieren eines ThingPoint beim EMS-Server|Registrieren eines ThingPoint im EMS-Server]]&lt;br /&gt;
* [[Implementieren einer einfachen ThingPoint-Anwendung|Implementieren einer einfachen ThingPoint-Anwendung]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[EMS-EdgeModules|EMS-EdgeModules]]&lt;br /&gt;
* [[EMS-EdgeModules-Ressource|EMS-EdgeModules-Ressourcen]]&lt;br /&gt;
* [[samp_en:EMS.ThingPoint IoT Sample|EMS.ThingPoint IoT (Beispiel)]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Uberblick zu ThingPoints}}&lt;br /&gt;
[[Category:Berlin]]&lt;br /&gt;
&lt;br /&gt;
[[en:ThingPoints Overview]]&lt;br /&gt;
[[fr:Présentation des ThingPoints]]&lt;br /&gt;
[[ja:ThingPoint の概要]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Verwenden_eines_HTTP-Clients&amp;diff=201113</id>
		<title>Verwenden eines HTTP-Clients</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Verwenden_eines_HTTP-Clients&amp;diff=201113"/>
		<updated>2016-03-04T15:58:32Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: changed terms by Heidi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Verwenden der RTL in geräteübergreifenden Anwendungen}}&lt;br /&gt;
&lt;br /&gt;
Die RTL enthält zwei Komponenten, mit denen Sie HTTP-Anforderungen an Server senden und deren Antworten verwalten können:&lt;br /&gt;
&lt;br /&gt;
*  [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient|TNetHTTPClient]]&lt;br /&gt;
* [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest|TNetHTTPRequest]]&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Alternativ können Sie eine Instanz von [[lib_de:System.Net.HttpClient.THTTPClient|THTTPClient]] zum Verwalten Ihrer HTTP-Anforderungen verwenden.&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren Ihre Anwendung beim Entwurf==&lt;br /&gt;
&lt;br /&gt;
===Erstellen eines HTTP-Clients===&lt;br /&gt;
&lt;br /&gt;
Um einen HTTP-Client zu erstellen, mit dem Sie HTTP-Anforderungen senden können, ziehen Sie eine [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient|TNetHTTPClient]]-Komponente aus der &#039;&#039;&#039;[[Tool-Palette|Tool-Palette]]&#039;&#039;&#039; in ein Formular oder ein Datenmodul Ihrer Anwendung. Für die Komponente [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient|TNetHTTPClient]] ist keine Anfangskonfiguration erforderlich.&lt;br /&gt;
&lt;br /&gt;
===Erstellen und Konfigurieren von HTTP-Anforderungen===&lt;br /&gt;
&lt;br /&gt;
Sie müssen auch mindestens eine [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest|TNetHTTPRequest]]-Komponente in Ihr Formular oder Datenmodul aufnehmen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die neue HTTP-Anforderungs-Komponente eingefügt haben, doppelklicken Sie im &#039;&#039;&#039;[[Objektinspektor|Objektinspektor]]&#039;&#039;&#039; auf deren Eigenschaft [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.Client|Client]], damit der Wert auf die zuvor hinzugefügte HTTP-Client-Komponente gesetzt wird.&lt;br /&gt;
&lt;br /&gt;
Sie können eine beliebige Anzahl von Anforderungs-Komponenten verwenden. Wenn Sie mehrere unterschiedliche HTTP-Anforderungen senden müssen, wäre das geeignetere Vorgehen jedoch, nur eine HTTP-Anforderungs-Komponente zu verwenden und diese zur Laufzeit für jede Anforderung neu zu konfigurieren.&lt;br /&gt;
&lt;br /&gt;
==Senden einer Anforderung und Behandeln der Antwort==&lt;br /&gt;
&lt;br /&gt;
===Senden einer HTTP-Anforderung===&lt;br /&gt;
&lt;br /&gt;
Um eine HTTP-Anforderung zu senden, müssen Sie mindestens Folgendes angeben:&lt;br /&gt;
&lt;br /&gt;
* [[Wikipedia:Hypertext Transfer Protocol#Request methods|HTTP-Anforderungsmethoden]]&lt;br /&gt;
* Einen Ressourcen-URL&lt;br /&gt;
&lt;br /&gt;
Die HTTP-Anforderungsmethode bestimmt die Aktion, die der Server für die Ressource an dem angegebenen URL ausführen soll, z. B. Senden der Daten der Ressource oder Aktualisieren der Ressource mit Daten aus der Anforderung.&lt;br /&gt;
&lt;br /&gt;
Wie eine HTTP-Anforderung mit einer [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest|TNetHTTPRequest]]-Komponente gesendet wird, hängt von der HTTP-Anforderungsmethode ab, die Sie verwenden möchten.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Funktionen, die eine Anforderung senden, entweder [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.Execute|Execute]] oder methodenspezifische Funktionen, sind alle blockierend. Das heißt, diese Funktionen kehren erst zurück, wenn eine Antwort vom Server vorliegt. Siehe [[#Verfolgen des Fortschritts beim Herunterladen der Antwortdaten|Verfolgen des Fortschritts beim Herunterladen der Antwortdaten]] weiter unten.&lt;br /&gt;
&lt;br /&gt;
====Senden einer HTTP-Anforderung mit den HTTP-Anforderungsmethoden DELETE, GET, HEAD, OPTIONS oder TRACE====&lt;br /&gt;
&lt;br /&gt;
Die folgenden HTTP-Anforderungsmethoden benötigen als Eingabedaten nur den Zielressourcen-URL:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.7 DELETE (EN)]&lt;br /&gt;
* [http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3 GET (EN)]&lt;br /&gt;
* [http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4 HEAD (EN)]&lt;br /&gt;
* [http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.2 OPTIONS (EN)]&lt;br /&gt;
* [http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.8 TRACE (EN)]&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie Ihre Anforderung zuerst beim Entwurf, um eine HTTP-Anforderung mit einer dieser HTTP-Anforderungsmethoden zu senden:&lt;br /&gt;
&lt;br /&gt;
# Konfigurieren Sie die Eigenschaft [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.URL|URL]] mit dem URL der Zielressource.&lt;br /&gt;
# Konfigurieren Sie die Eigenschaft [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.MethodString|MethodString]] mit dem Namen der HTTP-Anforderungsmethode, die Sie verwenden möchten.&lt;br /&gt;
#: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Namen von HTTP-Anforderungsmethoden [http://tools.ietf.org/html/rfc7230 berücksichtigen die Groß-/Kleinschreibung (EN)].&lt;br /&gt;
&lt;br /&gt;
Rufen Sie dann &#039;&#039;&#039;[[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.Execute|Execute]]&#039;&#039;&#039; auf, um Ihre Anforderung zu senden.&lt;br /&gt;
&lt;br /&gt;
====Senden einer HTTP-Anforderung mit den HTTP-Anforderungsmethoden MERGE, PATCH oder PUT====&lt;br /&gt;
&lt;br /&gt;
Die folgenden HTTP-Anforderungsmethoden benötigen außer dem Zielressourcen-URL Eingabedaten:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6 PUT (EN)]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc5789 PATCH (EN)]&lt;br /&gt;
* [http://www.odata.org/documentation/odata-version-2-0/operations/#Operations MERGE (EN)]&lt;br /&gt;
&lt;br /&gt;
Um eine HTTP-Anforderung mit einer dieser HTTP-Anforderungsmethoden zu senden, rufen Sie die zugehörige Funktion auf (siehe die folgenden Tabelle). Geben Sie in Ihrem Aufruf den URL der Zielressource als erstes Argument und eine Instanz von [[lib_de:System.Classes.TStream|TStream]] als zweites Argument an.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! HTTP-Anforderungsmethode&lt;br /&gt;
! TNetHTTPRequest-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| PUT&lt;br /&gt;
| [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.Put|Put]]&lt;br /&gt;
|-&lt;br /&gt;
| PATCH&lt;br /&gt;
| [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.Patch|Patch]]&lt;br /&gt;
|-&lt;br /&gt;
| MERGE&lt;br /&gt;
| [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.Merge|Merge]]&lt;br /&gt;
|-&lt;br /&gt;
| PATCH über PUT*&lt;br /&gt;
| [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.PatchAlternative|PatchAlternative]]&lt;br /&gt;
|-&lt;br /&gt;
| MERGE über PUT*&lt;br /&gt;
| [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.MergeAlternative|MergeAlternative]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Einige HTTP-Proxies unterstützen die neuesten Standard-HTTP-Anforderungsmethoden (wie PATCH) oder Nicht-Standard-HTTP-Anforderungsmethoden (wie MERGE) nicht. In diesen Fällen können Sie die HTTP-Anforderungsmethoden über andere HTTP-Anforderungsmethoden tarnen. Dazu müssen in der Anforderung Header enthalten sein, die die gewünschte HTTP-Anforderungsmethode angeben.&lt;br /&gt;
&lt;br /&gt;
====Senden einer HTTP-Anforderung mit der HTTP-Anforderungsmethode POST====&lt;br /&gt;
&lt;br /&gt;
Die HTTP-Anforderungsmethode [http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5 POST (EN)] benötigt außer dem Zielressourcen-URL Eingabedaten.&lt;br /&gt;
&lt;br /&gt;
Um eine HTTP-Anforderung mit der HTTP-Anforderungsmethode POST zu senden, rufen Sie [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.Post|Post]] auf. In Ihrem Aufruf müssen Sie den URL der Zielressource als erstes Argument angeben. Die anderen Argumente hängen davon ab, wie Sie die Eingabedaten für Ihre Anforderung zur Verfügung stellen möchten:&lt;br /&gt;
&lt;br /&gt;
* Um den Inhalt einer lokalen Datei zu senden, geben Sie den lokalen Pfad zu dieser Datei als zweites Argument Ihres Aufrufs an.&lt;br /&gt;
* Um den Inhalt eines Streams zu senden, geben Sie Ihre Instanz von [[lib_de:System.Classes.TStream|TStream]] als zweites Argument Ihres Aufrufs an.&lt;br /&gt;
* Um Formulardaten zu senden, die entsprechend dem [http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.2 HTML 4-Standard (EN)] als [[Wikipedia:MIME#Multipart messages|mehrteilige MIME-Nachricht]] codiert sind, geben Sie Ihre Instanz von [[lib_de:System.Net.Mime.TMultipartFormData|TMultipartFormData]] als zweites Argument Ihres Aufrufs an.&lt;br /&gt;
* Um den Inhalt einer String-Liste zu senden, geben Sie Ihre Instanz von [[lib_de:System.Classes.TStrings|TStrings]] als zweites Argument Ihres Aufrufs an, und falls Ihre Strings nicht in UTF-8 codiert sind, geben Sie eine Instanz von [[lib_de:System.SysUtils.TEncoding|TEncoding]] als viertes Argument an. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;{{Delphi}}:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
NetHTTPRequest1.Post(&#039;http://www.example.com/rest/items&#039;, String1, nil, TEncoding.Default);&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;C++:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
NetHTTPRequest1-&amp;gt;Post(&amp;quot;http://www.example.com/rest/items&amp;quot;, String1, NULL, TEncoding::Default);&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Behandeln einer HTTP-Antwort===&lt;br /&gt;
&lt;br /&gt;
Wenn der Zielserver eine Antwort auf Ihre Anforderung sendet, wird das Ereignis [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.OnRequestCompleted|OnRequestCompleted]] Ihrer HTTP-Anforderungs-Komponente ausgelöst. Definieren Sie eine [[Ereignisbehandlungsroutinen|Ereignisbehandlungsroutine]] für dieses Ereignis, um die Daten aus der Serverantwort zu lesen. Wenn während Ihrer Anforderung ein Fehler auftritt, wird stattdessen das Ereignis [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.OnRequestError|OnRequestError]] Ihrer HTTP-Anforderungs-Komponente ausgelöst.&lt;br /&gt;
&lt;br /&gt;
Die Ereignisbehandlungsroutine von [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.OnRequestCompleted|OnRequestCompleted]] erhält zwei Parameter:&lt;br /&gt;
&lt;br /&gt;
* {{Arg|Sender}} ist Ihre HTTP-Anforderungs-Komponente.&lt;br /&gt;
* {{Arg|AResponse}} ist ein Objekt, das das Interface [[lib_de:System.Net.HttpClient.IHTTPResponse|IHTTPResponse]] implementiert.&lt;br /&gt;
&lt;br /&gt;
Sie können alle Antwortdaten aus {{Arg|AResponse}} abrufen:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Net.HttpClient.IHTTPResponse.Version|Version]] gibt die Version des HTTP-Protokolls an, das der Server verwendet.&lt;br /&gt;
* [[lib_de:System.Net.HttpClient.IHTTPResponse.StatusCode|StatusCode]] enthält den [[Wikipedia:List of HTTP status codes|Statuscode]] der Antwort, und [[lib_de:System.Net.HttpClient.IHTTPResponse.StatusText|StatusText]] enthält einen lesbaren Text, der den Status beschreibt, wie z. B. &amp;quot;OK&amp;quot; für den StatusCode 200.&lt;br /&gt;
* [[lib_de:System.Net.URLClient.IURLResponse.ContentAsString|ContentAsString]] enthält den Rumpf der Antwort als String. Sie können auch die Rohantwortdaten (einschließlich der Header und des Rumpfs) als Stream aus [[lib_de:System.Net.URLClient.IURLResponse.ContentStream|ContentStream]] lesen.&lt;br /&gt;
* Sie können die Antwort-Header mit [[lib_de:System.Net.URLClient.IURLResponse.Headers|Headers]], [[lib_de:System.Net.HttpClient.IHTTPResponse.HeaderValue|HeaderValue]], [[lib_de:System.Net.HttpClient.IHTTPResponse.ContainsHeader|ContainsHeader]] oder einer der folgenden Hilfseigenschaften lesen, die den Wert von allgemeinen HTTP-Antwort-Header-Feldern enthalten: [[lib_de:System.Net.HttpClient.IHTTPResponse.ContentCharSet|ContentCharSet]], [[lib_de:System.Net.HttpClient.IHTTPResponse.ContentEncoding|ContentEncoding]], [[lib_de:System.Net.HttpClient.IHTTPResponse.ContentLanguage|ContentLanguage]], [[lib_de:System.Net.HttpClient.IHTTPResponse.ContentLength|ContentLength]], [[lib_de:System.Net.HttpClient.IHTTPResponse.Date|Date]], [[lib_de:System.Net.HttpClient.IHTTPResponse.LastModified|LastModified]], [[lib_de:System.Net.URLClient.IURLResponse.MimeType|MimeType]].&lt;br /&gt;
* [[lib_de:System.Net.HttpClient.IHTTPResponse.Cookies|Cookies]] enthält die [[lib_de:System.Net.HttpClient.TCookies|Cookies]] der Serverantwort.&lt;br /&gt;
&lt;br /&gt;
==Verwalten von Cookies==&lt;br /&gt;
&lt;br /&gt;
Mit der Eigenschaft [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.AllowCookies|AllowCookies]] der HTTP-Client-Komponente können Sie festlegen, ob Sie die vom Server in der Antwort gesendeten Cookies akzeptieren möchten.&lt;br /&gt;
Wenn [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.AllowCookies|AllowCookies]] {{True}} ist, speichert der HTTP-Client die empfangenen Cookies in seinem [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.CookieManager|CookieManager]].&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der HTTP-Client fügt seine [[lib_de:System.Net.HttpClient.TCookieManager.Cookies|vorhandenen Cookies]] immer der Anforderung hinzu, unabhängig vom Wert von [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.AllowCookies|AllowCookies]].&lt;br /&gt;
&lt;br /&gt;
==Behandeln von Umleitungen==&lt;br /&gt;
&lt;br /&gt;
Mit der Eigenschaft [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.HandleRedirects|HandleRedirects]] steuern Sie, wie die HTTP-Client-Komponente Umleitungen behandelt. Der Standardwert ist {{True}}, was bedeutet, dass die HTTP-Client-Komponente Umleitungen automatisch folgt.&lt;br /&gt;
&lt;br /&gt;
Mit der Eigenschaft [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.MaxRedirects|MaxRedirects]] der HTTP-Client-Komponente geben Sie die maximale Anzahl an Umleitungen an, der die Komponente folgen darf. Wenn die HTTP-Client-Komponente die angegebene Anzahl an maximalen Umleitungen erreicht, löst sie eine Exception mit dem Typ [[lib_de:System.Net.HttpClient.ENetHTTPRequestException|ENetHTTPRequestException]] aus.&lt;br /&gt;
&lt;br /&gt;
==Behandeln des Herunterladens der Antwortdaten==&lt;br /&gt;
&lt;br /&gt;
Beim Herunterladen der Antwort auf Ihre Anforderung durch den HTTP-Client wird laufend das Ereignis [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.OnReceiveData|OnReceiveData]] Ihrer HTTP-Anforderung ausgelöst. Sehen Sie eine Ereignisbehandlungsroutine für [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.OnReceiveData|OnReceiveData]] vor, um den Fortschritt beim Herunterladen der Antwortdaten zu verfolgen. Ihre Ereignisbehandlungsroutine erhält die folgenden Parameter:&lt;br /&gt;
&lt;br /&gt;
* {{Arg|Sender}} ist Ihr HTTP-Anforderungsobjekt.&lt;br /&gt;
* {{Arg|AContentLength}} ist die erwartete Länge der Antwortdaten in Byte.&lt;br /&gt;
* {{Arg|AReadCount}} ist die Länge der Antwortdaten in Byte, die der HTTP-Client bisher heruntergeladen hat.&lt;br /&gt;
* {{Arg|Abort}} ist ein boolescher Parameter zum Abbrechen des Herunterladens.&lt;br /&gt;
&lt;br /&gt;
Am Ende des Herunterladens wird [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.OnReceiveData|OnReceiveData]] zum letzten Mal ausgelöst, und {{Arg|AContentLength}} und {{Arg|AReadCount}} enthalten die gleichen Werte. Kurz danach wird [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.OnRequestCompleted|OnRequestCompleted]] ausgelöst.&lt;br /&gt;
&lt;br /&gt;
===Verfolgen des Fortschritts beim Herunterladen der Antwortdaten===&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie zum Verfolgen des Fortschritts der heruntergeladenen Daten die Werte von {{Arg|AContentLength}} und {{Arg|AReadCount}} in der Ereignisbehandlungsroutine [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.OnReceiveData|OnReceiveData]].&lt;br /&gt;
In folgendem Beispiel wird der Prozentsatz der heruntergeladenen Daten berechnet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.NetHTTPRequest1ReceiveData(const Sender: TObject;&lt;br /&gt;
AContentLength, AReadCount: Int64; var Abort: Boolean);&lt;br /&gt;
var&lt;br /&gt;
    percentageDownloaded:Double;&lt;br /&gt;
begin&lt;br /&gt;
    if AContentLength &amp;gt; 0 then&lt;br /&gt;
        percentageDownloaded :=  (AReadCount / AContentLength) * 100;&lt;br /&gt;
    else&lt;br /&gt;
        // the server did not provide the Content-Length header&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::NetHTTPRequest1ReceiveData(TObject * const Sender, __int64 AContentLength,&lt;br /&gt;
     __int64 AReadCount, bool &amp;amp;Abort)&lt;br /&gt;
{&lt;br /&gt;
    float percentageDownloaded;&lt;br /&gt;
    if (AContentLength &amp;gt; 0)&lt;br /&gt;
    {&lt;br /&gt;
        percentageDownloaded = ((float)AReadCount / (float)AContentLength) * 100.f;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        // the server did not provide the Content-Length header&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abbrechen des Herunterladens der Antwortdaten===&lt;br /&gt;
&lt;br /&gt;
Ändern Sie in der Ereignisbehandlungsroutine [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.OnReceiveData|OnReceiveData]] den Wert von {{Arg|Abort}} in {{False}}, um das Herunterladen der Antwortdaten abzubrechen.&lt;br /&gt;
&lt;br /&gt;
==Senden einer Anforderung mit benutzerdefinierten Headern==&lt;br /&gt;
&lt;br /&gt;
Sie können sowohl mit der HTTP-Client-Komponente als auch mit der HTTP-Anforderungs-Komponente benutzerdefinierte Header festlegen. &lt;br /&gt;
Folgende benutzerdefinierte Header können Sie festlegen:&lt;br /&gt;
&lt;br /&gt;
* In der HTTP-Client-Komponente:&lt;br /&gt;
** [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.Accept|Accept]]&lt;br /&gt;
** [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.AcceptCharSet|AcceptCharSet]]&lt;br /&gt;
** [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.AcceptEncoding|AcceptEncoding]]&lt;br /&gt;
** [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.AcceptLanguage|AcceptLanguage]]&lt;br /&gt;
** [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.ContentType|ContentType]]&lt;br /&gt;
** [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.UserAgent|UserAgent]]&lt;br /&gt;
&lt;br /&gt;
* In der HTTP-Anforderungs-Komponente:&lt;br /&gt;
** [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.Accept|Accept]]&lt;br /&gt;
** [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.AcceptCharSet|AcceptCharSet]]&lt;br /&gt;
** [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.AcceptEncoding|AcceptEncoding]]&lt;br /&gt;
** [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.AcceptLanguage|AcceptLanguage]]&lt;br /&gt;
&lt;br /&gt;
Beim [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.Execute|Ausführen]] einer Anforderung kombiniert die Methode [[lib_de:System.Net.HttpClient.THTTPClient.Execute|THTTPClient.Execute]] des HTTP-Frameworks die benutzerdefinierten Header aus der HTTP-Client-Komponente und aus der entsprechenden HTTP-Anforderungs-Komponente und fügt diese Header der endgültigen Anforderung hinzu.&lt;br /&gt;
&lt;br /&gt;
==Behandeln von sicheren Verbindungen==&lt;br /&gt;
&lt;br /&gt;
Die HTTP-Client-Komponente unterstützt sichere Verbindungen (HTTPS). Das HTTP-Framework behandelt jede auftretende Zertifikatsanforderung automatisch und löst bei Bedarf das passende Ereignis aus:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.OnNeedClientCertificate|OnNeedClientCertificate]], wenn ein Server ein Zertifikat vom Client anfordert.&lt;br /&gt;
* [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.OnValidateServerCertificate|OnValidateServerCertificate]], wenn der Server ein ungültiges Zertifikat bereitstellt.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen über die Behandlung von Zertifikaten finden Sie in den Abschnitten [[Verwenden eines HTTP-Clients#Behandeln serverseitiger Zertifikate|Behandeln serverseitiger Zertifikate]] und [[Verwenden eines HTTP-Clients#Behandeln clientseitiger Zertifikate|Behandeln clientseitiger Zertifikate]].&lt;br /&gt;
&lt;br /&gt;
==Behandeln von Authentifizierung und Zertifikaten==&lt;br /&gt;
&lt;br /&gt;
===Behandeln der HTTP-Basiszugriffsauthentifizierung===&lt;br /&gt;
&lt;br /&gt;
Wenn Sie eine HTTP-Anforderung an einen Server senden, der eine [[Wikipedia:Basic access authentication|HTTP-Basiszugriffsauthentifizierung]] erfordert, wird das Ereignis [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.OnAuthEvent|OnAuthEvent]] Ihres HTTP-Client-Objekts ausgelöst. Um Ihre Anmeldedaten für den Zugriff zu übermitteln, erstellen Sie eine Ereignisbehandlungsroutine für dieses Ereignis. Falls der Wert des zweiten Parameters, den die Ereignisbehandlungsroutine erhält ({{Arg|AnAuthTarget}}), [[lib_de:System.Net.URLClient.TAuthTargetType|TAuthTargetType.Server]] ist, füllen Sie die Variablen {{Arg|AUserName}} und {{Arg|APassword}} mit Ihrem Benutzernamen und Passwort für den Proxy. Zum Beispiel:&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;{{Delphi}}:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.NetHTTPClient1AuthEvent(const Sender: TObject;&lt;br /&gt;
  AnAuthTarget: TAuthTargetType; const ARealm, AURL: string;&lt;br /&gt;
  var AUserName, APassword: string; var AbortAuth: Boolean;&lt;br /&gt;
  var Persistence: TAuthPersistenceType);&lt;br /&gt;
begin&lt;br /&gt;
  if AnAuthTarget = TAuthTargetType.Server then&lt;br /&gt;
  begin&lt;br /&gt;
    AUserName := &#039;MyUsername&#039;;&lt;br /&gt;
    APassword := &#039;1234&#039;;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;C++:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::NetHTTPClient1AuthEvent(TObject * const Sender,&lt;br /&gt;
  TAuthTargetType AnAuthTarget, const UnicodeString ARealm,&lt;br /&gt;
  const UnicodeString AURL, UnicodeString &amp;amp;AUserName, UnicodeString &amp;amp;APassword,&lt;br /&gt;
  bool &amp;amp;AbortAuth, TAuthPersistenceType &amp;amp;Persistence)&lt;br /&gt;
{&lt;br /&gt;
    if (AnAuthTarget == TAuthTargetType::Server) {&lt;br /&gt;
        AUserName = &amp;quot;MyUsername&amp;quot;;&lt;br /&gt;
        APassword = &amp;quot;1234&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihre Ereignisbehandlungsroutine erhält auch den Bereich des HTTP-Servers, für den eine Authentifizierung erforderlich ist ({{Arg|ARealm}}), und den Ziel-URL Ihrer Anforderung ({{Arg|AURL}}).&lt;br /&gt;
&lt;br /&gt;
Um die HTTP-Authentifizierung abzubrechen, ändern Sie den Wert von {{Arg|AbortAuth}} in {{False}}.&lt;br /&gt;
&lt;br /&gt;
===Senden einer Anforderung hinter einem Proxy===&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich hinter einem [[Wikipedia:Proxy server|Proxy]] befinden, für den eine Authentifizierung erforderlich ist, können Sie die [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.ProxySettings|Proxy-Einstellungen]] festlegen, die für die Authentifizierung verwendet werden.&lt;br /&gt;
Das folgende Beispiel zeigt das Vorgehen dabei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
NetHTTPClient1.ProxySettings := TProxySettings.Create(&#039;192.168.1.1&#039;, 8080, &#039;MyUserName&#039;, &#039;MyPassword&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
TProxySettings  MyProxySettings(&amp;quot;192.168.1.1&amp;quot;, 8080, &amp;quot;MyUserName&amp;quot;, &amp;quot;MyPassword&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
NetHTTPClient1-&amp;gt;ProxySettings = MyProxySettings;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine andere Möglichkeit zum Festlegen Ihrer Proxy-Einstellungen stellt ein URL-String mit den Proxy-bezogenen Informationen dar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
NetHTTPClient1.ProxySettings := TProxySettings.Create(&#039;http://MyUserName:MyPassword@192.168.1.1:8080&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
TProxySettings  MyProxySettings(&amp;quot;http://MyUserName:MyPassword@192.168.1.1:8080&amp;quot;);&lt;br /&gt;
NetHTTPClient1-&amp;gt;ProxySettings = MyProxySettings;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternativ können Sie die Anmeldeinformationen für die Proxy-Authentifizierung in der Ereignisbehandlungsroutine [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.OnAuthEvent|OnAuthEvent]] angeben. Siehe den Abschnitt [[Verwenden eines HTTP-Clients#Behandeln der HTTP-Basiszugriffsauthentifizierung|Behandeln der HTTP-Basiszugriffsauthentifizierung]]. Der Wert von {{Code|AnAuthTarget}} muss {{Const|TAuthTargetType.Proxy}} anstelle von {{Const|TAuthTargetType.Server}} sein.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Behandeln von System-Proxy-Einstellungen mit einem HTTP-Client&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der folgenden Tabelle wird erklärt, wie der HTTP-Client die System-Proxy-Einstellungen auf verschiedenen Plattformen behandelt:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Plattform&lt;br /&gt;
!Verhalten&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Windows&lt;br /&gt;
|&lt;br /&gt;
Der HTTP-Client verwendet die System-Proxy-Einstellungen. Sie können die System-Proxy-Einstellungen umgehen und alternative Proxy-Einstellungen für den HTTP-Client bereitstellen.&lt;br /&gt;
&lt;br /&gt;
Um die System-Proxy-Einstellungen zu umgehen, erstellen Sie Proxy-Einstellungen für den HTTP-Client und geben {{Code|&amp;lt;nowiki&amp;gt;http://direct&amp;lt;/nowiki&amp;gt;}} als URL an. &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
MAC OS X&lt;br /&gt;
|&lt;br /&gt;
Der HTTP-Client verwendet immer die System-Proxy-Einstellungen. Auch wenn Sie alternative Proxy-Einstellungen für den HTTP-Client bereitstellen, verwendet der HTTP-Client die System-Proxy-Einstellungen.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
iOS&lt;br /&gt;
|&lt;br /&gt;
Der HTTP-Client verwendet immer die System-Proxy-Einstellungen. Auch wenn Sie alternative Proxy-Einstellungen für den HTTP-Client bereitstellen, verwendet der HTTP-Client die System-Proxy-Einstellungen.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Android&lt;br /&gt;
|&lt;br /&gt;
Der HTTP-Client verwendet die System-Proxy-Einstellungen. Sie können diese Einstellungen nicht umgehen, aber Sie können alternative Proxy-Einstellungen für den HTTP-Client bereitstellen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Wenn das System keine Proxy-Einstellungen festlegt (die Verbindung ist direkt), wird dies auch als &amp;quot;Einstellung&amp;quot; betrachtet. Auf iOS oder MAC OS X ohne System-Proxy-Einstellungen können Sie beispielsweise keine Proxy-Einstellungen für den HTTP-Client bereitstellen. Die Einstellungen, die Sie bereitstellen, werden ignoriert, weil die Systemeinstellungen (die Einstellung &amp;quot;Kein Proxy&amp;quot;) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
===Verwalten der Speicherung von Benutzer-Anmeldeinformationen===&lt;br /&gt;
&lt;br /&gt;
Mit [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient|TNetHTTPClient]] können Sie Anmeldeinformationen für die HTTP- oder Proxy-Authentifizierung speichern. Gespeicherte [[lib_de:System.Net.URLClient.TCredentialsStorage.TCredential|Anmeldeinformationen]] können einen Benutzernamen, ein Passwort, einen [[lib_de:System.Net.URLClient.TAuthTargetType|Zieltyp für die Authentifizierung]], einen Bereich und einen Ziel-URL umfassen.&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel zeigt, wie mit [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.CredentialsStorage|TNetHTTPClient.CredentialsStorage]] Anmeldeinformationen gespeichert werden und dann mit diesen Anmeldeinformationen die Authentifizierung bei der Verbindung mit einem HTTP-Server, der eine grundlegende Authentifizierung erfordert, vorgenommen wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Erstellen der Anmeldeinformationen und Hinzufügen zu Ihrem Anmeldeinformationsspeicher:&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
NetHTTPClient1.CredentialsStorage.AddCredentials(TCredentialsStorage.TCredential.Create(TAuthTargetType.Server, &#039;&#039;, &#039;&#039;, &#039;MyUserName&#039;, &#039;MyPassword&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
TCredentialsStorage::TCredential *MyCredential = new TCredentialsStorage::TCredential(TAuthTargetType::Server, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;MyUserName&amp;quot;, &amp;quot;MyPassword&amp;quot;);&lt;br /&gt;
NetHTTPClient1-&amp;gt;CredentialsStorage-&amp;gt;AddCredential(*MyCredential);&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Verwenden der gespeicherten Anmeldeinformationen.&lt;br /&gt;
&lt;br /&gt;
Sie können beispielsweise eine [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.OnAuthEvent|OnAuthEvent]]-Ereignisbehandlungsroutine schreiben, in der Sie:&lt;br /&gt;
* Mit [[lib_de:System.Net.URLClient.TCredentialsStorage.FindAccurateCredential|TCredentialsStorage.FindAccurateCredential]] nach Anmeldeinformationen suchen, die dem erforderlichen Authentifizierungstyp entsprechen ({{Code|TAuthTargetType.Server}}).&lt;br /&gt;
* Den Benutzernamen und das Passwort aus den entsprechenden Anmeldeinformationen für die Authentifizierung verwenden.&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.NetHTTPClient1AuthEvent(const Sender: TObject;&lt;br /&gt;
  AnAuthTarget: TAuthTargetType; const ARealm, AURL: string; var AUserName,&lt;br /&gt;
  APassword: string; var AbortAuth: Boolean;&lt;br /&gt;
  var Persistence: TAuthPersistenceType);&lt;br /&gt;
var&lt;br /&gt;
    MyCredential: TCredentialsStorage.TCredential;&lt;br /&gt;
begin&lt;br /&gt;
    MyCredential := NetHTTPClient1.CredentialsStorage.FindAccurateCredential(AnAuthTarget, &#039;&#039;);&lt;br /&gt;
    AUserName := MyCredential.UserName;&lt;br /&gt;
    APassword := MyCredential.Password;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm2::NetHTTPClient1AuthEvent(TObject * const Sender, TAuthTargetType AnAuthTarget,&lt;br /&gt;
  const UnicodeString ARealm, const UnicodeString AURL,&lt;br /&gt;
  UnicodeString &amp;amp;AUserName, UnicodeString &amp;amp;APassword, bool &amp;amp;AbortAuth,&lt;br /&gt;
  TAuthPersistenceType &amp;amp;Persistence)&lt;br /&gt;
{&lt;br /&gt;
    TCredentialsStorage::TCredential MyCredential;&lt;br /&gt;
&lt;br /&gt;
    MyCredential = NetHTTPClient1-&amp;gt;CredentialsStorage-&amp;gt;FindAccurateCredential(AnAuthTarget, &amp;quot;&amp;quot;);&lt;br /&gt;
    AUserName = MyCredential.UserName;&lt;br /&gt;
    APassword = MyCredential.Password;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Behandeln serverseitiger Zertifikate===&lt;br /&gt;
&lt;br /&gt;
Wenn der Server ein SSL-Zertifikat bereitstellt, dieses Zertifikat aber ungültig ist, wird das Ereignis [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.OnValidateServerCertificate|OnValidateServerCertificate]] ausgelöst. Erstellen Sie eine Ereignisbehandlungsroutine für {{Code|OnValidateServerCertificate}}, damit Sie das Serverzertifikat ({{Arg|Certificate}}) überprüfen und festlegen können, ob Sie es akzeptieren oder nicht. Wenn Sie das Serverzertifikat akzeptieren, ändern Sie den Wert des Parameters {{Arg|Accept}} in {{True}}.&lt;br /&gt;
&lt;br /&gt;
===Behandeln clientseitiger Zertifikate===&lt;br /&gt;
&lt;br /&gt;
Wenn für den Server ein Client-Zertifikat erforderlich ist, wird das Ereignis [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.OnNeedClientCertificate|OnNeedClientCertificate]] ausgelöst. Erstellen Sie eine Ereignisbehandlungsroutine für {{Code|OnNeedClientCertificate}}, damit Sie Ihre Liste der Client-Zertifikate ({{Arg|ACertificateList}}) überprüfen und das Zertifikat festlegen können, das Sie an den Server senden möchten. Um ein Zertifikat aus der Liste zu senden, ändern Sie den Wert von {{Arg|AnIndex}} in den Index des Zielzertifikats in {{Arg|ACertificateList}}.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Wenn die HTTP-Methode der ersten Anforderung an einen Server, der ein clientseitiges Zertifikat erfordert, nicht HEAD oder GET (z. B. POST) ist, lautet der Statuscode der Serverantwort 413. Senden Sie immer zuerst eine HEAD- oder GET-Anforderung. Eine HEAD-Anforderung ist normalerweise vorzuziehen, weil weniger Daten übertragen werden.&lt;br /&gt;
&lt;br /&gt;
==Asynchrones Ausführen von Anforderungen==&lt;br /&gt;
&lt;br /&gt;
Anforderungen sind standardmäßig synchron. Beim Start Ihrer Anforderung wird die Ausführung der Anwendung gestoppt und nur fortgesetzt, wenn Sie eine Antwort vom Server oder eine Zeitüberschreitung für die Anforderung erhalten.&lt;br /&gt;
&lt;br /&gt;
Wenn Ihre Anforderungen asynchron sein sollen, damit die Anforderungen nicht bei der Ausführung gestoppt werden, müssen Sie die Eigenschaft [[lib_de:System.Net.HttpClientComponent.TNetHTTPClient.Asynchronous|Asynchronous]] der Client-Komponente oder die Eigenschaft [[lib_de:System.Net.HttpClientComponent.TNetHTTPRequest.Asynchronous|Asynchronous]] der Anforderungskomponente aktivieren, abhängig von der Komponente, mit der Sie Ihre Anforderung ausführen möchten.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Net.URLClient|System.Net.URLClient]]&lt;br /&gt;
* [[lib_de:System.Net.HttpClient|System.Net.HttpClient]]&lt;br /&gt;
* [[lib_de:System.Net.HttpClientComponent|System.Net.HttpClientComponent]]&lt;br /&gt;
&lt;br /&gt;
* [[Verwenden von App-Tethering|Verwenden von App-Tethering]]&lt;br /&gt;
* [[Verwenden von Bluetooth|Verwenden von Bluetooth]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Geräteübergreifend]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Using an HTTP Client]]&lt;br /&gt;
[[fr:Utilisation d&#039;un client HTTP]]&lt;br /&gt;
[[ja:HTTP クライアントの使用]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Anpassen_der_Darstellung_von_FireMonkey-Listenansichten&amp;diff=201108</id>
		<title>Anpassen der Darstellung von FireMonkey-Listenansichten</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Anpassen_der_Darstellung_von_FireMonkey-Listenansichten&amp;diff=201108"/>
		<updated>2016-03-04T11:59:09Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: changed terms by Heidi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|FireMonkey-Anwendungsdesign}}&lt;br /&gt;
__TOC__&lt;br /&gt;
Sie können die Darstellung einer {{FM}}-&#039;&#039;&#039;Listenansicht&#039;&#039;&#039; anpassen, indem Sie das Layout der Listeneinträge, wie den Titel, die zugehörigen Bilder, Textdetails oder das Zusatzsymbol, ändern.&lt;br /&gt;
&lt;br /&gt;
[[File:AndroidScreen.png|320px|320px]] &lt;br /&gt;
[[File:LBListView Android.png|320px|320px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Anpassen der Darstellungseigenschaften von Listenansichten==&lt;br /&gt;
&lt;br /&gt;
Beim Entwurf können Sie die Darstellung der Fußzeile, der Kopfzeile und der Listeneinträge (auch für den Bearbeitungsmodus) ändern, indem Sie die Werte der Eigenschaften in der Eigenschaft [[lib_de:FMX.ListView.TAppearanceListView.ItemAppearance|ItemAppearance]] anpassen. &lt;br /&gt;
Die Eigenschaft ItemAppearance steuert die Darstellungsgröße der Fußzeile, der Kopfzeile und der Einträge (im Anzeige- und im Bearbeitungsmodus).&lt;br /&gt;
&lt;br /&gt;
Die folgenden Darstellungseigenschaften einer Listenansicht (TListView) sind im &#039;&#039;&#039;[[Objektinspektor|Objektinspektor]]&#039;&#039;&#039; und in der &#039;&#039;&#039;[[Strukturansicht|StructureView]]&#039;&#039;&#039; gruppiert, und Sie können deren Werte ändern, um die Darstellung der Listenansicht individuell anzupassen.&lt;br /&gt;
&lt;br /&gt;
===Eigenschaften für Fußzeilen===&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.FooterHeight|FooterHeight]]. Diese Eigenschaft legt die Höhe (in Pixel) für die Fußzeile der Liste fest. Vorgabewert: {{Const|24}}.&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.FooterAppearance|FooterAppearance]]. Diese Eigenschaft legt die grafische Darstellung der Fußzeile fest. Mögliche Werte sind: {{const|[[#Verwenden des Werts &amp;quot;Custom&amp;quot; |Custom]]}} und {{Const|ListHeader}}. Vorgabewert: {{Const|ListHeader}}. &lt;br /&gt;
&lt;br /&gt;
===Eigenschaften für Kopfzeilen===&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.HeaderHeight|HeaderHeight]]. Diese Eigenschaft legt die Höhe (in Pixel) für die Kopfzeile der Liste fest. Vorgabewert: {{Const|24}}. &lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.HeaderAppearance|HeaderAppearance]]. Diese Eigenschaft legt die grafische Darstellung der Kopfzeile fest. Mögliche Werte sind: {{const|[[#Verwenden des Werts &amp;quot;Custom&amp;quot; Value|Custom]]}} und {{Const|ListHeader}}. Vorgabewert: {{Const|ListHeader}}. &lt;br /&gt;
&lt;br /&gt;
===Eigenschaften für Listeneinträge===&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemHeight|ItemHeight]]. Diese Eigenschaft legt die Höhe (in Pixel) für Listeneinträge fest. Vorgabewert: {{Const|44}}.&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemAppearance|ItemAppearance]]. Diese Eigenschaft legt die grafische Darstellung des Eintrags (Bild, Titel, Zusatzschaltfläche etc.) fest. Vorgabewert: {{Const|ListItem}}.&lt;br /&gt;
&lt;br /&gt;
:Wählen Sie einen der folgenden Werte:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Eigenschaft&lt;br /&gt;
! Sichtbare Objekte&lt;br /&gt;
|-&lt;br /&gt;
|Custom&lt;br /&gt;
| Siehe [[#Verwenden des Werts &amp;quot;Custom&amp;quot;|Verwenden des Werts &amp;quot;Custom&amp;quot;]]&lt;br /&gt;
|-&lt;br /&gt;
| DynamicAppearance&lt;br /&gt;
| Siehe [[#Verwenden des Werts &amp;quot;DynamicAppearance&amp;quot;|Verwenden des Werts &amp;quot;DynamicAppearance&amp;quot;]]&lt;br /&gt;
|-&lt;br /&gt;
| ImageListItem&lt;br /&gt;
| Ein Bild, ein Titel und eine zusätzliche grafische Schaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ImageListItemBottomDetail&lt;br /&gt;
| Ein Bild, ein Titel, ein detaillierter Text und eine zusätzliche grafische Schaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ImageListItemBottomDetailRightButton&lt;br /&gt;
| Ein Bild, ein Titel, ein detaillierter Text und eine zusätzliche Textschaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ImageListItemRightButton&lt;br /&gt;
| Ein Bild, ein Titel und eine zusätzliche Textschaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ListItem&lt;br /&gt;
| Ein Titel und eine zusätzliche grafische Schaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ListItemRightDetail&lt;br /&gt;
| Ein Titel, ein detaillierter Text und eine zusätzliche grafische Schaltfläche&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Siehe [[samp_en:FMX.ListViewCustomBottomDetail Sample|FMX.ListViewCustomBottomDetail (Beispiel)]] und andere [[#Beispiele|Beispiele]].&lt;br /&gt;
&lt;br /&gt;
===Eigenschaften für Listeneinträge im Bearbeitungsmodus===&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemEditHeight|ItemEditHeight]]. Diese Eigenschaft legt die Höhe (in Pixel) für Listeneinträge im Bearbeitungsmodus fest. Vorgabewert: {{Const|44}}.&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemEditAppearance|ItemEditAppearance]]. Diese Eigenschaft legt die grafische Darstellung des Eintrags im Bearbeitungsmodus fest. Vorgabewert: {{Const|ListItemShowCheck}}.&lt;br /&gt;
&lt;br /&gt;
:Wählen Sie einen der folgenden Werte:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Eigenschaft&lt;br /&gt;
! Sichtbare Objekte&lt;br /&gt;
|-&lt;br /&gt;
| Custom&lt;br /&gt;
| Siehe [[#Verwenden des Werts &amp;quot;Custom&amp;quot;|Verwenden des Werts &amp;quot;Custom&amp;quot;]]&lt;br /&gt;
|-&lt;br /&gt;
| DynamicAppearance&lt;br /&gt;
| Siehe [[#Verwenden des Werts &amp;quot;DynamicAppearance&amp;quot;|Verwenden des Werts &amp;quot;DynamicAppearance&amp;quot;]]&lt;br /&gt;
|-&lt;br /&gt;
| ImageListItemBottomDetailRightButtonShowCheck&lt;br /&gt;
| Ein Bild, ein Titel, ein detaillierter Text, ein Kontrollkästchen mit einer Glyphe und eine Textschaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ImageListItemBottomDetailShowCheck&lt;br /&gt;
| Ein Bild, ein Titel, ein detaillierter Text, ein Kontrollkästchen mit einer Glyphe und eine zusätzliche grafische Schaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ImageListItemDelete&lt;br /&gt;
| Ein Bild, ein Titel, eine Löschen-Schaltfläche mit einer Glyphe und eine zusätzliche grafische Schaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ImageListItemRightButtonDelete&lt;br /&gt;
| Ein Bild, ein Titel, eine Löschen-Schaltfläche mit einer Glyphe und eine Textschaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ImageListItemRightButtonShowCheck&lt;br /&gt;
| Ein Bild, ein Titel, ein Kontrollkästchen mit einer Glyphe und eine Textschaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ImageListItemShowCheck&lt;br /&gt;
| Ein Bild, ein Titel, ein Kontrollkästchen mit einer Glyphe und eine zusätzliche grafische Schaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ListItemDelete&lt;br /&gt;
| Ein Titel, eine Löschen-Schaltfläche mit einer Glyphe und eine zusätzliche grafische Schaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ListItemRightDetailDelete&lt;br /&gt;
| Ein Titel, ein detaillierter Text, eine Löschen-Schaltfläche mit einer Glyphe und eine zusätzliche grafische Schaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ListItemRightDetailShowCheck&lt;br /&gt;
| Ein Titel, ein detaillierter Text, ein Kontrollkästchen mit einer Glyphe und eine zusätzliche grafische Schaltfläche&lt;br /&gt;
|-&lt;br /&gt;
| ListItemShowCheck&lt;br /&gt;
| Ein Titel, ein Kontrollkästchen mit einer Glyphe und eine zusätzliche grafische Schaltfläche&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Siehe [[samp_en:FMX.ListViewCustomBottomDetail Sample|FMX.ListViewCustomBottomDetail (Beispiel)]] und andere [[#Beispiele|Beispiele]].&lt;br /&gt;
&lt;br /&gt;
===Ändern der Darstellungseigenschaften von Listenansichten===&lt;br /&gt;
&lt;br /&gt;
Suchen Sie in der &#039;&#039;&#039;[[Strukturansicht|Strukturansicht]]&#039;&#039;&#039; und im &#039;&#039;&#039;[[Objektinspektor|Objekinspektor]]&#039;&#039;&#039; nach der [[lib_de:FMX.ListView.TListView|Listenansichts]]-Komponente.&lt;br /&gt;
&lt;br /&gt;
* Suchen Sie in der &#039;&#039;&#039;Strukturansicht&#039;&#039;&#039; die &#039;&#039;&#039;ListView&#039;&#039;&#039;-Komponente, und klicken Sie in der Hierarchie auf {{code|ItemAppearance}}.&lt;br /&gt;
* Ändern Sie im &#039;&#039;&#039;Objektinspektor&#039;&#039;&#039; alle Eigenschaften ([[lib_de:FMX.ListView.Appearances.TPublishedAppearance.FooterAppearance|FooterAppearance]], [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.HeaderAppearance|HeaderAppearance]], [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemAppearance|ItemAppearance]], [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemEditAppearance|ItemEditAppearance]]) in den gewünschten Wert.&lt;br /&gt;
&lt;br /&gt;
: [[File:ItemAppearenceValueListView.png]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Anpassbare Darstellung von Einträgen==&lt;br /&gt;
&lt;br /&gt;
Mit den Werten [[#Verwenden des Werts &amp;quot;DynamicAppearance&amp;quot;|DynamicAppearance]] und [[#Verwenden des Werts &amp;quot;Custom&amp;quot;|Custom]] können Sie die Darstellung von Einträgen in einer &#039;&#039;&#039;ListView&#039;&#039;&#039; anpassen. &lt;br /&gt;
Verwenden Sie den Wert &#039;&#039;&#039;Custom&#039;&#039;&#039; für die Eigenschaften [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.FooterAppearance|FooterAppearance]], [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.HeaderAppearance|HeaderAppearance]], [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemAppearance|ItemAppearance]] und  [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemEditAppearance|ItemEditAppearance]] der Einträge in der &#039;&#039;&#039;ListView&#039;&#039;&#039; und &#039;&#039;&#039;DynamicAppearance&#039;&#039;&#039; für die Eigenschaften [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemAppearance|ItemAppearance]] und  [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemEditAppearance|ItemEditAppearance]] der Einträge in der &#039;&#039;&#039;ListView&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Verwenden des Werts &amp;quot;DynamicAppearance&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mit &#039;&#039;&#039;DynamicAppearance&#039;&#039;&#039; können Sie die Eintragsdarstellung der &#039;&#039;&#039;ListView&#039;&#039;&#039; zur Entwurfszeit dynamisch anpassen. Der Unterschied zwischen &#039;&#039;&#039;DynamicAppearance&#039;&#039;&#039; und den anderen Eigenschaften der Eintragsdarstellung besteht darin, dass Sie mit &#039;&#039;&#039;DynamicAppearance&#039;&#039;&#039; dem Erscheinungsbild Ihres Eintrags so viele Objekte wie gewünscht hinzufügen können. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DynamicAppearence&#039;&#039;&#039; enthält standardmäßig ein einziges [[lib_de:FMX.ListView.Appearances.TTextObjectAppearance|Text]]-Objekt. Um weitere Objekte hinzuzufügen, wählen Sie in der &#039;&#039;&#039;[[Strukturansicht|Strukturansicht]]&#039;&#039;&#039; {{code|Item}} von {{code|IteamAppearance}} aus. Klicken Sie dann im &#039;&#039;&#039;[[Objektinspektor|Objektinspektor]]&#039;&#039;&#039; auf die Eigenschaft {{code|+}}, und wählen Sie beliebige der verfügbaren Objekte aus. Die verfügbaren Objekte sind:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TTextObjectAppearance|TTextObjectAppearance]]. Beschreibt die grafische Darstellung des Textobjekts des Listenansichtseintrags.&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TImageObjectAppearance|TImageObjectAppearance]]. Beschreibt die grafische Darstellung des Symbolobjekts des Listenansichtseintrags.&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TAccessoryObjectAppearance|TAccessoryObjectAppearance]]. Beschreibt die grafische Darstellung des &amp;quot;Accessory&amp;quot;-Objekts des Listenansichtseintrags.&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TTextButtonObjectAppearance|TTextButtonObjectAppearance]]. Beschreibt die grafische Darstellung des Textschaltflächen-Objekts des Listenansichtseintrags.&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TGlyphButtonObjectAppearance|TGlyphButtonObjectAppearance]]. Beschreibt die grafische Darstellung der Grafik-Schaltfläche (grafisches Bild) des Listenansichtseintrags.&lt;br /&gt;
&lt;br /&gt;
: [[File:DynamicAppearence.png|DynamicAppearence.png]]&lt;br /&gt;
&lt;br /&gt;
Sie können die Objekte der Eintragsdarstellung zur Entwurfszeit anpassen, indem Sie ein Objekt in der &#039;&#039;&#039;Strukturansicht&#039;&#039;&#039; auswählen und dessen Eigenschaften im &#039;&#039;&#039;Objektinspektor&#039;&#039;&#039; ändern. Folgendes können Sie beispielsweise anpassen: Schriftart, Textgröße oder Textausrichtung in Textobjekten oder den Schaltflächentyp in Schaltflächenobjekten. Außerdem können Sie die Objekte für die Eintragsdarstellung anpassen, indem Sie [[#Umschalten des Entwurfsmodus|Entwurfsmodus umschalten]] aktivieren.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Tipp&#039;&#039;&#039;: Da Sie so viele Objekte, wie Sie möchten, hinzufügen können, sollten Sie &#039;&#039;&#039;DynamicAppearance&#039;&#039;&#039; mit der aktivierten Option &#039;&#039;&#039;Entwurfsmodus umschalten&#039;&#039;&#039; verwenden.&lt;br /&gt;
&lt;br /&gt;
===Verwenden des Werts &amp;quot;Custom&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mit der Auswahl des &#039;&#039;&#039;Custom&#039;&#039;&#039;-Darstellungswerts aktiviert die folgenden Objekte in der Elementdarstellung:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Accessory&#039;&#039;&#039;. Ist eine Instanz von [[lib_de:FMX.ListView.Appearances.TAccessoryObjectAppearance|TAccessoryObjectAppearance]]. Nicht standardmäßig sichtbar.&lt;br /&gt;
* &#039;&#039;&#039;Detail&#039;&#039;&#039;. Ist eine Instanz von [[lib_de:FMX.ListView.Appearances.TTextObjectAppearance|TTextObjectAppearance]]. Nicht standardmäßig sichtbar.&lt;br /&gt;
* &#039;&#039;&#039;GlyphButton&#039;&#039;&#039;. Ist eine Instanz von [[lib_de:FMX.ListView.Appearances.TGlyphButtonObjectAppearance|TGlyphButtonObjectAppearance]]. Nicht standardmäßig sichtbar.&lt;br /&gt;
* &#039;&#039;&#039;Image&#039;&#039;&#039;. Ist eine Instanz von [[lib_de:FMX.ListView.Appearances.TImageObjectAppearance|TImageObjectAppearance]]. Nicht standardmäßig sichtbar.&lt;br /&gt;
* &#039;&#039;&#039;Text&#039;&#039;&#039;. Ist eine Instanz von [[lib_de:FMX.ListView.Appearances.TTextObjectAppearance|TTextObjectAppearance]]. Standardmäßig sichtbar.&lt;br /&gt;
*&#039;&#039;&#039;TexButton&#039;&#039;&#039;.  Ist eine Instanz von [[lib_de:FMX.ListView.Appearances.TTextButtonObjectAppearance|TTextButtonObjectAppearance]]. Nicht standardmäßig sichtbar.&lt;br /&gt;
*: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Sie können die Objekte der Elementdarstellung zur Entwurfszeit anpassen, indem Sie deren Eigenschaft mit dem &#039;&#039;&#039;[[Objektinspektor|Objektinspektor]]&#039;&#039;&#039; ändern, oder [[#Der Designmodus &amp;quot;Togggle&amp;quot;|Toggle-DesignMode]] aktivieren.&lt;br /&gt;
&lt;br /&gt;
: [[File:CustomValueStructure.png]]&lt;br /&gt;
&lt;br /&gt;
Um die Sichtbarkeit des gewünschten Objekts zu setzen:&lt;br /&gt;
&lt;br /&gt;
* Aktivieren Sie die Eigenschaft &#039;&#039;&#039;Visible&#039;&#039;&#039; (durch Setzen dessen Werts auf {{True}}) im &#039;&#039;&#039;Objektinspektors&#039;&#039;&#039; für jedes der gewünschten Objekte und ändern Sie die Eigenschaften Ihren Anforderungen entsprechend.&lt;br /&gt;
* Aktivieren Sie die Eigenschaft &#039;&#039;&#039;Visible&#039;&#039;&#039; für jedes der Objekte, indem Sie sie auf {{True}} im Quelltext setzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
AItem.Objects.AccessoryObject.Visible := True;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::SetEditItemProperties( TItemAppearanceObjects * AObjects)&lt;br /&gt;
{&lt;br /&gt;
	AObjects-&amp;gt;GlyphButton-&amp;gt;Visible = true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Umschalten des Entwurfsmodus==&lt;br /&gt;
&lt;br /&gt;
Mit &#039;&#039;&#039;Entwurfsmodus umschalten&#039;&#039;&#039; können Sie die Eintragsdarstellung einer &#039;&#039;&#039;ListView&#039;&#039;&#039; zur Entwurfszeit visuell anpassen. Sie können diesen Modus für jede [[lib_de:FMX.ListView.TAppearanceListView.ItemAppearance|ItemAppearance]]-Eigenschaft auswählen ({{code|Custom}}, {{code|DynamicAppearance}}, {{code|ListItem}}, {{code|ImageListItem}}, etc.).&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Tipp&#039;&#039;&#039;: &#039;&#039;&#039;Entwurfsmodus umschalten&#039;&#039;&#039; sollte mit [[#Verwenden des Werts &amp;quot;DynamicAppearance&amp;quot;|DynamicAppearance]] verwendet werden, da Sie mit &#039;&#039;&#039;DynamicAppearance&#039;&#039;&#039; die [[lib_de:FMX.ListView.TAppearanceListView.ItemAppearance|ItemAppearance]] frei anpassen können.&lt;br /&gt;
&lt;br /&gt;
Zum Auswählen von &#039;&#039;&#039;Entwurfsmodus umschalten&#039;&#039;&#039; klicken Sie in der &#039;&#039;&#039;[[Strukturansicht|Strukturansicht]]&#039;&#039;&#039; oder im &#039;&#039;&#039;[[TForm|TForm]]&#039;&#039;&#039; mit der rechten Maustaste auf das [[lib_de:FMX.ListView.TListView|TListView]]-Objekt und wählen es aus. &#039;&#039;&#039;Entwurfsmodus umschalten&#039;&#039;&#039; ändert die Ansicht des &#039;&#039;&#039;ListView&#039;&#039;&#039;-Objekts im Entwurfsmodus von einem leeren Kontrollkästchen in eine Designvorschau des &#039;&#039;&#039;ListView&#039;&#039;&#039;-Eintrags. Dann können Sie:&lt;br /&gt;
&lt;br /&gt;
* Die Darstellung des Eintrags im Formular visuell anpassen.&lt;br /&gt;
* Die Änderungen, die Sie der Eintragsdarstellung durchführen, im &#039;&#039;&#039;[[Objektinspektor|Objektinspektor]]&#039;&#039;&#039; anzeigen.&lt;br /&gt;
&lt;br /&gt;
: [[File:ToggleDesignMode.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer angepassten Darstellungsklasse==&lt;br /&gt;
&lt;br /&gt;
Sie können eine neue angepasste Darstellungsklasse erstellen und installieren und in Ihrem Design verwenden, indem Sie ein neues Package installieren. In diesem Package sind die Klassen definiert, die eine benutzerdefinierte Darstellung für Einträge in Listenansichten implementieren. Sie können die Felder bei Bedarf anpassen, um beispielsweise ein Bewertungsbild (ein Steuerelement, das abhängig von einem numerischen Wert unterschiedliche Bilder anzeigt) zu implementieren.&lt;br /&gt;
&lt;br /&gt;
===Verwenden der angepassten Darstellungsklasse===&lt;br /&gt;
&lt;br /&gt;
# Implementieren Sie ein neues [[lib_de:FMX.ListView.TListView|TListView]]-Darstellungs-Package. Die folgenden Beispiele enthalten verschiedene Beispiele, die die anzuzeigende Listenansichtsdarstellung anpassen:&lt;br /&gt;
#* [[samp_en:FMX.ListViewAddThumbAndCaption Sample|Eine Miniaturansicht mit einem Titel (EN)]]&lt;br /&gt;
#* [[samp_en:FMX.ListViewRatingsAppearance Sample|Eine Bewertung als Bild (EN)]]&lt;br /&gt;
#* [[samp_en:FMX.ListViewCustomBottomDetail Sample|Ein Detailltext am unteren Rand der Elemente (EN)]]&lt;br /&gt;
#* [[samp_en:FMX.ListViewMultiDetailAppearance Sample|Drei Detailltext-Elemente (EN)]]&lt;br /&gt;
# [[Komponenten-Packages installieren|Installieren]] Sie das angepasste Darstellungs-Package in der IDE.&lt;br /&gt;
# Nach der Installation kann die neue Darstellung mit einer TListView-Komponente im &#039;&#039;&#039;Objektinspektor&#039;&#039;&#039; verwendet werden.&lt;br /&gt;
&lt;br /&gt;
[[File:CustomizedAppearancePackage.png]]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der Wert &#039;&#039;&#039;MultiDetailItem&#039;&#039;&#039; steht für ein angepasstes Darstellungs-Package, das früher in der IDE installiert wurde.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Mobile-Tutorial: Füllen von ListView-Steuerelementen über LiveBindings (iOS und Android)|Mobile-Tutorial: Füllen von ListView-Steuerelementen über LiveBindings (iOS und Android)]]&#039;&#039;&#039;&lt;br /&gt;
* [[Native FireMonkey-iOS-Steuerelemente|Native {{FM}}-iOS-Steuerelemente]]&lt;br /&gt;
* [[lib_de:FMX.ListView.TAppearanceListView.ItemAppearance|FMX.ListView.TAppearanceListView.ItemAppearance]]&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.FooterHeight|FMX.ListView.Appearances.TPublishedAppearance.FooterHeight]]&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.FooterAppearance|FMX.ListView.Appearances.TPublishedAppearance.FooterAppearance]]&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.HeaderHeight|FMX.ListView.Appearances.TPublishedAppearance.HeaderHeight]]&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.HeaderAppearance|FMX.ListView.Appearances.TPublishedAppearance.HeaderAppearance]]&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemHeight|FMX.ListView.Appearances.TPublishedAppearance.ItemHeight]]&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemAppearance|FMX.ListView.Appearances.TPublishedAppearance.ItemAppearance]]&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemEditHeight|FMX.ListView.Appearances.TPublishedAppearance.ItemEditHeight]]&lt;br /&gt;
* [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemEditAppearance|FMX.ListView.Appearances.TPublishedAppearance.ItemEditAppearance]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
&lt;br /&gt;
* [[samp_en:FMX.ListViewAddThumbAndCaption Sample|FMX.ListViewAddThumbAndCaption (Beispiel)]]&lt;br /&gt;
* [[samp_en:FMX.ListViewRatingsAppearance Sample|FMX.ListViewRatingsAppearance (Beispiel)]]&lt;br /&gt;
* [[samp_en:FMX.ListViewCustomBottomDetail Sample|FMX.ListViewCustomBottomDetail (Beispiel)]]&lt;br /&gt;
* [[samp_en:FMX.ListViewMultiDetailAppearance Sample|FMX.ListViewMultiDetailAppearance (Beispiel)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FMX]]&lt;br /&gt;
[[Category:XE7]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Customizing FireMonkey ListView Appearance]]&lt;br /&gt;
[[fr:Personnalisation de l&#039;apparence de la vue liste FireMonkey]]&lt;br /&gt;
[[ja:FireMonkey リスト ビューの外観のカスタマイズ]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Pragma_noretval&amp;diff=196106</id>
		<title>Pragma noretval</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Pragma_noretval&amp;diff=196106"/>
		<updated>2015-11-17T16:52:53Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: Reviewed by Heidi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:#pragma noretval}}&lt;br /&gt;
{{Parent|Pragma-Direktiven (Übersicht) - Index}}&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;lt;span style=&amp;quot;font-size: 60%&amp;quot;&amp;gt;(siehe [[Pseudogrammatik|Pseudogrammatik]])&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#pragma noretval&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#pragma noretval&amp;lt;/source&amp;gt; geben Sie an, dass eine Funktion nichts zurückgibt. Alternativ können Sie das C++0x-Attribut &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;[[noreturn]]&amp;lt;/source&amp;gt; verwenden.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Verwechseln Sie dies bitte nicht mit Funktionen mit dem Rückgabetyp &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;void&amp;lt;/source&amp;gt;. &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;void&amp;lt;/source&amp;gt; ist ein Rückgabetyp für Unterroutinen, die nichts zurückgeben. Das Attribut &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;[[noreturn]]&amp;lt;/source&amp;gt; legt jedoch fest, dass eine Funktion nicht zurückkehrt. Das bedeutet, dass der Kontrollfluss nicht an die aufrufende Funktion zurückgeht; zum Beispiel Funktionen, die Anwendungen beenden, wie [[Abort|abort]] und [[Exit|exit (C++)]].&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Noreturn|C++0x-Attribut noreturn]]&lt;br /&gt;
* [[Declspec(noreturn)|__declspec(noreturn)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:C++-Referenz]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Pragma noretval]]&lt;br /&gt;
[[fr:Pragma noretval]]&lt;br /&gt;
[[ja:Pragma noretval]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Bereitstellungs-Manager_-_Hinzuf%C3%BCgen_von_Dateien&amp;diff=196144</id>
		<title>Bereitstellungs-Manager - Hinzufügen von Dateien</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Bereitstellungs-Manager_-_Hinzuf%C3%BCgen_von_Dateien&amp;diff=196144"/>
		<updated>2015-11-17T16:48:45Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: Reviewed by Heidi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Bereitstellungs-Manager|Bereitstellungs-Manager}}&lt;br /&gt;
{{DISPLAYTITLE:Bereitstellungs-Manager - Hinzufügen von Dateien}}&lt;br /&gt;
Sie können dem &#039;&#039;&#039;[[Bereitstellungs-Manager|Bereitstellungs-Manager]]&#039;&#039;&#039; mit dem Befehl &#039;&#039;&#039;Dateien hinzufügen&#039;&#039;&#039; weitere Dateien hinzufügen. Mit diesem Befehl werden dem [[Bereitstellungs-Manager|Bereitstellungs-Manager]] verschiedene weitere Dateien hinzugefügt, die nicht Teil des Projekts sind.&lt;br /&gt;
&lt;br /&gt;
# Klicken Sie im [[Bereitstellungs-Manager|Bereitstellungs-Manager]] auf die Schaltfläche &#039;&#039;&#039;Dateien hinzufügen&#039;&#039;&#039; ([[Image:DMgrAddFiles.png]]).&lt;br /&gt;
# Wählen Sie im Dialogfeld &#039;&#039;&#039;Öffnen&#039;&#039;&#039; die gewünschten Dateien aus.&lt;br /&gt;
# Klicken Sie zur Bestätigung auf die Schaltfläche &#039;&#039;&#039;Öffnen&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Das Dialogfeld wird geschlossen, und die Dateien werden automatisch der Dateiliste des [[Bereitstellungs-Manager|Bereitstellungs-Managers]] hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
Die Dateien werden nur der aktuellen [[Bereitstellungs-Manager#Symbolleiste des Bereitstellungs-Managers|Konfiguration]] (&#039;&#039;&#039;Debug&#039;&#039;&#039; oder &#039;&#039;&#039;Release&#039;&#039;&#039;) und der ausgewählten [[Übersicht über Zielplattformen|Plattform]]: &#039;&#039;&#039;{{Placeholder|Konfiguration}} - {{Placeholder|Plattform}}&#039;&#039;&#039; hinzugefügt. Mit dem [[Bereitstellungs-Manager#Symbolleiste des Bereitstellungs-Managers|Kombinationsfeld &amp;quot;Konfigurationsauswahl&amp;quot;]] ändern Sie die aktuelle Konfiguration und Plattform.&lt;br /&gt;
&lt;br /&gt;
Um allen Plattformen die Dateien für die ausgewählte Konfiguration (&#039;&#039;&#039;Debug&#039;&#039;&#039; oder &#039;&#039;&#039;Release&#039;&#039;&#039;) hinzuzufügen, ändern Sie das [[Bereitstellungs-Manager#Symbolleiste des Bereitstellungs-Managers|Kombinationsfeld &amp;quot;Konfigurationsauswahl&amp;quot;]] in &#039;&#039;&#039;Debug-Konfiguration - Alle Plattformen&#039;&#039;&#039; oder &#039;&#039;&#039;Release-Konfiguration - Alle Plattformen&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Um die Dateien allen Konfigurationen und Plattformen hinzuzufügen, ändern Sie das [[Bereitstellungs-Manager#Symbolleiste des Bereitstellungs-Managers|Kombinationsfeld &amp;quot;Konfigurationsauswahl&amp;quot;]] in &#039;&#039;&#039;Alle Konfigurationen - Alle Plattformen&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tipps:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* Mit dem Befehl &#039;&#039;&#039;Dateien hinzufügen&#039;&#039;&#039; können beispielsweise von Ihrer Anwendung verwendete Datendateien oder Konfigurationsdateien hinzugefügt werden.&lt;br /&gt;
* Informationen zur Aktivierung von &#039;&#039;&#039;Datenbanktreibern&#039;&#039;&#039; für die Zielplattform finden Sie unter [[Bereitstellungs-Manager - Weitere Dateien hinzufügen|Bereitstellungs-Manager - Weitere Dateien hinzufügen]].&lt;br /&gt;
* Mit der Option &#039;&#039;&#039;Überschreiben&#039;&#039;&#039; können Sie diejenigen Dateien auswählen, die nicht bereitgestellt werden sollen, damit sie auf dem Zielgerät nicht überschrieben werden.&lt;br /&gt;
* Stellen Sie beim Ausführen einer Anwendung auf mobilen Geräten sicher, dass die von Ihrem Projekt verwendeten Dateien im richtigen Ordner bereitgestellt werden. Weitere Informationen finden Sie in den folgenden Themen:&lt;br /&gt;
** [[Erstellen von iOS-Apps#Laden und Bereitstellen von Dateien|Laden und Bereitstellen von Dateien für iOS]]&lt;br /&gt;
** [[Erstellen einer Android-App#Laden und Bereitstellen von Dateien|Laden und Bereitstellen von Dateien für Android]]&lt;br /&gt;
* Mit dem Befehl &#039;&#039;&#039;Dateien hinzufügen&#039;&#039;&#039; werden Dateien automatisch der im [[Bereitstellungs-Manager#Symbolleiste des Bereitstellungs-Managers|Kombinationsfeld &amp;quot;Konfigurationsauswahl&amp;quot;]] ausgewählten Konfiguration und Plattform hinzugefügt. Wenn Sie beispielsweise aktuell die Konfiguration &#039;&#039;&#039;Debug-Konfiguration - Android-Plattform&#039;&#039;&#039; ausgewählt haben, wird die Datei, die Sie hinzufügen, nur zu diesem Abschnitt hinzugefügt. Wenn Sie dieselbe Datei der Release-Konfiguration hinzufügen möchten, müssen Sie die &#039;&#039;&#039;Release-Konfiguration - Android-Plattform&#039;&#039;&#039; explizit im &#039;&#039;&#039;[[Bereitstellungs-Manager#Symbolleiste des Bereitstellungs-Managers|Kombinationsfeld &amp;quot;Konfigurationsauswahl&amp;quot;]]&#039;&#039;&#039; auswählen und die Datei hinzufügen.&lt;br /&gt;
&lt;br /&gt;
===Siehe auch===&lt;br /&gt;
&lt;br /&gt;
* [[Bereitstellungs-Manager|Bereitstellungs-Manager]]&lt;br /&gt;
* [[Bereitstellungs-Manager - Bereitstellen von Projekten|Bereitstellungs-Manager - Bereitstellen von Projekten]]&lt;br /&gt;
* [[Bereitstellungs-Manager - Weitere Dateien hinzufügen|Bereitstellungs-Manager - Weitere Dateien hinzufügen]]&lt;br /&gt;
* [[Bereitstellungs-Manager - Löschen von Dateien|Bereitstellungs-Manager - Löschen von Dateien]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Bereitstellungs-Manager - Hinzufugen von Dateien}}&lt;br /&gt;
[[Category:XE5]]&lt;br /&gt;
[[Category:RAD Studio – Referenz]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Deployment Manager - Adding files]]&lt;br /&gt;
[[fr:Gestionnaire de déploiement - Ajout de fichiers]]&lt;br /&gt;
[[ja:配置マネージャ - ［ファイルの追加］]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=%C3%9Cberblick_zu_vorcompilierten_Headern&amp;diff=192362</id>
		<title>Überblick zu vorcompilierten Headern</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=%C3%9Cberblick_zu_vorcompilierten_Headern&amp;diff=192362"/>
		<updated>2015-10-02T14:48:55Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: Reviewed by Heidi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Compilieren, Build erstellen und Anwendungen ausführen - Index}}&lt;br /&gt;
Die Verwendung von vorcompilierten Headern für Ihre C++-Projekte bietet einige Vorteile, aber es gibt auch Fehlerquellen, die dabei vermieden werden müssen.&lt;br /&gt;
&lt;br /&gt;
==Vorteile von vorcompilierten Headern==&lt;br /&gt;
&lt;br /&gt;
Das Erstellen und Verwenden von vorcompilierten Headern bietet die beiden folgenden Hauptvorteile:&lt;br /&gt;
&lt;br /&gt;
* Reduzieren der Compilierungsdauer für C++-Dateien.&lt;br /&gt;
* Reduzieren der Anzahl der Codezeilen, die der Compiler verarbeiten muss (in manchen Fällen in einer signifikanten Größenordnung).&lt;br /&gt;
&lt;br /&gt;
==Zu vermeidende Fehlerquellen==&lt;br /&gt;
&lt;br /&gt;
Wenn vorcompilierte Header unüberlegt verwendet werden, können sie die Compilierungsdauer verlängern. Achten Sie auf die folgenden potenziellen Fehlerquellen:&lt;br /&gt;
&lt;br /&gt;
* Einfache Compilierungs-Units, die auf sehr wenige Symbole verweisen, werden ohne vorcompilierte Header evtl. schneller compiliert. Wenn dafür vorcompilierte Header verwendet werden, könnte die Compilierung langsamer werden.&lt;br /&gt;
* Wenn ein Header, der sich regelmäßig ändert, Bestandteil des vorcompilierten Headers ist, könnte der Aufwand, den vorcompilierten Header ständig neu zu erstellen, die Vorteile des Einsatzes des vorcompilierten Headers zunichte machen.&lt;br /&gt;
* Bei sehr großen vorcompilierten Headern könnte der für das Lesen oder Aktualisieren der Datei benötigte E/A-Aufwand die Vorteile von vorcompilierten Headern zunichte machen.&lt;br /&gt;
&lt;br /&gt;
Einige Header sollten nicht in vorcompilierte Header aufgenommen werden. Anhand der folgenden Richtlinien können Sie feststellen, welche Header vorcompiliert werden sollten.&lt;br /&gt;
&lt;br /&gt;
Beziehen Sie die folgenden Header-Typen nicht in vorcompilierte Header ein:&lt;br /&gt;
&lt;br /&gt;
* Alle Header, die noch nicht richtig überwacht werden (Guard). Das sind Header-Dateien, die keine Präprozessorbedingungen (&amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt;) enthalten, die sicherstellen würden, dass der Header nur einmal vom Compiler verarbeitet wird, auch wenn er mehrfach einbezogen ist.&lt;br /&gt;
* Ein Header, dessen Code von bestimmten Makros abhängig ist, die nur wenige Compilierungs-Units definieren.&lt;br /&gt;
* Alle Header, die häufig oder regelmäßig geändert werden.&lt;br /&gt;
* Alle Header, die Daten enthalten. Der Compiler erzeugt eine Meldung für Header, die Daten enthalten und deshalb kein Bestandteil eines vorcompilierten Headers sein dürfen.&lt;br /&gt;
&lt;br /&gt;
Vorcompilierte Header können inkorrekten Code verbergen. Zum Beispiel könnte eine .cpp-Datei, die einen erforderlichen Header nicht explizit einbezieht, ohne Fehler compiliert werden, wenn ein vorcompilierter Header die fehlende Header-Datei einbezieht, aber fehlschlagen, wenn der vorcompilierte Header deaktiviert wird. Sie sollten gelegentlich Ihr Projekt ohne vorcompilierte Header compilieren, um sicherzustellen, dass Ihr Quelltext alle erforderlichen Header korrekt einbezieht.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Verwenden von vorcompilierten Headern mit C++-Compilern, die durch Clang erweitert wurden|Verwenden von vorcompilierten Headern mit C++-Compilern, die durch Clang erweitert wurden]]&lt;br /&gt;
* [[Befehlszeilenoptionen von C++-Compilern, die durch Clang erweitert wurden, für vorcompilierte Header|Befehlszeilenoptionen von C++-Compilern, die durch Clang erweitert wurden, für vorcompilierte Header]]&lt;br /&gt;
* [[Experte für vorcompilierte Header|Experte für vorcompilierte Header (nur für 32-Bit-Windows)]]&lt;br /&gt;
* [[Befehlszeilenoptionen für vorcompilierte Header von BCC32|Befehlszeilenoptionen für vorcompilierte Header von BCC32]]&lt;br /&gt;
* [[BCC32.EXE: Der C++-32-Bit-Befehlszeilen-Compiler|BCC32.EXE: Der C++-32-Bit-Befehlszeilen-Compiler]]&lt;br /&gt;
* [[Durch Clang erweiterte C++-Compiler|Durch Clang erweiterte C++-Compiler]]&lt;br /&gt;
* [[C++-Compiler Vorcompilierte Header|C++-Compiler Vorcompilierte Header]] (Projektoptionsseite für VCH-Optionen)&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Uberblick zu vorcompilierten Headern}}&lt;br /&gt;
[[Category:Mit RAD Studio arbeiten]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Precompiled Headers Overview]]&lt;br /&gt;
[[fr:Présentation des en-têtes précompilés]]&lt;br /&gt;
[[ja:プリコンパイル済みヘッダーの概要]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Migrieren_von_C%2B%2B-Code_zu_mobilen_Anwendungen_vom_Desktop_aus&amp;diff=192360</id>
		<title>Migrieren von C++-Code zu mobilen Anwendungen vom Desktop aus</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Migrieren_von_C%2B%2B-Code_zu_mobilen_Anwendungen_vom_Desktop_aus&amp;diff=192360"/>
		<updated>2015-10-02T14:44:12Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: Reviewed by Heidi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Gesichtspunkte für geräteübergreifende C++-Anwendungen}}&lt;br /&gt;
&lt;br /&gt;
In diesem Thema wird beschrieben, wie Sie vorhandenen C++-Code, der für Desktop-Plattformen geschrieben wurde, migrieren, sodass er auf mobilen Plattformen verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Für mobile Plattformen wurden einige Änderungen an der {{Delphi}}-Sprache vorgenommen. Viele dieser Änderungen wirken sich auf die Portierung von C++-Code von Desktop-Plattformen zu mobilen Plattformen aus, wie in diesem Thema beschrieben.&lt;br /&gt;
&lt;br /&gt;
==Besonderheiten von mobilem C++-Code==&lt;br /&gt;
&lt;br /&gt;
Es gibt einige Besonderheiten oder häufige Fehler (&amp;quot;Gotchas&amp;quot;), die Sie beim Entwickeln von C++-Anwendungen für mobile Plattformen oder beim Migrieren von C++-Desktop-Code zu mobilem Code berücksichtigen sollten.&lt;br /&gt;
&lt;br /&gt;
===Allgemeines zu String-Typen===&lt;br /&gt;
&lt;br /&gt;
Aus den mobilen {{Delphi}}-Compilern wurden alle String-Typen (wie AnsiString, UTF8String, RawByteString, WideString, ShortString, PAnsiChar usw.) entfernt, mit Ausnahme von &#039;&#039;&#039;System.String&#039;&#039;&#039;, der dem C++-Typ [[lib_de:System.UnicodeString|System::UnicodeString]] zugeordnet ist. C++ für mobile Anwendungen enthält weiterhin die Typen AnsiString, UTF8String, RawByteString und ShortString. Aber die API dieser Typen umfasst nur eine Teilmenge der C++-Versionen dieser Typen für Desktop-Plattformen.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Methoden der Klasse [[lib_de:System.AnsiStringT|System.AnsiStringT]] stehen in C++ für mobile Anwendungen nicht zur Verfügung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding-left: 2em&amp;quot; |&#039;&#039;&#039;Methoden von [[lib_de:System.AnsiStringT|System.AnsiStringT]] &amp;lt;br /&amp;gt;(AnsiString, UTF8String, RawByteString),&amp;lt;br /&amp;gt; die nicht für mobile Plattformen verfügbar sind&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; | &amp;lt;code&amp;gt;bool [[lib_de:System.AnsiStringBase.IsPathDelimiter|IsPathDelimiter]](int index) const&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; | &amp;lt;code&amp;gt;int [[lib_de:System.AnsiStringT.LastDelimiter|LastDelimiter]](const AnsiStringBase&amp;amp;amp; delimiters) const&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; | &amp;lt;code&amp;gt;TStringMbcsByteType [[lib_de:System.AnsiStringBase.ByteType|ByteType]](int index) const&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; | &amp;lt;code&amp;gt;bool [[lib_de:System.AnsiStringBase.IsLeadByte|IsLeadByte]](int index) const&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; | &amp;lt;code&amp;gt;bool [[lib_de:System.AnsiStringBase.IsTrailByte|IsTrailByte]](int index) const&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; | &amp;lt;code&amp;gt;char* [[lib_de:System.AnsiStringBase.AnsiLastChar|AnsiLastChar]]() const&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; | &amp;lt;code&amp;gt;static AnsiStringT [[lib_de:System.AnsiStringT.LoadStr|LoadStr]](HINSTANCE hInstance, int ident)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; | &amp;lt;code&amp;gt;int [[lib_de:System.AnsiStringT.WideCharBufSize|WideCharBufSize]](int codePage) const&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; | &amp;lt;code&amp;gt;wchar_t* [[lib_de:System.AnsiStringT.WideChar|WideChar]](wchar_t* dest, int destSize, int codePage) const&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; | &amp;lt;code&amp;gt;AnsiStringT&amp;amp;amp; [[lib_de:System.AnsiStringT.LoadStringW|LoadStringW]](HINSTANCE hInstance, int ident)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wie oben bereits erwähnt, wurden &amp;lt;code&amp;gt;PAnsiChar&amp;lt;/code&amp;gt; (einspricht in C++ &amp;lt;code&amp;gt;char*&amp;lt;/code&amp;gt;) und &amp;lt;code&amp;gt;ShortString&amp;lt;/code&amp;gt; aus den mobilen {{Delphi}}-Compilern entfernt. Diese Änderung ist oft nicht klar und kann zu unerwarteten Ergebnissen führen. Sehen Sie sich zur Klärung die folgenden Beispiele an:&lt;br /&gt;
&lt;br /&gt;
====PAnsiChar: TStringBuilder.Append====&lt;br /&gt;
&lt;br /&gt;
Da {{Delphi}} für die mobile Anwendungsentwicklung &amp;lt;code&amp;gt;PAnsiChar&amp;lt;/code&amp;gt; nicht unterstützt, wurden die Methoden der Klasse [[lib_de:System.SysUtils.TStringBuilder|TStringBuilder]] entfernt, die Argumente vom Typ &amp;lt;code&amp;gt;PAnsiChar&amp;lt;/code&amp;gt; akzeptieren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
TStringBuilder* __fastcall Append(const char * Value)/* overload */;&lt;br /&gt;
TStringBuilder* __fastcall Append(const System::RawByteString Value)/* overload */;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall arbeitet ähnlicher C++-Code wie der im folgenden Codefragment nicht mehr wie erwartet:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
std::auto_ptr&amp;lt;TStringBuilder&amp;gt; sb(new TStringBuilder());&lt;br /&gt;
// ...&lt;br /&gt;
sb-&amp;gt;Append(&amp;quot;Hello&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel ruft C++ für mobile Anwendungen die Methode &amp;lt;code&amp;gt;Append&amp;lt;/code&amp;gt;, die einen &amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;-Parameter erwartet, im Hintergrund auf. Dieser Code müsste folgendermaßen lauten, damit er auf Desktop- und mobilen Plattformen funktioniert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
std::auto_ptr&amp;lt;TStringBuilder&amp;gt; sb(new TStringBuilder());&lt;br /&gt;
// ...&lt;br /&gt;
sb-&amp;gt;Append(String(&amp;quot;Hello&amp;quot;));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====ShortString: TTypeInfo.Name====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ShortString&amp;lt;/code&amp;gt; wird nicht in {{Delphi}} für mobile Anwendungen unterstützt. Daher wurden alle Deklarationen, in denen &amp;lt;code&amp;gt;ShortString&amp;lt;/code&amp;gt; für Desktop-Plattformen, wie &amp;lt;code&amp;gt;TTypeInfo&amp;lt;/code&amp;gt;, verwendet wurde, ebenfalls geändert. Der Member &amp;lt;code&amp;gt;Name&amp;lt;/code&amp;gt; ist bei mobilen Anwendungen ein einfacher &amp;lt;code&amp;gt;Byte&amp;lt;/code&amp;gt;-Typ. Daher schlägt der folgende C++-Code auf mobilen Plattformen fehl:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
static System::UTF8String getTypeInfoName(System::Typinfo::PTypeInfo ti)&lt;br /&gt;
{&lt;br /&gt;
  return System::UTF8String(ti-&amp;gt;Name);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die obige Funktion gibt für mobile Anwendungen im Hintergrund einen String mit einem Byte-Wert, nicht den Namen des Typs, zurück. Der Code müsste folgendermaßen lauten, damit er auf Desktop- und mobilen Plattformen funktioniert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
static System::UTF8String getTypeInfoName(System::Typinfo::PTypeInfo ti)&lt;br /&gt;
{&lt;br /&gt;
#ifndef _DELPHI_NEXTGEN&lt;br /&gt;
  return System::UTF8String(ti-&amp;gt;Name);&lt;br /&gt;
#else&lt;br /&gt;
  int len = ti-&amp;gt;Name;&lt;br /&gt;
  const char* p = reinterpret_cast&amp;lt;char*&amp;gt;(&amp;amp;(ti-&amp;gt;Name));&lt;br /&gt;
  return System::UTF8String(p+1, len);&lt;br /&gt;
#endif&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Typumwandlung===&lt;br /&gt;
&lt;br /&gt;
In mobilen C++-Anwendungen wird keine C-artige Typumwandlung für Zeiger zu Klassen im {{Delphi}}-Stil, wie [[lib_de:FMX.StdCtrls.TButton|TButton]] oder [[lib_de:FMX.StdCtrls.TSpeedButton|TSpeedButton]], unterstützt.&lt;br /&gt;
&lt;br /&gt;
Das folgende Codefragment ist beispielsweise falsch:&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void Callback(void* p)&lt;br /&gt;
{&lt;br /&gt;
   ((TButton*)p)-&amp;gt;Enable = true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stattdessen sollten Sie den Operator &amp;lt;code&amp;gt;[[Reinterpret cast (Typumwandlungsoperator)|reinterpret_cast]]&amp;lt;/code&amp;gt; verwenden, der beliebige Zeigertypen in beliebige andere Zeigertypen, sogar von unabhängigen Klassen, konvertiert. Überarbeiten Sie das obige C++Codefragment wie folgt, damit Sie es für mobile C++-Plattformen verwenden können:&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void Callback(void* p)&lt;br /&gt;
{&lt;br /&gt;
    reinterpret_cast&amp;lt;TButton*&amp;gt;(p)-&amp;gt;Enable = true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===C++11-Features===&lt;br /&gt;
&lt;br /&gt;
Die C++-Compiler für iOS (BCCIOSARM und BCCIOSARM64) verwenden die im iOS-SDK enthaltene STL (nicht die [[Dinkumware Standard-C++-Bibliothek|Dinkumware Standard-C++-Bibliothek]], die von C++-Anwendungen auf Desktop-Plattformen unterstützt wird).&lt;br /&gt;
&lt;br /&gt;
Die C++-Compiler unterstützen nur die C++11-&#039;&#039;&#039;Haupt&#039;&#039;&#039;-Features, die vom BCC64-Compiler implementiert werden. iOS-Compiler unterstützen die C++11-&#039;&#039;&#039;Standardbibliotheks&#039;&#039;&#039;-Features nicht, die für unsere anderen C++-Compiler (in der Win64-Standardbibliothek, in [[Boost|Boost]] und in C++11-Headern, wie &amp;lt;code&amp;gt;regex&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;chrono&amp;lt;/code&amp;gt; usw.) verfügbar sind.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen über C++11-spezifische Header finden Sie unter:&lt;br /&gt;
&lt;br /&gt;
* [[C++11|C++11]]&lt;br /&gt;
* [http://en.cppreference.com/w/c/header C Standard Library header files (EN)] (C++11-spezifische Header sind mit &amp;quot;(since C11)&amp;quot; gekennzeichnet)&lt;br /&gt;
&lt;br /&gt;
===Verwenden von starken Aliasen in C++===&lt;br /&gt;
&lt;br /&gt;
In früheren Versionen von {{Delphi}} wurden integrierte Typen, wie &#039;&#039;&#039;[[lib_de:System.NativeInt|NativeInt]]&#039;&#039;&#039;, &#039;&#039;&#039;[[lib_de:System.NativeUInt|NativeUInt]]&#039;&#039;&#039; und &#039;&#039;&#039;[[lib_de:System.WordBool|WordBool]]&#039;&#039;&#039;, integrierten C++-Typen zugeordnet. In neueren Versionen von {{Delphi}} werden diese Typen als starke Aliase, wie &#039;&#039;&#039;[[lib_de:System.UITypes.TAlphaColor|TAlphaColor]]&#039;&#039;&#039; oder &#039;&#039;&#039;[[lib_de:System.UITypes.TImageIndex|TImageIndex]]&#039;&#039;&#039; behandelt. Damit C++ mit dieser Änderung kompatibel bleibt, erstellt C++ mit einem &#039;&#039;&#039;Klassen-Wrapper&#039;&#039;&#039; ebenfalls starke Aliase.&lt;br /&gt;
&lt;br /&gt;
Um z. B. [[lib_de:System.NativeInt|NativeInt]] zu verarbeiten, müssen Sie den Typ explizit angeben (NativeInt). Sehen Sie sich zur Klärung die folgenden Beispiele an:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
NativeInt i = 10; // error&lt;br /&gt;
NativeInt i = NativeInt(10);  // OK&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verwenden des Operators &amp;quot;delete&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Angenommen Ihr Code enthält den Operator &amp;lt;code&amp;gt;delete&amp;lt;/code&amp;gt;: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;delete ptr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
wobei &amp;lt;code&amp;gt;ptr&amp;lt;/code&amp;gt; ein Zeiger auf den freizugebenden Speicherblock ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auf mobilen Plattformen ruft der C++-&amp;lt;code&amp;gt;delete&amp;lt;/code&amp;gt;-Operator nicht immer einen Objektdestruktor auf. Der &amp;lt;code&amp;gt;delete&amp;lt;/code&amp;gt;-Operator arbeitet folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Wenn &amp;lt;code&amp;gt;ptr&amp;lt;/code&amp;gt; auf eine Klasse im {{Delphi}}-Stil zeigt, dekrementiert der &amp;lt;code&amp;gt;delete&amp;lt;/code&amp;gt;-Operator lediglich den Referenzzähler &#039;&#039;&#039;RefCount&#039;&#039;&#039; (die Anzahl von Referenzen auf diese Klasseninstanz). Der Objektdestruktor wird nur aufgerufen, wenn keine Referenzen auf dieses Objekt vorhanden sind.&lt;br /&gt;
* Wenn &amp;lt;code&amp;gt;ptr&amp;lt;/code&amp;gt; auf keine Klasse im {{Delphi}}-Stil zeigt, arbeitet der &amp;lt;code&amp;gt;delete&amp;lt;/code&amp;gt;-Operator genauso wie in C++-Anwendungen auf Desktop-Plattformen.&lt;br /&gt;
&lt;br /&gt;
===Auflösen von Linker-Warnungen zu String-Literalen===&lt;br /&gt;
&lt;br /&gt;
Der folgende Linker-Fehler:&lt;br /&gt;
&lt;br /&gt;
  Error: &amp;quot;__ZN6SystemplEPKwRKNS_13UnicodeStringE&amp;quot;, referenced from ...&lt;br /&gt;
&lt;br /&gt;
zeigt an, dass Ihr Code ein [[Wchar t|wchar_t]]-Konstantenliteral, das (mit dem &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;-Operator) einem UnicodeString hinzugefügt wurde, enthält.&lt;br /&gt;
&lt;br /&gt;
Ändern Sie das Konstantenliteral in [[Char16 t|char16_t]], um diesen Fehler zu vermeiden. Verwenden Sie das Makro &amp;lt;code&amp;gt;_D(&amp;amp;lt;Literal-String&amp;amp;gt;)&amp;lt;/code&amp;gt; für String-Literale, die mit UnicodeString interagieren.&lt;br /&gt;
&lt;br /&gt;
Ersetzen Sie beispielsweise:&lt;br /&gt;
&lt;br /&gt;
  L&amp;quot;Hello &amp;quot; + System::String(&amp;quot;world!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
durch&lt;br /&gt;
&lt;br /&gt;
 _D(&amp;quot;Hello &amp;quot;) + System::String(&amp;quot;world!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Informationen zu den mobilen Plattformen finden Sie unter &#039;&#039;&#039;[[Gesichtspunkte für geräteübergreifende C++-Anwendungen#Die String-Literale char16_t und wchar_t auf Mac OS X und iOS|Die String-Literale char16_t und wchar_t auf Mac OS X und iOS]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Für mobile Plattformen sind &amp;quot;Defines&amp;quot; erforderlich==&lt;br /&gt;
&lt;br /&gt;
Damit Ihr Projekt für mobile Plattformen und Desktop-Plattformen compiliert werden kann, stellen Sie Ihrer Projektimplementierung und den vorcompilierten Header-Dateien (z. B. &amp;quot;Project.cpp&amp;quot; und &amp;quot;ProjectPHC.h&amp;quot;) das folgende &amp;lt;code&amp;gt;#ifdef&amp;lt;/code&amp;gt;-Fragment voran:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#ifdef _WIN32&lt;br /&gt;
  #include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
#else&lt;br /&gt;
  typedef char _TCHAR;&lt;br /&gt;
  #define _tmain main&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Entfernen Sie FireMonkey-Komponenten, die nicht von den mobilen C++-Compilern unterstützt werden==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding-left: 2em&amp;quot; |Komponente für &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desktop-Plattformen&lt;br /&gt;
! style=&amp;quot;padding-left: 2em&amp;quot; |Komponente(n) für &amp;lt;br /&amp;gt; mobile Plattformen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; | [[lib_de:FMX.Menus.TMainMenu|TMainMenu]], [[lib_de:FMX.Menus.TPopupMenu|TPopupMenu]]&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; | [[lib_de:FMX.StdCtrls.TToolBar|TToolBar]], [[lib_de:FMX.StdCtrls.TSpeedButton|TSpeedButton]],  [[lib_de:FMX.Controls.TPopup|TPopup]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Folgenden finden Sie Einzelheiten zum Ersetzen dieser nicht unterstützten Typen.&lt;br /&gt;
&lt;br /&gt;
===TMainMenu oder TPopupMenu===&lt;br /&gt;
&lt;br /&gt;
Diese Komponenten werden auf mobilen Plattformen nicht unterstützt. Für die Migration Ihres C++-Desktop-Codes zu mobilem Code sollten Sie [[lib_de:FMX.Menus.TMainMenu|TMainMenu]] oder [[lib_de:FMX.Menus.TPopupMenu|TPopupMenu]] aus dem Code entfernen und stattdessen die folgenden, auf mobilen Plattformen unterstützten Komponenten verwenden:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TToolBar|TToolBar]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TSpeedButton|TSpeedButton]]&lt;br /&gt;
* [[lib_de:FMX.Controls.TPopup|TPopup]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;So erstellen Sie ein Menü mit [[lib_de:FMX.Controls.TPopup|TPopup]]&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
# Wählen Sie in der [[Tool-Palette|Tool-Palette]] die Komponente &#039;&#039;&#039;[[lib_de:FMX.StdCtrls.TToolBar|TToolBar]]&#039;&#039;&#039; aus, und ziehen Sie sie in den [[Formular-Designer|Formular-Designer]].&lt;br /&gt;
# Wählen Sie in der [[Tool-Palette|Tool-Palette]] die Komponente &#039;&#039;&#039;[[lib_de:FMX.StdCtrls.TSpeedButton|TSpeedButton]]&#039;&#039;&#039; aus, und legen Sie sie auf der TToolBar-Komponente ab.&lt;br /&gt;
# Wählen Sie im [[Formular-Designer|Formular- Designer]] die SpeedButton-Komponente aus, und wählen Sie dann im [[Objektinspektor|Objektinspektor]] in der Eigenschaft &#039;&#039;&#039;StyleLookup&#039;&#039;&#039; den Eintrag &#039;&#039;&#039;buttonstylelabel&#039;&#039;&#039; aus.&lt;br /&gt;
#:&lt;br /&gt;
#:* Weitere Einzelheiten zum Auswählen eines Stils in geräteübergreifenden Anwendungen finden Sie unter [[Mobile-Tutorial: Verwenden von Schaltflächen-Komponenten mit unterschiedlichen Stilen (iOS und Android)|Mobile-Tutorial: Verwenden von Schaltflächen-Komponenten mit unterschiedlichen Stilen (iOS und Android)]].&lt;br /&gt;
# Wählen Sie in der [[Tool-Palette|Tool-Palette]] die Komponente &#039;&#039;&#039;[[lib_de:FMX.Controls.TPopup|TPopup]]&#039;&#039;&#039; aus, und ziehen Sie sie in den [[Formular-Designer|Formular-Designer]].&lt;br /&gt;
# Weisen Sie in der [[Strukturansicht|Strukturansicht]] dieses TPopup als untergeordnetes Element von TSpeedButton zu.&lt;br /&gt;
# Wählen Sie in der [[Tool-Palette|Tool-Palette]] die Komponente &#039;&#039;&#039;[[lib_de:FMX.StdCtrls.TLabel|TLabel]]&#039;&#039;&#039; aus, und ziehen Sie sie in den [[Formular-Designer|Formular-Designer]].&lt;br /&gt;
# Weisen Sie in der [[Strukturansicht|Strukturansicht]] dieses TLabel als untergeordnetes Element von TPopup zu.&lt;br /&gt;
# Wählen Sie die TLabel-Komponente aus, und setzen Sie im [[Objektinspektor|Objektinspektor]] die Eigenschaft &#039;&#039;&#039;HitTest&#039;&#039;&#039; auf &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Wiederholen Sie die Schritte 6 bis 8, um mehrere Beschriftungen (TLabel) hinzuzufügen.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
::[[File:StructureView.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Implementieren Sie im [[Quelltext-Editor|Quelltext-Editor]] für die TSpeedButton-Komponente die folgende &#039;&#039;&#039;onClick&#039;&#039;&#039;-Ereignisbehandlungsroutine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)&lt;br /&gt;
{&lt;br /&gt;
     // Open the pop-up window.&lt;br /&gt;
     Popup1-&amp;gt;IsOpen = True;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Implementieren Sie für jede TLabel-Komponente, die Sie TPopup hinzugefügt haben, die geeigneten &#039;&#039;&#039;onClick&#039;&#039;&#039;-Ereignisbehandlungsroutinen.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Automatische Referenzzählung in C++|Automatische Referenzzählung in C++]]&lt;br /&gt;
* [[C++-Toolkette|C++-Toolkette]]&lt;br /&gt;
&lt;br /&gt;
* [[Mobile-Tutorials: Mobile Anwendungsentwicklung (iOS und Android)|Mobile-Tutorials: Mobile Anwendungsentwicklung (iOS und Android)]]&lt;br /&gt;
* [[Mobile-Tutorial: Verwenden von Schaltflächen-Komponenten mit unterschiedlichen Stilen (iOS und Android)|Mobile-Tutorial: Verwenden von Schaltflächen-Komponenten mit unterschiedlichen Stilen (iOS und Android)]]&lt;br /&gt;
* [[Codefragmente für die mobile Entwicklung|Codefragmente für die mobile Entwicklung]]&lt;br /&gt;
&lt;br /&gt;
* [[Delphi-RTTI und C++Builder|{{Delphi}}-RTTI und {{CBuilder}}]]&lt;br /&gt;
&lt;br /&gt;
* [[Migrieren von Delphi-Code zu mobilen Anwendungen vom Desktop aus|Migrieren von {{Delphi}}-Code von Desktop- zu mobilen Anwendungen]]&lt;br /&gt;
* [[Automatische Referenzzählung in mobilen Delphi-Compilern|Automatische Referenzzählung in mobilen {{Delphi}}-Compilern]]&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:XE5]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Migrating C++ Code to Mobile from Desktop]]&lt;br /&gt;
[[fr:Migration du code C++ en mobile depuis le bureau]]&lt;br /&gt;
[[ja:デスクトップ アプリケーションからモバイル アプリケーションへの C++ コードの移行]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Klassen-Explorer_(C%2B%2B)&amp;diff=192359</id>
		<title>Klassen-Explorer (C++)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Klassen-Explorer_(C%2B%2B)&amp;diff=192359"/>
		<updated>2015-10-02T14:42:05Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: Reviewed by Heidi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|C++-Optionen}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Tools &amp;amp;gt; Optionen &amp;amp;gt; C++-Optionen &amp;amp;gt; Klassen-Explorer}}&lt;br /&gt;
&lt;br /&gt;
Sie können dieses Dialogfeld auch im [[C++-Klassen-Explorer (Fenster)|C++-Klassen-Explorer]] mit dem Befehl &#039;&#039;&#039;Eigenschaften&#039;&#039;&#039; des Kontextmenüs öffnen.&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite legen Sie Optionen für den &#039;&#039;&#039;C++-Klassen-Explorer&#039;&#039;&#039; fest.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Per Vorgabe übergibt der C++-Compiler nur &#039;&#039;&#039;#includes&#039;&#039;&#039; und &#039;&#039;&#039;#defines&#039;&#039;&#039; für .cpp-Dateien.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Element&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Vorcompilierte Header aktivieren&lt;br /&gt;
|&lt;br /&gt;
Verarbeitet beim Öffnen eines Projektes vorcompilierte Header (&amp;lt;code&amp;gt;pch.h&amp;lt;/code&amp;gt;). Die Verwendung von vorcompilierten Headern kann die Compilierungsdauer reduzieren. Vorgabe ist ein.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Compiler-Meldungen im Meldungsfenster anzeigen&lt;br /&gt;
|&lt;br /&gt;
Zeigt Meldungen im Fenster &#039;&#039;&#039;Meldungen&#039;&#039;&#039; an, wenn der C++-Compiler während einer Klassen-Explorer-Sitzung Meldungen ausgibt. Vorgabe ist aus.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Benutzerdefiniert &lt;br /&gt;
|&lt;br /&gt;
Geben Sie in das Textfeld Befehlszeilenoptionen für den [[C++-Toolkette|C++-Compiler]] ein. Verwenden Sie für die Optionen dieselben Satzzeichen wie für die Befehlszeilenoberfläche des C++-Ziel-Compilers. Beispielsweise werden Optionen durch Leerzeichen getrennt. Vorgabe ist aus.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Aufzählungen anzeigen&lt;br /&gt;
|&lt;br /&gt;
Ermöglicht das Anzeigen von Aufzählungen in der obersten Ansicht. Vorgabe ist aus.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Typedefs anzeigen&lt;br /&gt;
|&lt;br /&gt;
Ermöglicht das Anzeigen von Typedefs in der obersten Ansicht. Vorgabe ist aus.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Reine abstrakte Klassen als Interfaces anzeigen&lt;br /&gt;
|&lt;br /&gt;
Wenn alle Funktionen in einer Klasse oder Struktur rein virtuell sind, und die Klasse oder Struktur keine Daten-Member enthält, wird die Klasse als Interface im Klassen-Explorer dargestellt. Ansonsten wird sie als Klasse dargestellt. Vorgabe ist ein.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Interfaces müssen von IUnknown abgeleitet sein&lt;br /&gt;
|&lt;br /&gt;
Zusätzlich zur vorherigen Anforderung (dass eine Klasse nur rein virtuelle Methoden enthalten darf) muss eine Klasse von IUnknown abgeleitet sein, um als Interface im Klassen-Explorer dargestellt zu werden. Ansonsten wird sie als Klasse dargestellt. Diese Option ist für ActiveX/COM hilfreich, denn hier sind Interfaces von IUnknown abgeleitet. Vorgabe ist aus.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Suche ohne Berücksichtigung der Groß-/Kleinschreibung&lt;br /&gt;
|&lt;br /&gt;
Ermöglicht das Suchen im Klassen-Explorer ohne Berücksichtigung der Groß-/Kleinschreibung. Vorgabe ist aus.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Platzhalter zulassen (?*)&lt;br /&gt;
|&lt;br /&gt;
Ermöglicht bei der Suche im C++-Klassen-Explorer die Verwendung der DOS-Standardplatzhalterzeichen ? und *:&lt;br /&gt;
*? steht für ein einzelnes Zeichen.&lt;br /&gt;
* * steht für eine beliebige Anzahl von Zeichen.&lt;br /&gt;
&lt;br /&gt;
Vorgabe ist aus.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[C++-Klassen-Explorer (Fenster)|C++-Klassen-Explorer (Fenster)]]&lt;br /&gt;
* [[Übersicht über den C++-Klassen-Explorer|Übersicht über den C++-Klassen-Explorer]]&lt;br /&gt;
* [[C++-Klassen-Explorer - Themen|C++-Klassen-Explorer - Themen]]&lt;br /&gt;
* [[Überblick zu vorcompilierten Headern|Überblick zu vorcompilierten Headern]] {{f|cmd|&lt;br /&gt;
* [[Befehlszeilenoptionen für vorcompilierte Header von BCC32|Befehlszeilenoptionen für vorcompilierte Header von BCC32]] }}&lt;br /&gt;
&lt;br /&gt;
[[Category:IDE-Referenz]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Class Explorer (C++)]]&lt;br /&gt;
[[fr:Explorateur de classes (C++)]]&lt;br /&gt;
[[ja:クラス エクスプローラ（C++）]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=String-Listen-Editor&amp;diff=189268</id>
		<title>String-Listen-Editor</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=String-Listen-Editor&amp;diff=189268"/>
		<updated>2015-08-31T10:25:51Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: Reviewed by Heidi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Eigenschaftseditoren - Index}}&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;hcDStringListEditor&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
Mit dem String-Listen-Editor können Sie während des Entwurfs Strings in beliebigen als &#039;&#039;&#039;TStrings&#039;&#039;&#039; deklarierten Eigenschaften hinzufügen, bearbeiten, laden und speichern.&lt;br /&gt;
&lt;br /&gt;
So öffnen Sie den String-Listen-Editor:&lt;br /&gt;
&lt;br /&gt;
# Fügen Sie eine Komponente in das Formular ein, die eine Stringliste verwendet (z.B. [[lib_de:Vcl.StdCtrls.TComboBox|Vcl.StdCtrls.TComboBox]]).&lt;br /&gt;
# Wählen Sie die Komponente aus, und führen Sie eine der folgenden Aktionen durch:&lt;br /&gt;
#* Klicken Sie in der Spalte &#039;&#039;&#039;Wert&#039;&#039;&#039; für eine Eigenschaft, die als &#039;&#039;&#039;[[lib_de:System.Classes.TStrings|TStrings]]&#039;&#039;&#039; deklariert ist, wie beispielsweise die Eigenschaft &#039;&#039;&#039;Items&#039;&#039;&#039; von TComboBox, auf die Ellipse [...].&lt;br /&gt;
#* Doppelklicken Sie bei den Eigenschaften des Typs &#039;&#039;&#039;TStrings&#039;&#039;&#039; in der Wertespalte auf &#039;&#039;&#039;(TStrings)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Wenn die Eigenschaft eine Werteliste ist, wird der &#039;&#039;&#039;Wertlisten-Editor&#039;&#039;&#039; angezeigt.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quelltext-Editor (Schaltfläche)==&lt;br /&gt;
&lt;br /&gt;
Klicken Sie auf die Schaltfläche &#039;&#039;&#039;Quelltext-Editor&#039;&#039;&#039;, um die Liste in Text zu konvertieren. Die Liste wird auf einer eigenen Seite im [[Quelltext-Editor|Quelltext-Editor]] angezeigt. Hier können Sie sie mit den Standardeditierbefehlen bearbeiten.&lt;br /&gt;
&lt;br /&gt;
Im String-Listen-Editor wird nur eine proportionale Schriftart verwendet, in der Zeichen unterschiedlich breit sein können. Für die Ausrichtung von Gleitkomma- oder anderen horizontal ausgerichteten Werten (siehe das folgende Beispiel) sollten Sie besser eine Schriftart mit fester Breite oder eine nicht-proportionale Schriftart verwenden:&lt;br /&gt;
&lt;br /&gt;
   1234.5&lt;br /&gt;
      3.1416&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den Quelltext-Editor aus dem String-Listen-Editor aufrufen, können Sie eine nicht-proportionale Schriftart, wie Courier, verwenden. Damit können Listen besser ausgerichtet werden. (Wählen Sie zum Festlegen der im Quelltext-Editor verwendeten Schriftart &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Tools &amp;amp;gt; Optionen &amp;amp;gt; Editor-Optionen&amp;amp;gt; [[Anzeigeoptionen|Anzeige]]&#039;&#039;&#039;&amp;lt;/font&amp;gt;, und wählen Sie aus der Dropdown-Liste eine &#039;&#039;&#039;Editorschrift&#039;&#039;&#039; aus.)&lt;br /&gt;
&lt;br /&gt;
Um zum String-Listen-Editor zurückzukehren, klicken Sie mit der rechten Maustaste in das Fenster und wählen aus dem Kontextmenü des Quelltext-Editors &#039;&#039;&#039;Seite schließen&#039;&#039;&#039;. Klicken Sie dann zum Speichern der Datei bei der Eingabeaufforderung &#039;&#039;&#039;Änderungen in dfm.Form1.Memo1.Lines speichern?&#039;&#039;&#039; auf &#039;&#039;&#039;Ja&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Kontextmenü des String-Listen-Editors==&lt;br /&gt;
&lt;br /&gt;
Das Kontextmenü des String-Listen-Editors (klicken Sie im Editor mit der rechten Maustaste) enthält folgende Optionen:&lt;br /&gt;
&lt;br /&gt;
===Laden===&lt;br /&gt;
&lt;br /&gt;
Klicken Sie auf &#039;&#039;&#039;Laden&#039;&#039;&#039;, um das Dialogfeld &#039;&#039;&#039;[[String-Liste laden|String-Liste laden]]&#039;&#039;&#039; zu öffnen, in dem Sie eine Datei auswählen können, die in den String-Listen-Editor eingelesen werden soll.&lt;br /&gt;
&lt;br /&gt;
===Speichern===&lt;br /&gt;
&lt;br /&gt;
Klicken Sie auf &#039;&#039;&#039;Speichern&#039;&#039;&#039;, um die aktuelle String-Liste in eine Datei zu schreiben. {{variables|Product}} öffnet das Dialogfeld &#039;&#039;&#039;[[String-Liste speichern (Dialogfeld)|String-Liste speichern]]&#039;&#039;&#039;, in dem Sie ein Verzeichnis und einen Dateinamen angeben können.&lt;br /&gt;
&lt;br /&gt;
===Listenfeld===&lt;br /&gt;
&lt;br /&gt;
Ein Listenfeld ist ein Sonderfall, da es String-Listeneinträge und Einträge, die mit einem Eintragseditor hinzugefügt wurden, unterstützt. Die beiden Eintragstypen sind jedoch nicht kompatibel. Weitere Informationen finden Sie unter [[ListBox-Eintragseditor|ListBox-Eintragseditor]].&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
*[[Wertlisten-Editor|Wertlisten-Editor]]&lt;br /&gt;
*[[String-Liste laden|String-Liste laden]]&lt;br /&gt;
*[[String-Liste speichern (Dialogfeld)|String-Liste speichern (Dialogfeld)]]&lt;br /&gt;
* [[Quelltext-Editor anpassen|Quelltext-Editor anpassen]]&lt;br /&gt;
* [[ListBox-Eintragseditor|ListBox-Eintragseditor]]&lt;br /&gt;
&lt;br /&gt;
[[Category:RAD Studio – Referenz]]&lt;br /&gt;
&lt;br /&gt;
[[en:String List editor]]&lt;br /&gt;
[[fr:Editeur de liste de chaînes]]&lt;br /&gt;
[[ja:文字列リスト エディタ]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Ausf%C3%BCllen_der_Bereitstellungsseite&amp;diff=210471</id>
		<title>Ausfüllen der Bereitstellungsseite</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Ausf%C3%BCllen_der_Bereitstellungsseite&amp;diff=210471"/>
		<updated>2015-04-02T20:40:58Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: Reviewed by Heidi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Schritte bei der Entwicklung von geräteübergreifenden Anwendungen}}&lt;br /&gt;
&lt;br /&gt;
Das Erstellen des &#039;&#039;&#039;Bereitstellungsprofils&#039;&#039;&#039; auf der Seite &#039;&#039;&#039;[[Bereitstellung]]&#039;&#039;&#039; ist ein erforderlicher, vorbereitender Schritt bei:&lt;br /&gt;
* Der Distribution von Anwendungen für die Zielpattformen &#039;&#039;&#039;OS X&#039;&#039;&#039; oder &#039;&#039;&#039;Android&#039;&#039;&#039; &lt;br /&gt;
* Der Ausführung sowie der Distribution von Anwendungen für die Zielplattformen &#039;&#039;&#039;iOS-Gerät - 32 Bit&#039;&#039;&#039; und &#039;&#039;&#039;iOS-Gerät - 64 Bit&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die erforderlichen Schritte hängen von der [[Unterstützte Zielplattformen|Zielplattform]] und der [[Übersicht über Zielplattformen#Verwenden des Konfigurationsknotens|Plattformkonfiguration]] ab, wie in den folgenden Anleitungen gezeigt.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Sie können die Seite &#039;&#039;&#039;[[Bereitstellung]]&#039;&#039;&#039; entweder im Dialogfeld {{Menu|Projektoptionen}} oder im Dialogfeld {{Menu|Tools-Optionen}} öffnen:&lt;br /&gt;
:* In den {{Menu|Tools-Optionen}} können Sie die Werte definieren, die {{Variables|Product}} verwendet, wenn Sie keinen Wert in den {{Menu|Projektoptionen}} festlegen.&lt;br /&gt;
:* In den {{Menu|Projektoptionen}} können Sie die Werte für &#039;&#039;&#039;Ihr aktuelles Projekt&#039;&#039;&#039; angeben.&lt;br /&gt;
&lt;br /&gt;
== Erforderliche Schritte für bestimmte Build-Typen ==&lt;br /&gt;
=== OS X-Plattform ===&lt;br /&gt;
# Öffnen Sie die Seite &#039;&#039;&#039;[[Bereitstellung]]&#039;&#039;&#039; im Dialogfeld &#039;&#039;&#039;Tools-Optionen&#039;&#039;&#039; oder im Dialogfeld &#039;&#039;&#039;Projektoptionen&#039;&#039;&#039;.&lt;br /&gt;
#: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Beim Konfigurieren der Seite &#039;&#039;&#039;Bereitstellung&#039;&#039;&#039; im Dialogfeld &#039;&#039;&#039;Projektoptionen&#039;&#039;&#039; müssen Sie in der Dropdown-Liste &#039;&#039;&#039;Ziel&#039;&#039;&#039; die Plattform &#039;&#039;&#039;OS X&#039;&#039;&#039; auswählen.&lt;br /&gt;
# In der Dropdown-Liste &#039;&#039;&#039;Build-Typ&#039;&#039;&#039; wählen Sie die Option &#039;&#039;&#039;OS X - Anwendungs-Store&#039;&#039;&#039; aus.&lt;br /&gt;
# Geben Sie in das Feld &#039;&#039;&#039;Mac-Entwicklerprofil&#039;&#039;&#039; den Namen Ihres [[Bereitstellung#Zertifikatsname|Mac-Entwicklerzertifikats für Fremdhersteller]] ein. Zum Beispiel: Mac-Entwickler für Fremdhersteller.&lt;br /&gt;
# Geben Sie in das Feld &#039;&#039;&#039;Installationsprofil für Fremdhersteller&#039;&#039;&#039; den Namen Ihres [[Bereitstellung#Zertifikatsname|Mac-Installationszertifikats für Fremdhersteller]] ein. Zum Beispiel: Mac-Installation für Fremdhersteller.&lt;br /&gt;
&lt;br /&gt;
=== iOS-Geräteplattform (Debug) ===&lt;br /&gt;
# Öffnen Sie die Seite &#039;&#039;&#039;[[Bereitstellung]]&#039;&#039;&#039; im Dialogfeld {{Menu|Projektoptionen}} oder im Dialogfeld {{Menu|Tools-Optionen}}.&lt;br /&gt;
#: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Beim Konfigurieren der Seite &#039;&#039;&#039;Bereitstellung&#039;&#039;&#039; im Dialogfeld {{Menu|Projektoptionen}} müssen Sie in der Dropdown-Liste &#039;&#039;&#039;Ziel&#039;&#039;&#039; die Plattform &#039;&#039;&#039;iOS-Gerät&#039;&#039;&#039; auswählen.&lt;br /&gt;
# In der Dropdown-Liste &#039;&#039;&#039;Build-Typ&#039;&#039;&#039; wählen Sie &#039;&#039;&#039;iOS-Gerät - 32 Bit - Debug&#039;&#039;&#039; oder &#039;&#039;&#039;iOS-Gerät - 64 Bit - Debug&#039;&#039;&#039; aus.&lt;br /&gt;
# Geben Sie in das Feld &#039;&#039;&#039;Mobiles Bereitstellungsprofil&#039;&#039;&#039; &amp;lt;code&amp;gt;Auto&amp;lt;/code&amp;gt; oder einen gültigen [[Bereitstellung#Mobiles Bereitstellungsprofil|Namen des mobilen Bereitstellungsprofils]] ein. &lt;br /&gt;
# Geben Sie in das Feld &#039;&#039;&#039;Entwicklerzertifikat&#039;&#039;&#039; &amp;lt;code&amp;gt;Auto&amp;lt;/code&amp;gt; oder einen gültigen [[Bereitstellung#Zertifikatsname|Namen des Entwicklerzertifikats]] ein. &lt;br /&gt;
&lt;br /&gt;
=== iOS-Geräteplattform (Ad-hoc) ===&lt;br /&gt;
# Öffnen Sie die Seite &#039;&#039;&#039;[[Bereitstellung]]&#039;&#039;&#039; im Dialogfeld {{Menu|Projektoptionen}} oder im Dialogfeld {{Menu|Tools-Optionen}}.&lt;br /&gt;
#: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Beim Konfigurieren der Seite &#039;&#039;&#039;Bereitstellung&#039;&#039;&#039; im Dialogfeld {{Menu|Projektoptionen}} müssen Sie in der Dropdown-Liste &#039;&#039;&#039;Ziel&#039;&#039;&#039; die Plattform &#039;&#039;&#039;iOS-Gerät&#039;&#039;&#039; auswählen.&lt;br /&gt;
# Wählen Sie in der Dropdown-Liste &#039;&#039;&#039;Build-Typ&#039;&#039;&#039; den Eintrag &#039;&#039;&#039;iOS-Gerät - 32 Bit - Ad-hoc&#039;&#039;&#039; oder &#039;&#039;&#039;iOS-Gerät - 64 Bit - Ad-hoc&#039;&#039;&#039; aus.&lt;br /&gt;
# Geben Sie in das Feld &#039;&#039;&#039;Entwicklerzertifikat&#039;&#039;&#039; &amp;lt;code&amp;gt;Auto&amp;lt;/code&amp;gt; oder einen gültigen [[Bereitstellung#Zertifikatsname|Namen des Distributionszertifikats]] ein.&lt;br /&gt;
# Geben Sie in das Feld &#039;&#039;&#039;Mobiles Bereitstellungsprofil&#039;&#039;&#039; &amp;lt;code&amp;gt;Auto&amp;lt;/code&amp;gt; oder einen gültigen [[Bereitstellung#Mobiles Bereitstellungsprofil|Namen des mobilen Bereitstellungsprofils]] ein. &lt;br /&gt;
&lt;br /&gt;
=== iOS-Geräteplattform (Anwendungs-Store) ===&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Für den Build-Typ &#039;&#039;&#039;iOS-Gerät - 32 Bit - Anwendungs-Store&#039;&#039;&#039; sind keine Bereitstellungsinformationen erforderlich. Siehe [[Bereitstellen von iOS-Anwendungen für die Übermittlung an den App Store#Unterstützen von 32-Bit-iOS-Geräten|Bereitstellen von iOS-Anwendungen für die Übermittlung an den App Store, Unterstützen von 32-Bit-iOS-Geräten]].&lt;br /&gt;
&lt;br /&gt;
# Öffnen Sie die Seite &#039;&#039;&#039;[[Bereitstellung]]&#039;&#039;&#039; im Dialogfeld {{Menu|Tools-Optionen}} oder im Dialogfeld {{Menu|Projektoptionen}}.&lt;br /&gt;
#: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Beim Konfigurieren der Seite &#039;&#039;&#039;Bereitstellung&#039;&#039;&#039; im Dialogfeld {{Menu|Projektoptionen}} müssen Sie in der Dropdown-Liste &#039;&#039;&#039;Ziel&#039;&#039;&#039; die Plattform &#039;&#039;&#039;iOS-Gerät&#039;&#039;&#039; auswählen.&lt;br /&gt;
# In der Dropdown-Liste &#039;&#039;&#039;Build-Typ&#039;&#039;&#039; wählen Sie &#039;&#039;&#039;iOS-Gerät - 64 Bit - Anwendungs-Store&#039;&#039;&#039; aus.&lt;br /&gt;
# Geben Sie in das Feld &#039;&#039;&#039;Entwicklerzertifikat&#039;&#039;&#039; &amp;lt;code&amp;gt;Auto&amp;lt;/code&amp;gt; oder einen gültigen [[Bereitstellung#Zertifikatsname|Namen des Distributionszertifikats]] ein. &lt;br /&gt;
# Geben Sie in das Feld &#039;&#039;&#039;Mobiles Bereitstellungsprofil&#039;&#039;&#039; &amp;lt;code&amp;gt;Auto&amp;lt;/code&amp;gt; oder einen gültigen [[Bereitstellung#Mobiles Bereitstellungsprofil|Namen des mobilen Bereitstellungsprofils]] ein.&lt;br /&gt;
&lt;br /&gt;
=== Android-Plattform (Anwendungs-Store) ===&lt;br /&gt;
&lt;br /&gt;
# Öffnen Sie die Seite &#039;&#039;&#039;[[Bereitstellung]]&#039;&#039;&#039; im Dialogfeld {{Menu|Projektoptionen}} oder im Dialogfeld {{Menu|Tools-Optionen}}.&lt;br /&gt;
#: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Beim Konfigurieren der Seite &#039;&#039;&#039;Bereitstellung&#039;&#039;&#039; im Dialogfeld {{Menu|Projektoptionen}} müssen Sie in der Dropdown-Liste &#039;&#039;&#039;Ziel&#039;&#039;&#039; die Plattform &#039;&#039;&#039;Android&#039;&#039;&#039; auswählen.&lt;br /&gt;
# In der Dropdown-Liste &#039;&#039;&#039;Build-Typ&#039;&#039;&#039; wählen Sie &#039;&#039;&#039;Android - Anwendungs-Store&#039;&#039;&#039; aus.&lt;br /&gt;
# Klicken Sie unter &#039;&#039;&#039;Keystore&#039;&#039;&#039; im Feld &#039;&#039;&#039;Datei&#039;&#039;&#039; auf &#039;&#039;&#039;...&#039;&#039;&#039;, und wählen Sie dann eine vorhandene Keystore-Datei aus. Wenn Sie keine Keystore-Datei haben, klicken Sie auf &#039;&#039;&#039;Neuer Keystore&#039;&#039;&#039;, um den Experten [[Neuen Keystore/Alias erstellen]] zu öffnen und [[Erstellen einer KeyStore-Datei|eine Keystore-Datei zum Signieren zu erstellen]].&lt;br /&gt;
# Geben Sie das Passwort für die angegebene Keystore-Datei in das Feld &#039;&#039;&#039;Passwort&#039;&#039;&#039; ein.&lt;br /&gt;
# Wählen Sie im Feld &#039;&#039;&#039;Alias im Keystore&#039;&#039;&#039; den Alias aus der angegebenen Keystore-Datei, die Sie zum Signieren verwenden möchten.&lt;br /&gt;
# Geben Sie in das Feld &#039;&#039;&#039;Aliaspasswort&#039;&#039;&#039; das Passwort für den angegebenen Alias ein.&lt;br /&gt;
&lt;br /&gt;
==Themen==&lt;br /&gt;
&lt;br /&gt;
* [[Erstellen einer KeyStore-Datei]]&lt;br /&gt;
* [[Hinzufügen eines Zertifikats zu einer Keystore-Datei]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Bereitstellen von iOS-Anwendungen]]&lt;br /&gt;
* [[Bereitstellung]]&lt;br /&gt;
* [[Mac OS X-Anwendungsentwicklung]]&lt;br /&gt;
* [[Mobile iOS-Anwendungsentwicklung]]&lt;br /&gt;
* [[Vorbereiten von Android-Anwendungen für die Bereitstellung]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Ausfullen der Bereitstellungsseite}}&lt;br /&gt;
[[Category:XE4]]&lt;br /&gt;
[[Category:Geräteübergreifend]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Completing the Provisioning Page]]&lt;br /&gt;
[[fr:Compléter la page Approvisionnement]]&lt;br /&gt;
[[ja:［プロビジョニング］ページに必要な情報をすべて入力する]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Verbinden_zu_Remote-Anwendungen_mithilfe_von_App-Tethering&amp;diff=181607</id>
		<title>Verbinden zu Remote-Anwendungen mithilfe von App-Tethering</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Verbinden_zu_Remote-Anwendungen_mithilfe_von_App-Tethering&amp;diff=181607"/>
		<updated>2015-04-02T20:03:11Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: Reviewed by Heidi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Verwenden von App-Tethering}}&lt;br /&gt;
&lt;br /&gt;
Bevor die [[lib_de:System.Tether.AppProfile.TTetheringAppProfile|TTetheringAppProfile]]-Komponenten zweier Anwendungen Aktionen und Daten über App-Tethering teilen können, müssen diese Anwendungen sich gegenseitig mithilfe der Komponente [[lib_de:System.Tether.Manager.TTetheringManager|TTetheringManager]] ermitteln, gekoppelt werden und dann die TTetheringAppProfile-Komponenten verbunden werden.&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen für Adapter und Protokolle==&lt;br /&gt;
&lt;br /&gt;
Für die verschiedenen [[lib_de:System.Tether.Manager.TTetheringAdapter|Adapter]] und [[lib_de:System.Tether.Manager.TTetheringProtocol|Protokolle]], die das App-Tethering-Feature zum Koppeln von Anwendungen bzw. zum Austauschen von Daten bereitstellt, können spezielle Voraussetzungen erforderlich sein.&lt;br /&gt;
&lt;br /&gt;
In den folgenden Themen können Sie die Voraussetzungen für die integrierten Adapter und Protokolle überprüfen:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Tether.NetworkAdapter.TTetheringNetworkAdapter#Voraussetzungen|TTetheringNetworkAdapter]], Adapter für Verbindungen zwischen Anwendungen, die auf demselben Gerät ausgeführt werden oder über ein IP-Netzwerk, wie einem LAN (Local Area Network) oder dem Internet, erreichbar sind.&lt;br /&gt;
* [[lib_de:System.Tether.BluetoothAdapter.TTetheringBluetoothAdapter#Voraussetzungen|TTetheringBluetoothAdapter]], Adapter für Verbindungen zwischen Anwendungen, die auf verschiedenen Geräten ausgeführt werden, die erreichbar und über [[Verwenden von Classic Bluetooth|Classic Bluetooth]] gekoppelt sind.&lt;br /&gt;
* [[lib_de:System.Tether.TCPProtocol.TTetheringTCPProtocol#Voraussetzungen|TTetheringTCPProtocol]], von beiden Adaptern verwendetes Kommunikationsprotokoll.&lt;br /&gt;
&lt;br /&gt;
==Auswählen eines Verfahrens zum Ermitteln, Koppeln und Verbinden mit Remote-Anwendungen==&lt;br /&gt;
&lt;br /&gt;
Sie können mit einem der folgenden Verfahren Anwendungen ermitteln und koppeln:&lt;br /&gt;
&lt;br /&gt;
* [[#Verbinden von Anwendungen über Gruppen|Definieren von zwei Anwendungen als zur selben Gruppe gehörig und Verwenden der automatischen Ermittlung und Koppelung]].&lt;br /&gt;
* [[#Manuelles Verbinden mit Remote-Anwendungen|Abrufen einer Liste mit ermittelten Anwendungen und dann Anfordern der Koppelung mit bestimmten Anwendungen]].&lt;br /&gt;
&lt;br /&gt;
Die Verwendung von Gruppen ist einfacher, das manuelle Verfahren bietet dagegen eine größere Flexibilität, und beide Verfahren unterstützen die [[#Verwenden eines Passworts für die Koppelung|passwortgeschützte Koppelung]]. Wählen Sie das Verfahren aus, das Ihren Anforderungen am besten gerecht wird; Sie können auch beide Verfahren mit demselben TTetheringManager kombinieren.&lt;br /&gt;
&lt;br /&gt;
===Verbinden von Anwendungen über Gruppen===&lt;br /&gt;
&lt;br /&gt;
Wenn sich Ihre Anwendungen automatisch ermitteln und sich gegenseitig koppeln sollen:&lt;br /&gt;
&lt;br /&gt;
# Geben Sie in die Eigenschaft [[lib_de:System.Tether.Manager.TTetheringProfile.Group|Group]] der TTetheringAppProfile-Komponente jeder Anwendung denselben String ein.&lt;br /&gt;
# Rufen Sie die Methode [[lib_de:System.Tether.Manager.TTetheringManager.AutoConnect|AutoConnect]] der TTetheringManager-Komponente jeder Anwendung zur Laufzeit auf.&lt;br /&gt;
&lt;br /&gt;
Wählen Sie einen möglichst eindeutigen &amp;quot;Group&amp;quot;-String aus, um zu verhindern, dass Ihre Anwendungen sich versehentlich mit Fremdanwendungen verbinden, die zufällig dieselbe &amp;quot;Group&amp;quot; verwenden. Beispielsweise können Sie eine [http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] als &amp;quot;Group&amp;quot;-String verwenden.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Fremdanwendungen können eventuell trotzdem Ihre &amp;quot;Group&amp;quot; ermitteln und damit absichtlich eine Verbindung mit Ihren Anwendungen herstellen. Wenn Sie nicht zulassen möchten, dass Fremdanwendungen automatisch eine Verbindung mit Ihren Anwendungen über App-Tethering herstellen, [[#Verwenden eines Passworts für die Koppelung|verwenden Sie ein Passwort]].&lt;br /&gt;
&lt;br /&gt;
Wenn Sie in einer Ihrer Anwendungen AutoConnect aufrufen, ermittelt Ihre Anwendung alle anderen Anwendungen, die auch App-Tethering verwenden, und Ihre Anwendung wird automatisch mit denjenigen ermittelten Anwendungen gekoppelt und verbunden, die eine TTetheringAppProfile-Komponente mit derselben &amp;quot;Group&amp;quot; wie Ihre TTetheringAppProfile-Komponente verwenden. Am Ende von AutoConnect wird das Ereignis [[lib_de:System.Tether.Manager.TTetheringManager.OnEndAutoConnect|OnEndAutoConnect]] ausgelöst.&lt;br /&gt;
&lt;br /&gt;
===Manuelles Verbinden mit Remote-Anwendungen===&lt;br /&gt;
&lt;br /&gt;
Wenn Sie eine größere Kontrolle über die Ermittlungs- und Koppelungsphasen der App-Tethering-Verbindung haben möchten, können Sie das folgende Verfahren anwenden:&lt;br /&gt;
&lt;br /&gt;
# Rufen Sie die Methode [[lib_de:System.Tether.Manager.TTetheringManager.DiscoverManagers|DiscoverManagers]] der TTetheringManager-Komponente Ihrer Anwendung auf, um die Ermittlung anderer Anwendungen, die das App-Tethering verwenden, zu starten. Bei Abschluss der Ermittlung wird das Ereignis [[lib_de:System.Tether.Manager.TTetheringManager.OnEndManagersDiscovery|OnEndManagersDiscovery]] Ihres Managers ausgelöst.&lt;br /&gt;
# Rufen Sie [[lib_de:System.Tether.Manager.TTetheringManager.PairManager|TTetheringManager.PairManager]] für die gewünschten Anwendungen aus der Liste der ermittelten [[lib_de:System.Tether.Manager.TTetheringManager.RemoteManagers|RemoteManagers]] Ihres TTetheringManager auf, um eine Koppelung herzustellen. Bei jeder Koppelung Ihres Managers mit einem Remote-Manager wird das Ereignis [[lib_de:System.Tether.Manager.TTetheringManager.OnEndProfilesDiscovery|OnEndProfilesDiscovery]] Ihres Managers ausgelöst.&lt;br /&gt;
# Rufen Sie in Ihrer TTetheringAppProfile-Komponente [[lib_de:System.Tether.Manager.TTetheringProfile.Connect|Connect]] für die gewünschten Profile aus der Liste der ermittelten [[lib_de:System.Tether.Manager.TTetheringManager.RemoteProfiles|RemoteProfiles]] Ihres TTetheringManager auf, um eine Verbindung herzustellen.&lt;br /&gt;
&lt;br /&gt;
Remote-Manager und Remote-Profile sind Instanzen von [[lib_de:System.Tether.Manager.TTetheringManagerInfo|TTetheringManagerInfo]] bzw. von [[lib_de:System.Tether.Manager.TTetheringProfileInfo|TTetheringProfileInfo]]. Diese Klassen stellen Informationen über eine Instanz von TTetheringManager oder TTetheringAppProfile aus einer Remote-Anwendung bereit. Anhand dieser Informationen können Sie festlegen, ob mit einem bestimmten Remote-Manager oder -Profil gekoppelt bzw. verbunden werden soll.&lt;br /&gt;
&lt;br /&gt;
==Herstellen von Verbinden zu Anwendungen außerhalb Ihres Subnetzes==&lt;br /&gt;
&lt;br /&gt;
Standardmäßig führen [[lib_de:System.Tether.Manager.TTetheringManager.AutoConnect|AutoConnect]] und [[lib_de:System.Tether.Manager.TTetheringManager.DiscoverManagers|DiscoverManagers]] die Suche im Subnetz des LAN (Local Area Network) durch, in dem sich das Gerät mit Ihrer Anwendung befindet.&lt;br /&gt;
&lt;br /&gt;
Sie können dieses Verhalten aber mit dem optionalen Parameter {{Arg|Target}} überschreiben und eine IP-Adresse oder ein Subnetz angeben:&lt;br /&gt;
&lt;br /&gt;
* Um eine IP-Adresse für die Suche nach Remote-Managern festzulegen, geben Sie diese IP-Adresse als {{Arg|Target}} an.&lt;br /&gt;
* Um ein Subnetz mit IP-Adressen festzulegen, geben Sie eine IP-Adresse mit 0 als vierter Nummer an. Wenn Sie zum Beispiel &amp;quot;192.168.4.0&amp;quot; als {{Arg|Target}} angeben, durchsucht Ihr Manager das Subnetz 192.168.4.x nach Remote-Managern.&lt;br /&gt;
*: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Sie können keine umfassenderen Subnetze angeben. &amp;quot;192.168.0.0&amp;quot; wird beispielsweise nicht unterstützt.&lt;br /&gt;
&lt;br /&gt;
==Verwenden eines Passworts für die Koppelung==&lt;br /&gt;
&lt;br /&gt;
Die RTL stellt passwortbasierte Sicherheit für App-Tethering-Koppelungen zwischen Anwendungen bereit. Mit diesem passwortbasierten System können Sie eine eigene Sicherheitsprozedur implementieren. Zum Beispiel können Sie:&lt;br /&gt;
&lt;br /&gt;
* Für Benutzer transparent festlegen, dass Anwendungen automatisch eine Verbindung zueinander herstellen, wenn sie sich gegenseitig erkennen.&lt;br /&gt;
* Festlegen, dass Benutzer manuell ein Passwort in beide Anwendungen eingeben müssen, damit eine Verbindung hergestellt werden kann.&lt;br /&gt;
&lt;br /&gt;
Legen Sie mit der Eigenschaft [[lib_de:System.Tether.Manager.TTetheringManager.Password|Password]] Ihres Managers ein Passwort fest, dass Remote-Managern bekannt sein muss, um eine Koppelung mit Ihrem Manager herzustellen. Wenn ein Manager versucht, eine Koppelung mit einem passwortgeschützten Remote-Manager herzustellen, wird das Ereignis [[lib_de:System.Tether.Manager.TTetheringManager.OnRequestManagerPassword|OnRequestManagerPassword]] des lokalen Managers ausgelöst, und der lokale Manager muss das korrekte Passwort in diesem Ereignis angeben. Ansonsten schlägt die Koppelung fehl.&lt;br /&gt;
&lt;br /&gt;
==Dauerhafte Koppelungsinformationen==&lt;br /&gt;
&lt;br /&gt;
Beim Koppeln Ihres Managers mit einem Remote-Manager speichert Ihr Manager den Bezeichner des Remote-Managers und einen Hash-Code, den beide Manager während des Koppelungsprozesses genutzt haben. Die Verbindung der Manager kann gelegentlich abbrechen, beispielsweise weil sie sich einige Zeit nicht mehr in gegenseitiger Reichweite (bezogen auf das Tethering) befinden. Wenn beide Manager sich wieder in Reichweite befinden, können sie sich mit den Daten, die sie während des vorherigen Koppelungsprozesses gespeichert haben, wiedererkennen und authentifizieren. Für diese Authentifizierung ist kein Passwort erforderlich, auch wenn beim ursprünglichen Koppelungsprozess ein Passwort benötigt wurde.&lt;br /&gt;
&lt;br /&gt;
Standardmäßig speichern [[lib_de:System.Tether.Manager.TTetheringManager|Manager]] Informationen über Remote-Manager, die mit ihnen gekoppelt sind, im Arbeitsspeicher. Daher kann Ihr Manager eine Verbindung mit einem zuvor gekoppelten Remote-Manager nur in derselben Sitzung herstellen. Wenn Sie Ihre Anwendung neu starten, gehen die Koppelungsdaten Ihres Managers verloren, und ohne Passwort kann keine Verbindung mit zuvor gekoppelten Remote-Managern wiederhergestellt werden, wenn ursprünglich ein Passwort erforderlich war.&lt;br /&gt;
&lt;br /&gt;
Sie können eine Unterklasse von [[lib_de:System.Tether.Manager.TTetheringCustomStorage|TTetheringCustomStorage]] implementieren und dem Parameter {{Arg|AStorage}} des Ereignisses [[lib_de:System.Tether.Manager.TTetheringManager.OnRequestStorage|OnRequestStorage]] Ihres Managers eine Instanz zuweisen, um Ihren Manager persistent zu definieren. In Ihrer Implementierung können diese Daten in einem persistenten Medium, wie z. B. einer lokalen Datei, gespeichert werden.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Damit sich zwei Manager nach einem Neustart koppeln können, müssen beide Manager persistent sein.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
In der Codebeispiel-Unit [[samp_en:RTL.TetheringIniFileStorage (Delphi)|TetheringIniFileStorage]] finden Sie ein Beispiel für die Implementierung einer Unterklasse von [[lib_de:System.Tether.Manager.TTetheringCustomStorage|TTetheringCustomStorage]]. Sie können mit der Unit {{Code|TetheringIniFileStorage}} die Koppelungsdaten Ihrer [[lib_de:System.Tether.Manager.TTetheringManager|TTetheringManager]]-Komponente in einer [https://en.wikipedia.org/wiki/INI_file INI-Datei] dauerhaft speichern.&lt;br /&gt;
&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Hinzufügen von App-Tethering zu Anwendungen|Hinzufügen von App-Tethering zu Anwendungen]]&lt;br /&gt;
* [[Teilen und Ausführen von Aktionen für Remote-Anwendungen mithilfe von App-Tethering|Teilen und Ausführen von Aktionen für Remote-Anwendungen mithilfe von App-Tethering]]&lt;br /&gt;
* [[Teilen von Daten mit Remote-Anwendungen mithilfe von App-Tethering|Teilen von Daten mit Remote-Anwendungen mithilfe von App-Tethering]]&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Tether.AppProfile.TTetheringAppProfile|TTetheringAppProfile]]&lt;br /&gt;
* [[lib_de:System.Tether.Manager.TTetheringManager|TTetheringManager]]&lt;br /&gt;
&lt;br /&gt;
* [[samp_en:RTL.BDShoppingList Sample|BDShoppingList]] (Beispiel)&lt;br /&gt;
* [[samp_en:RTL.DesktopCast Sample|DesktopCast]] (Beispiel)&lt;br /&gt;
* [[samp_en:RTL.MediaPlayer Sample|MediaPlayer]] (Beispiel)&lt;br /&gt;
* [[samp_en:RTL.PhotoWall Sample|PhotoWall]] (Beispiel)&lt;br /&gt;
&lt;br /&gt;
[[Category:XE6]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Connecting to Remote Applications Using App Tethering]]&lt;br /&gt;
[[fr:Connexion à des applications distantes à l&#039;aide du tethering d&#039;app]]&lt;br /&gt;
[[ja:アプリケーション テザリングを使用したリモート アプリケーションへの接続]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Template_einf%C3%BCgen&amp;diff=177108</id>
		<title>Template einfügen</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/d/index.php?title=Template_einf%C3%BCgen&amp;diff=177108"/>
		<updated>2015-01-24T18:31:31Z</updated>

		<summary type="html">&lt;p&gt;Hgunther: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Eigenschaftseditoren - Index}}&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;hcDInsertFromTemplate&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Kontextmenü Menü-Designer &amp;amp;gt; Aus Template einfügen&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie dieses Dialogfeld dazu, ein Menü mit einer vordefinierten Vorlage einzufügen.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Menü Bearbeiten&lt;br /&gt;
|&lt;br /&gt;
Fügt das Standard-Bearbeitungsmenü mit den Elementen Rückgängig, Wiederholen, Aussschneiden, Kopieren, Einfügen, Inhalt einfügen, Suchen, Ersetzen, Gehe zu, Beziehungen und Objekte ein.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Menü Datei&lt;br /&gt;
|&lt;br /&gt;
Fügt das Standard-Dateimenü mit den Elementen Neu, Öffnen, Speichern, Speichern unter, Drucken, Drucker einrichten und Beenden ein.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Menü Datei (für TextEdit-Beispiel)&lt;br /&gt;
|&lt;br /&gt;
Fügt das Dateinmenü mit den Standardelementen und auch den Menüpunkt Schließen ein.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Menü Hilfe&lt;br /&gt;
|&lt;br /&gt;
Fügt das Hilfemenü mit den Elementen Inhalt, Themenbezogene Hilfe , Hilfe verwenden und Info ein.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Menü Hilfe (erweitert)&lt;br /&gt;
|&lt;br /&gt;
Entfernt das Hilfemenü mit den Standardelementen plus weiteren Elementen wie Index, Anweisungen, Anleitungen, Tastatur und Tutorial.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
MDI-Framemenü&lt;br /&gt;
|&lt;br /&gt;
Fügt einen Satz von Menüs ein, die dieselben Elemente wie die Menüs Datei, Bearbeiten, Windows und Hilfe (erweitert) enthalten.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Fenster&lt;br /&gt;
|&lt;br /&gt;
Fügt das Menü Fenster mit den Elementen Neues Fenster, Nebeneinander, Überlappend, Alle anordnen, Schließen und Anzeigen ein.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Template einfugen}}&lt;br /&gt;
[[Category:{{Product}} – Referenz]]&lt;br /&gt;
&lt;br /&gt;
[[en:Insert Template]]&lt;br /&gt;
[[fr:Insertion d&#039;un modèle]]&lt;br /&gt;
[[ja:テンプレートを挿入]]&lt;/div&gt;</summary>
		<author><name>Hgunther</name></author>
	</entry>
</feed>