<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Delphi-PRAXiS - Sonstige Fragen zu Delphi</title>
		<link>http://www.delphipraxis.net/</link>
		<description>Delphi-Fragen, die in keine andere Kategorie passen</description>
		<language>de</language>
		<lastBuildDate>Thu, 20 Jun 2013 01:05:52 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>http://www.delphipraxis.net/styles/elise/misc/rss.jpg</url>
			<title>Delphi-PRAXiS - Sonstige Fragen zu Delphi</title>
			<link>http://www.delphipraxis.net/</link>
		</image>
		<item>
			<title>Delphi Installationspfad Formatieren</title>
			<link>http://www.delphipraxis.net/175393-installationspfad-formatieren-new-post.html</link>
			<pubDate>Tue, 18 Jun 2013 13:07:26 GMT</pubDate>
			<description><![CDATA[Guten Tag zusammen, 
 
ich bin gerade etwas am Thema "Installationspfad" am verzweifeln. 
Ich baue mir mit dem Programm "Inno Setup" eine Setup.exe...]]></description>
			<content:encoded><![CDATA[<div>Guten Tag zusammen,<br />
<br />
ich bin gerade etwas am Thema &quot;Installationspfad&quot; am verzweifeln.<br />
Ich baue mir mit dem Programm &quot;Inno Setup&quot; eine Setup.exe und diese Funktioniert auch wunderbar nur muss ich nun eine kleine Einschränkung einfügen.<br />
Der Benutzer darf nur noch die Partition und Unterordner angeben, jedoch muss der Ordner &quot;Programme&quot; fest vorgeschrieben sein.<br />
<br />
Demnach kann der Installationspfad z.B. wie folgt lauten:<br />
<br />
XYZ:\Programme\Hilfe ich bin Variabel\Immer noch Variabel\<br />
<br />
<br />
Nur wie kriege ich es hin diese Auswahl dem Benutzer zwingend vorschreiben zu können, sodass er aber immer noch die restlichen Parameter wählen kann.<br />
<br />
Anbei im Textformat mal mein aktueller Code (Über die Formatierung nicht lachen, die wird erst angepasst wenn ich komplett fertig bin)<br />
<br />
<br />
MfG Benny</div>


	<br />
	<div style="padding:6px">

	

	

	

	
		<fieldset class="fieldset">
			<legend>Angehängte Dateien</legend>
			<table cellpadding="0" cellspacing="3" border="0">
			<tr>
	<td><img class="inlineimg" src="http://www.delphipraxis.net/styles/elise/attach/txt.png" alt="Dateityp: txt" width="16" height="16" border="0" style="vertical-align:baseline;" /></td>
	<td><a href="http://www.delphipraxis.net/attachments/39426d1371560809-installationspfad-formatieren-dosbox.txt">DOSBox.txt</a> (20,0 KB)</td>
</tr>
			</table>
		</fieldset>
	

	</div>
]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>bennySB</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175393-installationspfad-formatieren.html</guid>
		</item>
		<item>
			<title>Zugangsschlüssel Delphi 7 für Kids</title>
			<link>http://www.delphipraxis.net/175358-zugangsschluessel-delphi-7-fuer-kids-new-post.html</link>
			<pubDate>Sun, 16 Jun 2013 06:42:00 GMT</pubDate>
			<description><![CDATA[In dem Buch "Delphi für Kids" von Hans-Georg Schumann (2. Auflage von 2005), das man z.B. bei eBay usw. erwerben kann, liegt eine CD mit "Delphi 7...]]></description>
			<content:encoded><![CDATA[<div>In dem Buch &quot;Delphi für Kids&quot; von Hans-Georg Schumann (2. Auflage von 2005), das man z.B. bei eBay usw. erwerben kann, liegt eine CD mit &quot;Delphi 7 Personal&quot; bei. Diese enthält eine Datei &quot;Register.htm&quot;. Wenn man die aufruft, wird folgender Text angezeigt.<br />
<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_codef458eba0" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			Delphi registrieren<br />
Bevor die Delphi-Version von der CD zu diesem Buch installiert werden kann, brauchst du einen Zugangsschlüssel, den du erhältst, sobald du dich bei Borland registriert hast. Dazu besuchst du im Internet diese Adresse:<br />
<br />
http://www.borland.com/products/downloads/download_delphi.html<br />
<br />
&#91;Halte die Shift-Taste gedrückt, ehe du auf diesen Link klickst: Damit wird eine neues Fenster geöffnet!&#93;<br />
<br />
(1)  &nbsp; &nbsp; &nbsp; &nbsp;Klicke dort unter Keys Only auf Personal.<br />
<br />
(2)  &nbsp; &nbsp; &nbsp; &nbsp;Im nächsten Fenster klicke auf New User.<br />
<br />
(1)  &nbsp; &nbsp; &nbsp; &nbsp;Fülle alle Felder aus, vor denen du einen roten Punkt siehst. Abschließend klickst du ganz unten auf Register (oder Continue).<br />
<br />
(2)  &nbsp; &nbsp; &nbsp; &nbsp;Fülle den Fragebogen über dich aus und bestätige ganz zum Schluss mit Submit.<br />
<br />
(3)  &nbsp; &nbsp; &nbsp; &nbsp;Bestätige die E-Mail-Adresse, unter der du registriert wirst und an die der Registrierungsschüssel für die Installation von C++Builder geschickt wird durch Klick auf Submit.<br />
<br />
(4)  &nbsp; &nbsp; &nbsp; &nbsp;Lies dir die Zusammenfassung durch, dann kannst du auch das letzte Fenster schließen.<br />
<br />
(5)  &nbsp; &nbsp; &nbsp; &nbsp;Kontrolliere deine E-Mails, bis du den Schlüssel für die Installation erhalten hast.
		</div>
	</div>
</div>
		Der angegebene Link <img src="styles/elise/misc/inlink.gif" width="10" height="10" align="middle" style="vertical-align:middle" alt="" hspace="3" border="0"  /><a href="http://www.borland.com/products/downloads/download_delphi.html" target="_blank">http://www.borland.com/products/down...ad_delphi.html</a><br />
enthält allerdings nicht mehr die beschriebenen Möglichkeiten, um zu einem Zugangsschlüssel zu kommen.<br />
Wie soll man nun weiter verfahren ?<br />
<br />
###################################<br />
<br />
Ich habe etwas gegoogelt und folgendes gefunden - das ist vermutlich die Antwort auf meine Frage<br />
<br />
<img src="styles/elise/misc/inlink.gif" width="10" height="10" align="middle" style="vertical-align:middle" alt="" hspace="3" border="0"  /><a href="http://www.entwickler-ecke.de/topic_Offiziell+freigegebene+Delphi+7+Personal+Seriennummer_92913,0.html" target="_blank">http://www.entwickler-ecke.de/topic_...r_92913,0.html</a></div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>kwhk</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175358-zugangsschluessel-delphi-7-fuer-kids.html</guid>
		</item>
		<item>
			<title>Delphi Schneller Timer</title>
			<link>http://www.delphipraxis.net/175355-schneller-timer-new-post.html</link>
			<pubDate>Sat, 15 Jun 2013 11:25:01 GMT</pubDate>
			<description>Hallo liebe Communtiy, 
 
gibt es einen schnelleren Timer als der Standard-Timer von Delphi 6? Ich brauche es für ein Programm, wo man mit einem...</description>
			<content:encoded><![CDATA[<div>Hallo liebe Communtiy,<br />
<br />
gibt es einen schnelleren Timer als der Standard-Timer von Delphi 6? Ich brauche es für ein Programm, wo man mit einem Grafik-Tablett schreiben können soll. Und da gibt es bei der Abfrage mit Intervall=1 Probleme mit i,j,ü,ö,ä, da man beim schnellen Schreiben sich nicht so lange mit den Punkten/Strichen aufhält :-D. Deshalb suche ich nach einer Möglichkeit das Intervall zwischen den Positionsabfragen kleiner zu gestalten?<br />
<br />
Liebe Grüße<br />
loirad</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>loirad</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175355-schneller-timer.html</guid>
		</item>
		<item>
			<title>Delphi DateTimePicker Zeitunterschied</title>
			<link>http://www.delphipraxis.net/175275-datetimepicker-zeitunterschied-new-post.html</link>
			<pubDate>Mon, 10 Jun 2013 17:42:03 GMT</pubDate>
			<description>Moin, 
 
Wie berechne ich die Anzahl Sekunden zwischen der Zeit, welche im TDateTimePicker (dtkTime) dargestellt ist und dem jetzigen Zeitpunkt ( ...</description>
			<content:encoded><![CDATA[<div>Moin,<br />
<br />
Wie berechne ich die Anzahl Sekunden zwischen der Zeit, welche im TDateTimePicker (dtkTime) dargestellt ist und dem jetzigen Zeitpunkt (  Now() )?<br />
<br />
Dabei kann davon ausgegangen werden, dass die Zeit im TDateTimePicker immer größer&#8206; als Now() ist und das Datum dasselbe ist.<br />
<br />
So geht es leider nicht<br />
<br />
<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_code0527d84b" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			&nbsp;SecondsBetween(Time(), DateTimePicker1.Time)
		</div>
	</div>
</div>
		<br />
<font color="Red">Edit: Lösung gefunden: </font><br />
<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_codede3a88c2" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			&nbsp; SecondsBetween(Frac(Time), Frac(DateTimePicker1.Time))
		</div>
	</div>
</div>
		<br />
Gruß<br />
<abbr title="Application Programming Interface">API</abbr></div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>API</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175275-datetimepicker-zeitunterschied.html</guid>
		</item>
		<item>
			<title>FileExists for Dummies</title>
			<link>http://www.delphipraxis.net/175274-fileexists-dummies-new-post.html</link>
			<pubDate>Mon, 10 Jun 2013 17:06:20 GMT</pubDate>
			<description>function FileExists(const FileName: string; FollowLink: Boolean = True): Boolean; 
; 
 
Ich habe mal wieder einen Hänger 
Kann mir jemand...</description>
			<content:encoded><![CDATA[<div><div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_code9c9c470a" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			function FileExists(const FileName: string; FollowLink: Boolean = True): Boolean;
		</div>
	</div>
</div>
		;<br />
<br />
Ich habe mal wieder einen Hänger<br />
Kann mir jemand &quot;FollowLink&quot; mit einfachen Worten erklären<br />
was der Unterschied true/false ist. Aus der Delphi<br />
Erklärung werde ich nicht richtig schlau.:stupid:</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>ATS3788</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175274-fileexists-dummies.html</guid>
		</item>
		<item>
			<title>Delphi ASCII-String und Binärtdaten in eine Datei schreiben</title>
			<link>http://www.delphipraxis.net/175269-ascii-string-und-binaertdaten-eine-datei-schreiben-new-post.html</link>
			<pubDate>Mon, 10 Jun 2013 12:35:27 GMT</pubDate>
			<description>Hallo Leutz, 
 
ich möchte gerne eine Datei erstellen, in der sowohl ASCII-Strings (Header meiner Datei) als auch Binärtdaten enthalten sein sollen....</description>
			<content:encoded><![CDATA[<div>Hallo Leutz,<br />
<br />
ich möchte gerne eine Datei erstellen, in der sowohl <abbr title="Die ersten 128 Zeichen von Unicode. Manchmal auch faelschlicherweise fuer EASCII benutzt.">ASCII</abbr>-Strings (Header meiner Datei) als auch Binärtdaten enthalten sein sollen.<br />
<br />
Mein erster Versuch war es die <abbr title="Die ersten 128 Zeichen von Unicode. Manchmal auch faelschlicherweise fuer EASCII benutzt.">ASCII</abbr>-Strings in eine StringListe zu schreiben und zum Schluss die Binärdaten über einen MemoryStream hinzuzufügen.<br />
Leider scheitert das auch hier schon.<br />
Ich kann die Strings problemlos in die StringList schreiben und diese als Datei speichern, <br />
wenn ich aber<br />
<br />
<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_code42d1e17a" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			&nbsp; Header.SaveToFile(&#039;C:\EDMSWAP\Header.hdf&#039;); //&nbsp;64kB groß<br />
&nbsp; Stream := getBinaryData(file_one);<br />
&nbsp; Stream.SaveToFile(&#039;C:\EDMSWAP\Data.hdf&#039;); //&nbsp;400&nbsp;Byte groß<br />
&nbsp; Header.LoadFromStream(Stream);<br />
&nbsp; Header.SaveToFile(&#039;C:\EDMSWAP\HeaderAfterLoadFromStream.hdf&#039;); //&nbsp;2&nbsp;Byte groß
		</div>
	</div>
</div>
		ausführe hat meine StringList keinen Inhalt mehr und ist nur noch 2 Byte groß.<br />
Ich vermute mal das LoadFromStream den kompletten Inhalt meiner StringList ersetzt. <br />
Diese StringList hat zusätzlich Probleme mit den Binärdaten und intepretiert diese möglicherweise als irgendwelche Steuerzeichen und deshalb nur 2 Byte groß ist.<br />
<br />
Langsam denke ich das die StringList für meine Anforderung erst gar nicht geeignet ist, leider bin ich in diesem Thema noch ganz am Anfang und würde mich sehr darüber freuen, wenn mich jemand auf die richtige Spurr schickt.<br />
<br />
Mit freundlichen Grüßen<br />
<br />
Arthur W.</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>drunky1337</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175269-ascii-string-und-binaertdaten-eine-datei-schreiben.html</guid>
		</item>
		<item>
			<title><![CDATA[Delphi Unterschied Release & Debug]]></title>
			<link>http://www.delphipraxis.net/175261-unterschied-release-debug-new-post.html</link>
			<pubDate>Mon, 10 Jun 2013 07:12:23 GMT</pubDate>
			<description><![CDATA[Hallo 
Ich habe zwei verschiedene Ordner für Release und Debug, was 
"DCU" Files angeht wie "Exe". 
 
Wenn ich die Debug Exe starte funktioniert...]]></description>
			<content:encoded><![CDATA[<div>Hallo<br />
Ich habe zwei verschiedene Ordner für Release und Debug, was<br />
&quot;<abbr title="Delphi compiled unit">DCU</abbr>&quot; Files angeht wie &quot;Exe&quot;.<br />
<br />
Wenn ich die Debug Exe starte funktioniert alles richtig,<br />
bei der Release EXE bekomme ich Schutzverletzungen. Ich habe KEINE <abbr title="Dynamic Linked Library">DLL</abbr>'s oder <abbr title="&quot;Borland Package Library&quot; - Ist eine DLL mit speziellem Support für den Delphi-Compiler. D">BPL</abbr>'s.<br />
<br />
Was könnte denn dies sein<br />
<br />
Danke schon mal.:(</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>ATS3788</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175261-unterschied-release-debug.html</guid>
		</item>
		<item>
			<title>XE4 kein interner Debug möglich</title>
			<link>http://www.delphipraxis.net/175259-xe4-kein-interner-debug-moeglich-new-post.html</link>
			<pubDate>Mon, 10 Jun 2013 01:04:53 GMT</pubDate>
			<description>Hallo, 
 
meine Anwendung läuft unter 32 Bit mit und ohne Debugger einwandfrei. 
Die gleiche Anwendung unter 64 Bit: 
 
* Umschalt + Str + F9: alles...</description>
			<content:encoded><![CDATA[<div>Hallo,<br />
<br />
meine Anwendung läuft unter 32 Bit mit und ohne Debugger einwandfrei.<br />
Die gleiche Anwendung unter 64 Bit:<br />
<br />
* Umschalt + Str + F9: alles OK, Anwendung läuft (ohne Debugger)<br />
* F9: wenn die &quot;*.exe&quot; nicht existiert: Fehler: &quot;Programm-Header kann nicht überprüft werden.&quot;<br />
* F9: wenn die &quot;*.exe&quot; existiert: Fehler: &quot;Prozess kann nicht erzeugt werden: 'Dateiname'&quot;.<br />
<br />
Mir gehen die Ideen aus, und ich bin für jede Hilfe dankbar.<br />
<br />
Liebe Grüße</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>Kraisel</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175259-xe4-kein-interner-debug-moeglich.html</guid>
		</item>
		<item>
			<title><![CDATA[Delphi Problem mit Darstellung einer CombBox in StringGrid mit "csOwnerDrawFixed"]]></title>
			<link>http://www.delphipraxis.net/175244-problem-mit-darstellung-einer-combbox-stringgrid-mit-csownerdrawfixed-new-post.html</link>
			<pubDate>Sat, 08 Jun 2013 16:58:32 GMT</pubDate>
			<description>Hallo, 
 
ich hab ein kleines optisches Problem. 
 
In einer StringGrid wird beim klick auf bestimmte Zellen (bzw. Spalten) eine Combobox in der...</description>
			<content:encoded><![CDATA[<div>Hallo,<br />
<br />
ich hab ein kleines optisches Problem.<br />
<br />
In einer StringGrid wird beim klick auf bestimmte Zellen (bzw. Spalten) eine Combobox in der Zelle angezeigt.<br />
In den Spalten 1 und 2 wird die Combobox mit &quot;csDropDownList&quot; angezeigt, in der 3. Spalte mit &quot;csOwnerDrawFixed&quot;. Bei den ersten zwei Spalten bleibt kein &quot;Rest&quot; mehr übrig, wenn die Combobox wieder ausgeblendet wird, bei &quot;csOwnerDrawFixed&quot; aber schon.<br />
(siehe Bilder).<br />
<br />
Das gleiche passiert mir auch in der letzten Spalte, in der ein SpinEdit angezeigt wird. <br />
<br />
Wie kann ich verhindern, dass noch ein &quot;Rest&quot; übrig bleibt?<br />
<br />
Hier noch ein bischen Code zum Anzeigen der Combobox und des SpinEdits:<br />
<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_codede3928ad" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			procedure TMainForm.StringGridSelectCell(Sender: TObject; ACol, ARow: Integer;<br />
&nbsp; var CanSelect: Boolean);<br />
const<br />
&nbsp; Diff = 2;<br />
<br />
var<br />
&nbsp; S  &nbsp;: String;<br />
&nbsp; i  &nbsp;: Integer;<br />
&nbsp; Min : Integer;<br />
&nbsp; Max : Integer;<br />
&nbsp; Rect: TRect;<br />
<br />
begin<br />
&nbsp; //aktuelle Zeile größer der ersten (fixen) Zeile?<br />
&nbsp; If ARow &gt; 0&nbsp;then<br />
&nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; //Zellen-Rect auslesen<br />
&nbsp; &nbsp; &nbsp; Rect := StringGrid.CellRect(ACol, ARow);<br />
<br />
&nbsp; &nbsp; &nbsp; //Zellen-Text auslesen<br />
&nbsp; &nbsp; &nbsp; S := StringGrid.Cells&#91;ACol, ARow&#93;;<br />
<br />
&nbsp; &nbsp; &nbsp; If ACol in &#91;1, 2, 3&#93; then<br />
&nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //ComboBox positionieren<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ComboBox.SetBounds(Rect.Left +&nbsp;StringGrid.Left +&nbsp;Diff,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Rect.Top +&nbsp;StringGrid.Top +&nbsp;Diff, Rect.Width, Rect.Height -&nbsp;Diff);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //je nach Spalte die dementsprechende StringList in die ComboBox laden<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //und den Style der ComboBox setzen<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case ACol of<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1:  begin //Spalte: &quot;Linie&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ComboBox.Items.Assign(StringList_Linien);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ComboBox.Style := csDropDownList;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2:  begin //Spalte: &quot;Ziele&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ComboBox.Items.Assign(StringList_Ziele);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ComboBox.Style := csDropDownList;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 3:  begin //Spalte: &quot;Länge&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ComboBox.Items.Assign(StringList_Laenge);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ComboBox.Style := csOwnerDrawFixed;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Index des aktuellen Zellen-Text in der ComboBox ermitteln<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ComboBox.ItemIndex := ComboBox.Items.IndexOf(S);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //ComboBox anzeigen und fokusieren<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ComboBox.Visible := true;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ComboBox.SetFocus;<br />
&nbsp; &nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; &nbsp; If ACol in &#91;4&#93; then<br />
&nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //SpinEdit positionieren<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SpinEdit.SetBounds(Rect.Left +&nbsp;StringGrid.Left +&nbsp;Diff,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Rect.Top +&nbsp;StringGrid.Top +&nbsp;Diff, Rect.Width, Rect.Height -&nbsp;Diff);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Wert der Zelle eine Zeile drüber auslesen und als Min-Wert für<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //das SpinEdit verwenden<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Min := 0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If ARow &gt; 1&nbsp;then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Min := StrToIntDef(StringGrid.Cells&#91;ACol, Pred(ARow)&#93;, 0) +&nbsp;1;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Wert der Zelle drüber auslesen und als Max-Wert für das SpinEdit<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //setzen (wenn der Wert größer null ist)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Max := 60;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If ARow &lt; StringGrid.RowCount then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; i := StrToIntDef(StringGrid.Cells&#91;ACol, Succ(ARow)&#93;, 0) -&nbsp;1;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If i &gt; 0&nbsp;then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Max := i;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Min-&nbsp;und Max-Werte setzen<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SpinEdit.MinValue := Min;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SpinEdit.MaxValue := Max;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Zahl des aktuellen Zellen-Text in SpinEdit laden<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SpinEdit.Value := StrToIntDef(S, 1);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //SpinEdit anzeigen und fokusieren<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SpinEdit.Visible := true;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SpinEdit.SetFocus;<br />
&nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; end;<br />
<br />
&nbsp; //<br />
&nbsp; CanSelect := true;<br />
end;
		</div>
	</div>
</div>
		</div>


	<br />
	<div style="padding:6px">

	

	

	
		<fieldset class="fieldset">
			<legend>Angehängte Grafiken</legend>
			<table cellpadding="0" cellspacing="3" border="0">
			<tr>
	<td><img class="inlineimg" src="http://www.delphipraxis.net/styles/elise/attach/jpg.png" alt="Dateityp: jpg" width="16" height="16" border="0" style="vertical-align:baseline;" /></td>
	<td><a href="http://www.delphipraxis.net/attachments/39367d1370710385-problem-mit-darstellung-einer-combbox-stringgrid-mit-csownerdrawfixed-combobox-csdropdownlist.jpg">ComboBox csDropDownList.jpg</a> (125,5 KB)</td>
</tr><tr>
	<td><img class="inlineimg" src="http://www.delphipraxis.net/styles/elise/attach/jpg.png" alt="Dateityp: jpg" width="16" height="16" border="0" style="vertical-align:baseline;" /></td>
	<td><a href="http://www.delphipraxis.net/attachments/39368d1370710394-problem-mit-darstellung-einer-combbox-stringgrid-mit-csownerdrawfixed-combobox-csownerdrawfixed.jpg">ComboBox csOwnerDrawFixed.jpg</a> (126,0 KB)</td>
</tr>
			</table>
			</fieldset>
	

	

	</div>
]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>Helmi</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175244-problem-mit-darstellung-einer-combbox-stringgrid-mit-csownerdrawfixed.html</guid>
		</item>
		<item>
			<title>Projekt bitte mal testen (XE3/XE4)</title>
			<link>http://www.delphipraxis.net/175236-projekt-bitte-mal-testen-xe3-xe4-new-post.html</link>
			<pubDate>Sat, 08 Jun 2013 07:04:29 GMT</pubDate>
			<description>Könnte bitte mal jemand mit Delphi XE3/XE4 ausprobieren, ob sich das Projekt im Anhang kompilieren lässt? Mit geht es wirklich nur um evtl....</description>
			<content:encoded><![CDATA[<div>Könnte bitte mal jemand mit Delphi XE3/XE4 ausprobieren, ob sich das Projekt im Anhang kompilieren lässt? Mit geht es wirklich nur um evtl. Compiler-Meldungen bzw. -Fehler und nicht um Funktionalität.<br />
<br />
Danke im Voraus</div>


	<br />
	<div style="padding:6px">

	

	

	

	
		<fieldset class="fieldset">
			<legend>Angehängte Dateien</legend>
			<table cellpadding="0" cellspacing="3" border="0">
			<tr>
	<td><img class="inlineimg" src="http://www.delphipraxis.net/styles/elise/attach/zip.png" alt="Dateityp: zip" width="16" height="16" border="0" style="vertical-align:baseline;" /></td>
	<td><a href="http://www.delphipraxis.net/attachments/39359d1370675020-projekt-bitte-mal-testen-xe3-xe4-helpware.zip">Helpware.zip</a> (120,5 KB)</td>
</tr>
			</table>
		</fieldset>
	

	</div>
]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>DeddyH</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175236-projekt-bitte-mal-testen-xe3-xe4.html</guid>
		</item>
		<item>
			<title>Button verstecken/ausblenden ABER nicht deaktivieren</title>
			<link>http://www.delphipraxis.net/175226-button-verstecken-ausblenden-aber-nicht-deaktivieren-new-post.html</link>
			<pubDate>Fri, 07 Jun 2013 10:13:23 GMT</pubDate>
			<description>hallo zusammen, 
 
ich möchte einen Button einfach nur nicht sichtbar haben, er soll aber weiterhin beim drücken von Enter ausgeführt werden. geht...</description>
			<content:encoded><![CDATA[<div>hallo zusammen,<br />
<br />
ich möchte einen Button einfach nur nicht sichtbar haben, er soll aber weiterhin beim drücken von Enter ausgeführt werden. geht das? Finde zu dem Thema zwar viel aber immer nur ausblenden mit deaktivieren =/<br />
<br />
Also hint, visible habe ich ausprobiert.<br />
<br />
danke schon mal =)<br />
foxi</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>Foxi1896</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175226-button-verstecken-ausblenden-aber-nicht-deaktivieren.html</guid>
		</item>
		<item>
			<title>Fehlermeldung unterbinden und Code weiter ausführen</title>
			<link>http://www.delphipraxis.net/175223-fehlermeldung-unterbinden-und-code-weiter-ausfuehren-new-post.html</link>
			<pubDate>Fri, 07 Jun 2013 09:27:07 GMT</pubDate>
			<description>Hallo zusammen, 
 
ich habe folgendes Problem. Ich möchte Exceptions bei einem Datenbankpost abfangen und das Programm soll in der Schleife...</description>
			<content:encoded><![CDATA[<div>Hallo zusammen,<br />
<br />
ich habe folgendes Problem. Ich möchte Exceptions bei einem Datenbankpost abfangen und das Programm soll in der Schleife weiterlaufen . Folgende Code habe ich:<br />
<br />
<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_codeade5d354" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			repeat<br />
<br />
..<br />
<br />
<br />
&nbsp; try<br />
&nbsp; &nbsp; dm.qry_files.post;<br />
&nbsp; except<br />
&nbsp; &nbsp; on e:exeption do<br />
&nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; lst_errors.items.add(&#039;Fehler: der Post bei folgender Datei ist fehlgeschlagen:&#039;);<br />
&nbsp; &nbsp; end;<br />
&nbsp; end;<br />
<br />
..<br />
<br />
dm.qry_folders.next;<br />
until dm.qry_folders.ext;
		</div>
	</div>
</div>
		<br />
leider bleibt das Programm stehen und die while schleife wurde beendet.<br />
<br />
Im Voraus schon mal besten Dank!</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>Kirchi</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175223-fehlermeldung-unterbinden-und-code-weiter-ausfuehren.html</guid>
		</item>
		<item>
			<title>PrintDialog setzt PrinterIndex falsch</title>
			<link>http://www.delphipraxis.net/175221-printdialog-setzt-printerindex-falsch-new-post.html</link>
			<pubDate>Fri, 07 Jun 2013 07:36:51 GMT</pubDate>
			<description>Hallo, ich habe ein merkwürdiges Problem mit PrintDialog. 
Betriebssystem ist Windows XP SP3. 
Bei Programmstart lasse ich die Liste der Printer...</description>
			<content:encoded><![CDATA[<div>Hallo, ich habe ein merkwürdiges Problem mit PrintDialog.<br />
Betriebssystem ist Windows XP SP3.<br />
Bei Programmstart lasse ich die Liste der Printer ausgeben:<br />
<br />
      for i := 0 to Printer.Printers.Count-1 do<br />
      begin<br />
        FPPMessageBox(IntToStr(i) + ' ' + QuotedStr(Printer.Printers[i]), MB_OK + MB_ICONSTOP);<br />
      end;<br />
<br />
Die Liste zeigt Drucker mit Index von 0 bis 4 an, z.B.<br />
1 \\FS-01\MinoltaC-360_OG <br />
<br />
Wenn ich dann PrintDialog.Execute aufrufe und einen Drucker auswähle, steht Printer.PrinterIndex auf 5!<br />
Auch der Zugriff auf Printer.Printers[5] liefert keinen Fehler, sondern den Druckernamen<br />
\\fs-01\MinoltaC-360_OG an IP_192.168.0.16<br />
(also fast den gleichen wie vorher unter Index 1, außer der Kleinschreibung).<br />
<br />
Ich habe dann vor und nach dem Aufruf von PrintDialog.Execute noch mal die Liste der Drucker ausgeben lassen,<br />
siehe da, vor dem Aufruf sind es 5, nach dem Aufruf sind es 6 (von 0 bis 5). <br />
PrintDialog zeigt aber nur 5 Drucker an.<br />
<br />
Nach Verlassen der Funktion, in der PrintDialog.Execute aufgerufen wird, sind es wieder nur noch 5 Drucker,<br />
und der gewählte mit der Nummer 5 wird nicht mehr gefunden.<br />
<br />
Das Programm läuft auf ca. 10 PCs in der Firma, aber dieses Problem tritt nur auf einem PC auf.<br />
<br />
Hat jemand eine Idee, wie das zu fixen ist?</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>Turtle64</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175221-printdialog-setzt-printerindex-falsch.html</guid>
		</item>
		<item>
			<title>Struktogramm</title>
			<link>http://www.delphipraxis.net/175191-struktogramm-new-post.html</link>
			<pubDate>Wed, 05 Jun 2013 10:40:30 GMT</pubDate>
			<description>Hallo Leute, 
 
ich muss zu folgendem Code ein Struktogramm malen, habe aber keine Ahnung wie das funktioniert. 
 
könnte mir vielleicht einer von...</description>
			<content:encoded><![CDATA[<div>Hallo Leute,<br />
<br />
ich muss zu folgendem Code ein Struktogramm malen, habe aber keine Ahnung wie das funktioniert.<br />
<br />
könnte mir vielleicht einer von euch helfen?<br />
<br />
<div style="text-align:left; margin-top:15px;">
	<strong>Code:</strong>
	<div class="dpbox-code">
		<div id="codeblock_code1c246c02" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			procedure TviewWizWerbemittelVersandDetails.refreshData;<br />
var<br />
&nbsp; lRow, lCol: Integer;<br />
&nbsp; lLastAdrID: Double;<br />
begin<br />
&nbsp; FWEMList.Clear;<br />
&nbsp; lLastAdrID := -1;<br />
&nbsp; //alle Zeilen ausser Header löschen<br />
&nbsp; grdDetails.Cells.RowCount := 0;<br />
&nbsp; //Spalten 5&nbsp;-&nbsp;x löschen<br />
&nbsp; grdDetails.Cells.ColCount := 4;<br />
&nbsp; //Werbemittel einlesen<br />
&nbsp; CheckClose(qryWerbemittel);<br />
&nbsp; CheckOpen(qryWerbemittel);<br />
<br />
&nbsp; grdDetails.BeginUpdate;<br />
&nbsp; try<br />
&nbsp; &nbsp; while not (qryWerbemittel.Eof) do begin<br />
&nbsp; &nbsp; &nbsp; //Spalte erzeugen<br />
&nbsp; &nbsp; &nbsp; lCol := grdDetails.Cells.AddColumn;<br />
&nbsp; &nbsp; &nbsp; //es gibt wohl keine Möglichkeit, Daten in einer Header-Zelle zu speichern, also<br />
&nbsp; &nbsp; &nbsp; //speichern wird die WEM-IDs in einer Liste<br />
&nbsp; &nbsp; &nbsp; FWEMList.Add(TFloatClass.Create(qryWerbemittelwem_id.AsFloat));<br />
<br />
&nbsp; &nbsp; &nbsp; grdDetails.cells.Columns&#91;lCol&#93;.Caption := qryWerbemittelwem_display_name.AsString;<br />
&nbsp; &nbsp; &nbsp; grdDetails.cells.Columns&#91;lCol&#93;.Tag := qryWerbemittelwem_verfuegbar.AsInteger;<br />
&nbsp; &nbsp; &nbsp; qryWerbemittel.Next;<br />
&nbsp; &nbsp; end;<br />
&nbsp; &nbsp; CheckClose(qryWerbemittel);<br />
&nbsp; &nbsp; //Transfers einlesen<br />
&nbsp; &nbsp; lRow := 0;<br />
&nbsp; &nbsp; CheckClose(qryWerbemitteltransfer);<br />
&nbsp; &nbsp; CheckOpen(qryWerbemitteltransfer);<br />
&nbsp; &nbsp; while not (qryWerbemitteltransfer.Eof) do begin<br />
&nbsp; &nbsp; &nbsp; //neue Adresse, neue Spalte<br />
&nbsp; &nbsp; &nbsp; if (lLastAdrid &lt;&gt; qryWerbemitteltransferwmt_adrid.AsFloat) then begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; lRow := grdDetails.cells.AddRow;<br />
&nbsp; &nbsp; &nbsp; &nbsp; grdDetails.Cells&#91;0, lRow&#93;.Data := TFloatClass.Create(qryWerbemitteltransferwmt_adrid.AsFloat);<br />
&nbsp; &nbsp; &nbsp; &nbsp; grdDetails.Cells&#91;0, lRow&#93;.Text := qryWerbemitteltransferadr_schluessel.AsString;<br />
&nbsp; &nbsp; &nbsp; &nbsp; grdDetails.Cells&#91;0, lRow&#93;.CanEdit := false;<br />
&nbsp; &nbsp; &nbsp; &nbsp; grdDetails.Cells&#91;0, lRow&#93;.CanEnter := false;<br />
&nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; //Spalten 2&nbsp;bis 4&nbsp;editierbar machen<br />
&nbsp; &nbsp; &nbsp; grdDetails.cells&#91;2, lRow&#93;.Value := 0;<br />
&nbsp; &nbsp; &nbsp; grdDetails.cells&#91;2, lRow&#93;.CanEdit := true;<br />
&nbsp; &nbsp; &nbsp; grdDetails.cells&#91;2, lRow&#93;.CanEnter := true;<br />
&nbsp; &nbsp; &nbsp; //&nbsp;enthält die plz zum sortieren (-&gt; sortData.value)<br />
&nbsp; &nbsp; &nbsp; grdDetails.cells&#91;1, lRow&#93;.FormatString := qryWerbemitteltransferadr_plz.AsString;<br />
&nbsp; &nbsp; &nbsp; if (-1&nbsp;&lt;&gt; getIndexFromAdrList(qryWerbemitteltransferwmt_adrid.AsFloat)) then begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; grdDetails.cells&#91;3, lRow&#93;.Value := 1;<br />
&nbsp; &nbsp; &nbsp; end else begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; grdDetails.cells&#91;3, lRow&#93;.Value := 0;<br />
&nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; grdDetails.cells&#91;3, lRow&#93;.CanEdit := true;<br />
&nbsp; &nbsp; &nbsp; grdDetails.cells&#91;3, lRow&#93;.CanEnter := true;<br />
&nbsp; &nbsp; &nbsp; //Spalte suchen<br />
&nbsp; &nbsp; &nbsp; for lCol := 4&nbsp;to grdDetails.Cells.ColCount -&nbsp;1&nbsp;do begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; if (TFloatClass(FWEMList&#91;lCol -&nbsp;4&#93;).FData = qryWerbemitteltransferwmt_wemid.AsFloat) then begin<br />
&nbsp; &nbsp; grdDetails.cells&#91;lCol, lRow&#93;.Alignment := taCenter;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; grdDetails.Cells&#91;lCol, lRow&#93;.Text := qryWerbemitteltransferwmt_anzahl.AsString;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if qryWerbemitteltransferwmt_vertroestetdatum.IsNull then begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end else begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; grdDetails.Cells&#91;lCol, lRow&#93;.Color := clLime;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; &nbsp; grdDetails.Cells&#91;lCol, lRow&#93;.CanEdit := false;<br />
&nbsp; &nbsp; &nbsp; &nbsp; grdDetails.Cells&#91;lCol, lRow&#93;.CanEnter := false;<br />
&nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; lLastAdrID := qryWerbemitteltransferwmt_adrid.AsFloat;<br />
&nbsp; &nbsp; &nbsp; qryWerbemitteltransfer.Next;<br />
&nbsp; &nbsp; end;<br />
&nbsp; &nbsp; CheckClose(qryWerbemitteltransfer);<br />
&nbsp; finally<br />
&nbsp; &nbsp; grdDetails.EndUpdate;<br />
&nbsp; end;<br />
&nbsp; lblCount.Caption := IntToStr(grdDetails.Cells.RowCount);<br />
&nbsp; sortData;<br />
end;
		</div>
	</div>
</div>
		</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>49rojhat49</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175191-struktogramm.html</guid>
		</item>
		<item>
			<title><![CDATA[Upgradeangebot XE3 -> XE4 für 55 Euro]]></title>
			<link>http://www.delphipraxis.net/175162-upgradeangebot-xe3-xe4-fuer-55-euro-new-post.html</link>
			<pubDate>Mon, 03 Jun 2013 08:43:34 GMT</pubDate>
			<description>Hallo, 
 
ich hab mal ne Frage bezüglich des Angebots. Was passiert, wenn ich mit meiner XE2 Lizenz fälschlicherweise das Upgrade für die XE4 kaufen...</description>
			<content:encoded><![CDATA[<div>Hallo,<br />
<br />
ich hab mal ne Frage bezüglich des Angebots. Was passiert, wenn ich mit meiner XE2 Lizenz fälschlicherweise das Upgrade für die XE4 kaufen würde. Ich brauche keine IOS Unterstützung, allerdings nervt mich bei Firemonkey einiges, was wohl schon bei XE3 behoben wurde (fehlende Actions, kleinere Fixes etc.). Nur für diese Bugfixes, will ich definitiv keine mehreren hundert Euro ausgeben. <br />
<br />
Hat da jemand zufällig eine Ahnung ob man &quot;so klever&quot; sein kann, oder ob das schon das Lizenzsystem blockiert.<br />
<br />
Peter</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>Peter666</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175162-upgradeangebot-xe3-xe4-fuer-55-euro.html</guid>
		</item>
		<item>
			<title>Delphi Wer hat Erfahrung mit DevExpress 12.2.6 ?</title>
			<link>http://www.delphipraxis.net/175159-wer-hat-erfahrung-mit-devexpress-12-2-6-a-new-post.html</link>
			<pubDate>Mon, 03 Jun 2013 07:28:29 GMT</pubDate>
			<description>Hallo liebe Gemeinde :lol: Ich bin NEU HIER und kenne mich noch nicht so gut aus. Ich suche Hilfe zu den DevExpress Tools. Ich arbeite sein ein paar...</description>
			<content:encoded><![CDATA[<div>Hallo liebe Gemeinde :lol: Ich bin NEU HIER und kenne mich noch nicht so gut aus. Ich suche Hilfe zu den DevExpress Tools. Ich arbeite sein ein paar Wochen mit der Version 12.2 und habe einmal zwei Fragen: Funktionier die DBLookupComboBox oder die DBExtLookupComboBox mit dem ServerMode von DevExpress ? Und wenn das nicht möglich ist: Wie kann ich sehr große Datenmengen dynamisch Filtern innerhalb einer DBExtLookupComboBox ? Ich will eine Adressdatenbank führen die mit dem Straßenverzeichnis von Deutschland verknüpft ist. Das sind ca. 1.3 Mio Datensätze. Der Benutzer soll in einem cxGrid die PLZ einer Adresse eingeben und ich will in der DBExtLookupBox nur Straßen aus dieser 5-Stelligen-PLZ anzeigen... Bitte weiß jemand RAT ? Die Tools sind doch sehr mächtig und vielseitig ... Gruß Heiko</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>deSoftware</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175159-wer-hat-erfahrung-mit-devexpress-12-2-6-a.html</guid>
		</item>
		<item>
			<title><![CDATA[TString führt "pop" nicht aus]]></title>
			<link>http://www.delphipraxis.net/175143-tstring-fuehrt-pop-nicht-aus-new-post.html</link>
			<pubDate>Sat, 01 Jun 2013 23:41:29 GMT</pubDate>
			<description>Hallo Delphi-Praxis Community,  
ich soll in meinen Informatikunterricht ein Programm schreiben, in dem es drei Gleise gibt, im ersten Gleis sind...</description>
			<content:encoded><![CDATA[<div>Hallo Delphi-Praxis Community, <br />
ich soll in meinen Informatikunterricht ein Programm schreiben, in dem es drei Gleise gibt, im ersten Gleis sind mehrere Waggons mit zufälligen Zahlenwerten. Diese sollen sich nun sortiert in das dritte Gleis einreihen, also wie Türme von Hanoi.<br />
Mein Problem ist jetzt aber nicht die Schleife zum Sortieren oder die Ausgabe, sondern, dass nichts passiert, wenn ich StackA.pop ausführe.<br />
Dieser Befehl sollte den ersten Waggon löschen. Ich habe das Programm schon so extrem reduziert, wie mir möglich ist, also kein Verschieben oder Generieren von mehreren Zahlen durch eine Schleife etc... Nur das Auswählen und Löschen von StackA.top, und Button3 für die Ausgabe.<br />
Ich gebe euch hier mal den Code vom Programm und von den zwei Klassen (die mStack Klasse ist von meinem Lehrer gegeben).<br />
Ich hoffe mal jemand sieht den vermutlich viel zu offensichtlichen Fehler (denn mein Lehrer, diverse andere Schüler und ich haben es nicht getan).<br />
Danke schon im Voraus!<br />
 <br />
<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_codeac738e23" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			<abbr title="Sammlung mehrerer Routinen und Klassen in einer Pascal-Datei.">unit</abbr> ZUUUG;<br />
<br />
interface<br />
<br />
uses<br />
&nbsp; <abbr title="Programmschnittstelle zum Zugriff auf die Windows System-Funktionen (korrekt Win32 API)">Winapi</abbr>.Windows, <abbr title="Programmschnittstelle zum Zugriff auf die Windows System-Funktionen (korrekt Win32 API)">Winapi</abbr>.Messages, System.SysUtils, System.Variants, System.Classes, <abbr title="Visual Component Library">Vcl</abbr>.Graphics,<br />
&nbsp; <abbr title="Visual Component Library">Vcl</abbr>.Controls, <abbr title="Visual Component Library">Vcl</abbr>.Forms, <abbr title="Visual Component Library">Vcl</abbr>.Dialogs, mStack, mWaggon, <abbr title="Visual Component Library">Vcl</abbr>.StdCtrls;<br />
<br />
type<br />
&nbsp; TForm1&nbsp;= class(TForm)<br />
&nbsp; &nbsp; Button1: TButton;<br />
&nbsp; &nbsp; Button2: TButton;<br />
&nbsp; &nbsp; Button3: TButton;<br />
&nbsp; &nbsp; ListBox1: TListBox;<br />
&nbsp; &nbsp; ListBox2: TListBox;<br />
&nbsp; &nbsp; ListBox3: TListBox;<br />
&nbsp; &nbsp; procedure FormCreate(Sender: TObject);<br />
&nbsp; &nbsp; procedure Button1Click(Sender: TObject);<br />
&nbsp; &nbsp; procedure Button2Click(Sender: TObject);<br />
&nbsp; &nbsp; procedure Button3Click(Sender: TObject);<br />
&nbsp; private<br />
&nbsp; &nbsp; {&nbsp;Private-Deklarationen }<br />
&nbsp; public<br />
&nbsp; &nbsp; ListeA:TStack;<br />
&nbsp; &nbsp; Zug:Waggon;<br />
&nbsp; &nbsp; //ListeB:TStack;<br />
&nbsp; &nbsp; //ListeC:TStack;<br />
&nbsp; end;<br />
<br />
var<br />
&nbsp; Form1: TForm1;<br />
<br />
implementation<br />
<br />
{$R *.dfm}<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
Zug.SetzeInhalt(random(100));<br />
ListeA.push(Zug);<br />
ListBox1.Items.Insert(0,(inttostr(Zug.GibInhalt)));<br />
end;<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
ListeA.top;<br />
ListeA.pop;<br />
{if Listec.isEmpty then<br />
begin<br />
&nbsp; Listec.push(Listea.top);<br />
&nbsp; Listea.top;<br />
&nbsp; listea.pop;<br />
&nbsp; Zug.SetzeInhalt((ListeA.top as waggon).GibInhalt);<br />
&nbsp; Listbox3.Items.Insert(0,(inttostr((Listec.top as waggon).GibInhalt)));<br />
end<br />
&nbsp; else<br />
&nbsp; begin<br />
&nbsp; &nbsp; if ((Listec.top as Waggon).GibInhalt)&lt;((Listea.top as Waggon).GibInhalt) then<br />
&nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; Listec.push(Listea.top);<br />
&nbsp; &nbsp; &nbsp; listea.top;<br />
&nbsp; &nbsp; &nbsp; Listea.pop;<br />
&nbsp; &nbsp; &nbsp; Listbox3.Items.Insert(0,(inttostr((Listec.top as waggon).GibInhalt)));<br />
&nbsp; &nbsp; end;<br />
&nbsp; end;}<br />
end;<br />
<br />
procedure TForm1.Button3Click(Sender: TObject);<br />
begin<br />
showmessage(inttostr((Listea.top as waggon).GibInhalt))<br />
end;<br />
<br />
procedure TForm1.FormCreate(Sender: TObject);<br />
begin<br />
ListeA:= TStack.create;<br />
//ListeB:= TStack.create;<br />
//ListeC:= TStack.create;<br />
Zug:= Waggon.Create;<br />
end;<br />
<br />
end.
		</div>
	</div>
</div>
		<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_codec0a99043" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			<abbr title="Sammlung mehrerer Routinen und Klassen in einer Pascal-Datei.">UNIT</abbr> mWaggon;<br />
<br />
interface<br />
<br />
//--------------------&nbsp; ggf Uses-Liste einfügen !&nbsp; --------------------<br />
//uses ....;<br />
<br />
type<br />
&nbsp; Waggon = class<br />
<br />
&nbsp; protected //Attribute<br />
&nbsp; &nbsp; Inhalt : integer;<br />
<br />
&nbsp; public //Methoden<br />
&nbsp; &nbsp; procedure SetzeInhalt (pInhalt: integer); virtual;<br />
&nbsp; &nbsp; function GibInhalt : integer; virtual;<br />
<br />
&nbsp; &nbsp;end;<br />
<br />
implementation<br />
<br />
//+---------------------------------------------------------------------<br />
//|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Waggon: Methodendefinition <br />
//+---------------------------------------------------------------------<br />
<br />
//--------&nbsp;SetzeInhalt (public) ----------------------------------------<br />
procedure Waggon.SetzeInhalt (pInhalt: integer);<br />
begin<br />
&nbsp; Inhalt := pInhalt<br />
end;<br />
<br />
//--------&nbsp;GibInhalt (public) ------------------------------------------<br />
function Waggon.GibInhalt : integer;<br />
begin<br />
&nbsp; result  := Inhalt<br />
end;<br />
<br />
end.
		</div>
	</div>
</div>
		<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_code40f21a25" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			(*<br />
&nbsp;*&nbsp;Materialien zu den zentralen Abiturpruefungen<br />
&nbsp;*&nbsp;im Fach Informatik ab 2012&nbsp;in Nordrhein-Westfalen.<br />
&nbsp;*<br />
&nbsp;*&nbsp;Klasse TStack<br />
&nbsp;*<br />
&nbsp;*&nbsp;NW-Arbeitsgruppe:<br />
&nbsp;*&nbsp;Materialentwicklung zum Zentralabitur im Fach Informatik<br />
&nbsp;*<br />
&nbsp;*&nbsp;Version 2010-12-28<br />
&nbsp;*)<br />
<br />
<abbr title="Sammlung mehrerer Routinen und Klassen in einer Pascal-Datei.">unit</abbr> mStack;<br />
<br />
interface<br />
type<br />
&nbsp; TNode = class<br />
&nbsp; private<br />
&nbsp; &nbsp; content: TObject;<br />
&nbsp; &nbsp; nextNode: TNode;<br />
&nbsp; &nbsp; constructor create(pObject: TObject);<br />
&nbsp; &nbsp; procedure setNext(pNode: TNode);<br />
&nbsp; &nbsp; function getContent: TObject;<br />
&nbsp; &nbsp; function next: TNode;<br />
&nbsp; &nbsp; destructor destroy; override;<br />
&nbsp; end;<br />
<br />
&nbsp; TStack = class<br />
&nbsp; private<br />
&nbsp; &nbsp; topNode: TNode;<br />
&nbsp; public<br />
&nbsp; &nbsp; constructor create; virtual;<br />
&nbsp; &nbsp; function isEmpty: boolean; virtual;<br />
&nbsp; &nbsp; function top: TObject; virtual;<br />
&nbsp; &nbsp; procedure pop; virtual;<br />
&nbsp; &nbsp; procedure push(pObject: TObject); virtual;<br />
&nbsp; &nbsp; destructor destroy; override;<br />
&nbsp; end;<br />
<br />
implementation<br />
<br />
//&nbsp;TNode<br />
<br />
constructor TNode.create(pObject: TObject);<br />
begin<br />
&nbsp; content := pObject;<br />
&nbsp; nextNode := nil;<br />
end;<br />
<br />
procedure TNode.setNext(pNode: TNode);<br />
begin<br />
&nbsp; nextNode := pNode;<br />
end;<br />
<br />
function TNode.next: TNode;<br />
begin<br />
&nbsp; result := nextNode;<br />
end;<br />
<br />
function TNode.getContent: TObject;<br />
begin<br />
&nbsp; result := content;<br />
end;<br />
<br />
destructor TNode.destroy;<br />
begin<br />
&nbsp; inherited destroy;<br />
end;<br />
<br />
//&nbsp;TStack<br />
<br />
constructor TStack.create;<br />
begin<br />
&nbsp; topNode := nil;<br />
end;<br />
<br />
function TStack.isEmpty: boolean;<br />
begin<br />
&nbsp; result := topNode = nil;<br />
end;<br />
<br />
procedure TStack.push(pObject: TObject);<br />
var<br />
&nbsp; tempNode: TNode;<br />
begin<br />
&nbsp; if pObject &lt;&gt; nil then<br />
&nbsp; begin<br />
&nbsp; &nbsp; tempNode := TNode.create(pObject);<br />
&nbsp; &nbsp; if self.isEmpty then<br />
&nbsp; &nbsp; &nbsp; topNode := tempNode<br />
&nbsp; &nbsp; else<br />
&nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; tempNode.setnext(topNode);<br />
&nbsp; &nbsp; &nbsp; topNode := tempNode;<br />
&nbsp; &nbsp; end;<br />
&nbsp; end;<br />
end;<br />
<br />
procedure TStack.pop;<br />
var<br />
&nbsp; tempNode: TNode;<br />
begin<br />
&nbsp; if not self.isEmpty then<br />
&nbsp; begin<br />
&nbsp; &nbsp; tempNode := topNode;<br />
&nbsp; &nbsp; topNode := topNode.next;<br />
&nbsp; &nbsp; tempNode.destroy;<br />
&nbsp; end;<br />
end;<br />
<br />
function TStack.top: TObject;<br />
begin<br />
&nbsp; if not self.isEmpty then<br />
&nbsp; &nbsp; result := topNode.getContent<br />
&nbsp; else<br />
&nbsp; &nbsp; result := nil;<br />
end;<br />
<br />
destructor TStack.destroy;<br />
begin<br />
&nbsp; while not self.isEmpty do<br />
&nbsp; &nbsp; self.pop;<br />
&nbsp; inherited destroy;<br />
end;<br />
<br />
end.
		</div>
	</div>
</div>
		</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>DerVicko</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175143-tstring-fuehrt-pop-nicht-aus.html</guid>
		</item>
		<item>
			<title>Delphi Code Analyse von (semi) Profis</title>
			<link>http://www.delphipraxis.net/175142-code-analyse-von-semi-profis-new-post.html</link>
			<pubDate>Sat, 01 Jun 2013 18:13:08 GMT</pubDate>
			<description>Bitte schlagt mich nicht das ich euch mit so nem riesen Batzen an Code auf einmal zuballer^^ 
 
Ich wollte nur einmal die Profis unter euch...</description>
			<content:encoded><![CDATA[<div>Bitte schlagt mich nicht das ich euch mit so nem riesen Batzen an Code auf einmal zuballer^^<br />
<br />
Ich wollte nur einmal die Profis unter euch ansprechen wie gut oder wie grässlich mein Code denn zu lesen ist und ob es vielleicht Verbesserungsvorschläge gibt. Hauptsächlich geht es um die Form des Codes, es gibt von den Funktionen her bestimmt auch Verbesserungen aber <br />
damit soll sich hier nun keiner auseinander schlagen müssen (sowas kann man niemanden zumuten xD)^^<br />
<br />
Ich bin offen für Zuckerbrot und Peitschen :-P<br />
<br />
<br />
Ps. Es sei dazu gesagt das es mein allererster Code ist und für ein Setup gedacht ist das ich mit dem Programm &quot;Inno Setup&quot; erstellt habe^^<br />
<br />
<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_code9a08ecc5" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			&nbsp; &nbsp; var  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Globale Variablenvergabe<br />
&nbsp; &nbsp; UserDirPageCAE : TInputDirWizardPage;  &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; DOSBoxConf : TStringList;  &nbsp; &nbsp;<br />
&nbsp; &nbsp; GPSDirCheckBox : TRadioButton;  &nbsp; <br />
&nbsp; &nbsp; SplashImage: TBitmapImage;  &nbsp; <br />
&nbsp; &nbsp; SplashForm: TForm;  &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; a, b, c, d : word;  &nbsp;<br />
&nbsp; &nbsp; SetupMajor, SetupMinor, SavedMajor, SavedMinor : dword;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; UserFolderCAE, tmp, SplashFileName, DOSBoxCAE2000Path, DOSBoxCAE2000UninstallString,<br />
&nbsp; &nbsp; DOSBoxCAE2000UninstallPath, DOSBoxCAE2000UninstallName, DOSBoxCAE2000UninstallPathRemovedQuotes,<br />
&nbsp; &nbsp; DOSBoxCAE2000UninstallNameRemovedQuotes, DOSBoxCAE2000UninstallStringRemovedQuotes, CAE2000Path,<br />
&nbsp; &nbsp; GPSPath, GetCAE2000Path : string;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; GPSDirCheckBoxChecked, ResultDOSBoxCAE2000PathCheck, ResultAktuelleAppFound, ResultDOSBoxCAE2000DontDeinstall : boolean;  &nbsp; <br />
&nbsp; &nbsp; I: Integer;<br />
<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; function CreateDWord(const Hi, Lo: word): dword;  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Registry-Schlüssel für die Versionsnummer<br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; Result := (Hi shl 16) or Lo;<br />
&nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; function DecodeVersion(const dwMajor, dwMinor: dword): string;  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Entschlüsselung der Versionsnummer<br />
<br />
&nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; a := word(dwMajor shr 16);<br />
&nbsp; &nbsp; &nbsp; &nbsp; b := word(dwMajor and not $ffff0000);<br />
&nbsp; &nbsp; &nbsp; &nbsp; c := word(dwMinor shr 16);<br />
&nbsp; &nbsp; &nbsp; &nbsp; d := word(dwMinor and not $ffff0000);<br />
&nbsp; &nbsp; &nbsp; &nbsp; Result := Format(&#039;%d.%d.%d.%d&#039;,&#91;a,b,c,d&#93;)<br />
&nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; function IsSetupNewer: boolean;  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Versionsabgleich der vorhandenen Installation zur neuen Installation<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; var<br />
&nbsp; &nbsp; ResultCode : integer; <br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; begin  &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; if  (not RegQueryDWordValue(<abbr title="Registry-Schlüssel: HKEY_LOCAL_MACHINE">HKLM</abbr>,&#039;{#UNINSTKEY}&#039;,&#039;MajorVer&#039;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SavedMajor)) or<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (not RegQueryDWordValue(<abbr title="Registry-Schlüssel: HKEY_LOCAL_MACHINE">HKLM</abbr>,&#039;{#UNINSTKEY}&#039;,&#039;MinorVer&#039;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SavedMinor)) then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if  (RegQueryStringValue(<abbr title="Registry-Schlüssel: HKEY_LOCAL_MACHINE">HKLM</abbr>,&#039;{#UNINSTKEY}&#039;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;UninstallString&#039;,tmp)) and<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (tmp &lt;&gt; &#039;&#039;) and<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (fileexists(tmp)) then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Result := (MsgBox(ExpandConstant(&#039;{cm:NotVerifiedVersionFound}&#039;),mbConfirmation,MB_YESNO or MB_DEFBUTTON2) = IDYES);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; SetupMajor := CreateDWord({#MAJOR},{#MINOR});<br />
&nbsp; &nbsp; &nbsp; &nbsp; SetupMinor := CreateDWord({#RELEASE},{#BUILD});<br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; //Neuere Version ist installiert<br />
&nbsp; &nbsp; &nbsp; &nbsp; Result := (SetupMajor &gt; SavedMajor) or ((SetupMajor = SavedMajor) and (SetupMinor &gt;= SavedMinor));<br />
&nbsp; &nbsp; &nbsp; &nbsp; //Gleiche Version ist bereits installiert<br />
&nbsp; &nbsp; &nbsp; &nbsp; ResultAktuelleAppFound := (SetupMajor = SavedMajor) or ((SetupMajor = SavedMajor) and (SetupMinor = SavedMinor));<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; //Ermitteln und Umformen des Deinstallationspfades<br />
&nbsp; &nbsp; &nbsp; &nbsp; RegQueryStringValue(<abbr title="Registry-Schlüssel: HKEY_LOCAL_MACHINE">HKLM</abbr>,&#039;{#UNINSTKEY}&#039;,&#039;UninstallString&#039;,DOSBoxCAE2000UninstallString);<br />
&nbsp; &nbsp; &nbsp; &nbsp; DOSBoxCAE2000UninstallPath := (ExtractFileDir(DOSBoxCAE2000UninstallString) +&nbsp;&#039;\&#039; +&nbsp;&#039;&quot;&#039;);<br />
&nbsp; &nbsp; &nbsp; &nbsp; DOSBoxCAE2000UninstallName := (&#039;&quot;&#039; +&nbsp;ExtractFileName(DOSBoxCAE2000UninstallString));<br />
&nbsp; &nbsp; &nbsp; &nbsp; DOSBoxCAE2000UninstallStringRemovedQuotes := RemoveQuotes(DOSBoxCAE2000UninstallString);<br />
&nbsp; &nbsp; &nbsp; &nbsp; DOSBoxCAE2000UninstallPathRemovedQuotes := RemoveQuotes(DOSBoxCAE2000UninstallPath);<br />
&nbsp; &nbsp; &nbsp; &nbsp; DOSBoxCAE2000UninstallNameRemovedQuotes := RemoveQuotes(DOSBoxCAE2000UninstallName);<br />
<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; if not Result then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if RegQueryStringValue(<abbr title="Registry-Schlüssel: HKEY_LOCAL_MACHINE">HKLM</abbr>,&#039;{#UNINSTKEY}&#039;,&#039;InstallLocation&#039;,DOSBoxCAE2000Path) then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result := DirExists(DOSBoxCAE2000Path);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;  <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if not Result then <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Installationspfad der vorhandenen Installation kann nicht ermittelt werden<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MsgBox(ExpandConstant(&#039;{cm:DOSBoxPathNotFound}&#039;),mbError,MB_OK);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Abbruch der Installation wenn der Pfad akteuelle Installationspfad nicht ermittelt werden konnte<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ResultDOSBoxCAE2000PathCheck := false;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Messagebox das eine aktuellere Version installiert ist  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if MsgBox(ExpandConstant(&#039;{cm:NewerAppFound}&#039;),mbError,MB_YESNO or MB_DEFBUTTON2) = IDYES then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Silent-Ausführung der Deinstallation wenn aktuellere Version installiert ist und Benutzer dem zustimmte<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Exec(ExpandConstant(DOSBoxCAE2000UninstallStringRemovedQuotes),&#039;/SILENT&#039;,&#039;&#039;,SW_SHOW,ewWaitUntilTerminated,ResultCode);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end else<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Abbruch des Setups sobald der Benutzer sich gegen eine Deinstallation der aktuellen Version entscheidet<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ResultDOSBoxCAE2000DontDeinstall := true;  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; if ResultAktuelleAppFound = true then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Messagebox das die aktuellere Version gleich der zu installierenden ist<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MsgBox(Format(ExpandConstant(&#039;{cm:AktuelleAppFound}&#039;),&#91;DecodeVersion(SavedMajor,SavedMinor)&#93;),mbConfirmation,MB_OK);  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; end;<br />
<br />
<br />
&nbsp; &nbsp; function SaveVersionInfo: boolean;  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Aktuelle Versionsnummer in die Registry schreiben<br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; Result := (RegWriteDWordValue(<abbr title="Registry-Schlüssel: HKEY_LOCAL_MACHINE">HKLM</abbr>,&#039;{#UNINSTKEY}&#039;,&#039;MajorVer&#039;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CreateDWord({#MAJOR},{#MINOR}))) and<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (RegWriteDWordValue(<abbr title="Registry-Schlüssel: HKEY_LOCAL_MACHINE">HKLM</abbr>,&#039;{#UNINSTKEY}&#039;,&#039;MinorVer&#039;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CreateDWord({#RELEASE},{#BUILD})));<br />
&nbsp; &nbsp; &nbsp; end;<br />
<br />
<br />
&nbsp; &nbsp; function InitializeSetup: boolean;<br />
<br />
&nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; UserFolderCAE := &#039;&#039;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Result := true;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Result := IsSetupNewer; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; if ResultDOSBoxCAE2000PathCheck = true then  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Abbruchfunktion wenn der aktuelle Installationspfad nicht \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ermittelt werden konnte<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result := false;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; if ResultDOSBoxCAE2000DontDeinstall = true then  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Abbruchfunktion wenn der Benutzer sich gegen eine \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Deinstallation entschieden hat<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result := false;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; if ResultAktuelleAppFound = true then  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Abbruchfunktion wenn bereits die aktuelle Version installiert ist<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result := false;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; function InstallCae(Param:String):String;  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Schreiben des, vom Benutzer ermittelten, CAE2000-Pfades<br />
<br />
&nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; Result := UserDirPageCAE.Values&#91;0&#93;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; CAE2000Path := UserDirPageCAE.Values&#91;0&#93;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; RegWriteStringValue(<abbr title="Registry-Schlüssel: HKEY_LOCAL_MACHINE">HKLM</abbr>, &#039;{#UNINSTKEY}&#039;,&#039;CAE2000Location&#039;, CAE2000Path);  &nbsp;//Erstellen eines Registry-Eintrages für den CAE2000-Pfad<br />
&nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp; function GPSDir(Param:String):String;<br />
&nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; GPSPath := UserDirPageCAE.Values&#91;1&#93;;<br />
&nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; procedure GPSDirCheckBoxOnClick(Sender: TObject);  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Einblenden und Einstellen eines separaten GPS-Pfades  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; if GPSDirCheckBox.Checked then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UserDirPageCAE.Add(&#039;Zielverzeichnis des GPS Ordner´s&#039;);  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//GPS-Verzeichnisauswahlfenster<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UserDirPageCAE.Values&#91;1&#93; := ExpandConstant(&#039;C:\CAE2000\&#039;);  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //GPS-Standardpfad in der Verzeichnisauswahl<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end<br />
<br />
&nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp;<br />
<br />
&nbsp; &nbsp; procedure InitializeWizard;<br />
<br />
&nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; SplashFileName := ExpandConstant(&#039;{tmp}\WISAG Logo weiß.bmp&#039;);  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Einblenden vom WISAG-Logo für Zeit x<br />
&nbsp; &nbsp; &nbsp; &nbsp; ExtractTemporaryFile(ExtractFileName(SplashFileName));  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //WISAG-Logo aus dem tmp-Verzeichnis aufrufen<br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; SplashForm := TForm.create(nil);<br />
&nbsp; &nbsp; &nbsp; &nbsp; with SplashForm do<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BorderStyle := bsNone;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Position := poScreenCenter;  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//&nbsp;Bildposition angeben<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ClientWidth := 980;  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//&nbsp;Bildgröße angeben (Breite in px)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ClientHeight := 467;  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //&nbsp;Bildgröße angeben (Höhe in px)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; SplashImage := TBitmapImage.Create(SplashForm);<br />
&nbsp; &nbsp; &nbsp; &nbsp; with SplashImage do<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Bitmap.LoadFromFile(SplashFileName);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Stretch := true;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Align := alClient;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Parent := SplashForm;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; with SplashForm do<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Show;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for I := 1&nbsp;to 2&nbsp;do  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //&nbsp;Anzeigedauer in Sekunden; 1&nbsp;to 2&nbsp;= 2&nbsp;Sekunden)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Repaint;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Sleep(1000);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Close;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Free;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; &nbsp; UserDirPageCAE := CreateInputDirPage(wpSelectDir,  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Zusätzliche Verzeichnisauswahlseite einbinden<br />
&nbsp; &nbsp; &nbsp; ExpandConstant(&#039;{cm:CAEVerzeichnis}&#039;),<br />
&nbsp; &nbsp; &nbsp; ExpandConstant(&#039;{cm:SpeicherortPRTDEF}&#039;),<br />
&nbsp; &nbsp; &nbsp; ExpandConstant(&#039;{cm:SpeicherzielPRTDEF}&#039;),<br />
&nbsp; &nbsp; &nbsp; false,<br />
&nbsp; &nbsp; &nbsp; &#039;Neuer Ordner&#039;);<br />
<br />
&nbsp; &nbsp; &nbsp; UserDirPageCAE.Add(&#039;Zielverzeichnis der CAE2000.EXE&#039;);  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //CAE-Verzeichnisauswahlfenster<br />
<br />
&nbsp; &nbsp; &nbsp; UserDirPageCAE.Values&#91;0&#93; := ExpandConstant(&#039;C:\CAE2000\&#039;);  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //CAE-Standardpfad in der Verzeichnisauswahl<br />
<br />
&nbsp; &nbsp; &nbsp; GPSDirCheckBox := TRadioButton.Create(UserDirPageCAE);  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Radio-Button zum Einblenden bei separaten GPS-Pfad<br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; with GPSDirCheckBox do  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Parameter für die GPS-CheckBox<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; begin  &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GPSDirCheckBox.Parent := UserDirPageCAE.Surface;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Caption := ExpandConstant(&#039;{cm:GPSVerzeichnis}&#039;);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Left := ScaleX(0);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Top := ScaleY(120);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Width := ScaleX(400);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Height := ScaleY(40);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Checked := GPSDirCheckBoxChecked;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OnClick := @GPSDirCheckBoxOnClick;  &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; end;  &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; end;<br />
&nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; procedure CurStepChanged(CurStep: TSetupStep);  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Eintragen der benutzerspezifischen Pfadangaben \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; in die DOSBox-Konfigurationsdatei<br />
&nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; if CurStep=ssPostInstall then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DOSBoxConf := TStringList.Create;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DOSBoxConf.LoadFromFile((ExpandConstant(&#039;{localappdata}\DOSBox\dosbox-SVN_MB6.conf&#039;)));<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DOSBoxConf&#91;298&#93; := copy(DOSBoxConf&#91;298&#93;,1,22)+(ExpandConstant(&#039;{app}\PrintOut\SELECT.PCL&#039;))+copy(DOSBoxConf&#91;298&#93;,30,length(DOSBoxConf&#91;298&#93;));<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DOSBoxConf&#91;355&#93; := copy(DOSBoxConf&#91;355&#93;,1,9)+(ExpandConstant(&#039;&quot;{code:InstallCae}\&quot;&#039;))+copy(DOSBoxConf&#91;355&#93;,24,length(DOSBoxConf&#91;355&#93;)); <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DOSBoxConf&#91;356&#93; := copy(DOSBoxConf&#91;356&#93;,1,9)+(ExpandConstant(&#039;&quot;{app}\&quot;&#039;))+copy(DOSBoxConf&#91;356&#93;,24,length(DOSBoxConf&#91;356&#93;));  &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if GPSDirCheckBox.Checked then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DOSBoxConf&#91;357&#93; := copy(DOSBoxConf&#91;357&#93;,1,1)+&#039; mount D &#039;+(ExpandConstant(&#039;&quot;{code:GPSDir}\&quot;&#039;))+copy(DOSBoxConf&#91;357&#93;,24,length(DOSBoxConf&#91;357&#93;));<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DOSBoxConf.SaveToFile((ExpandConstant(&#039;{localappdata}\DOSBox\dosbox-SVN_MB6.conf&#039;)));<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DOSBoxConf.Free;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SaveVersionInfo;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; end;<br />
<br />
<br />
&nbsp; &nbsp; procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Code für deinstallation<br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; begin<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; RegQueryStringValue(<abbr title="Registry-Schlüssel: HKEY_LOCAL_MACHINE">HKLM</abbr>,&#039;{#UNINSTKEY}&#039;,&#039;CAE2000Location&#039;,GetCAE2000Path);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; if CurUninstallStep = usAppMutexCheck then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Kopieren der Backupdatei ins Originalverzeichnis<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FileCopy(ExpandConstant(GetCAE2000Path) +&nbsp;&#039;\Backup\PRTDEF.GER&#039;, ExpandConstant(GetCAE2000Path) +&nbsp;&#039;\PRTDEF.GER&#039;, false);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; if CurUninstallStep=usDone then  &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RegDeleteKeyIncludingSubkeys(<abbr title="Registry-Schlüssel: HKEY_LOCAL_MACHINE">HKLM</abbr>, &#039;{#UNINSTKEY}&#039;);  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Löschen des Rigistry-Eintrages nach der Deinstallation <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; end;
		</div>
	</div>
</div>
		</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>bennySB</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175142-code-analyse-von-semi-profis.html</guid>
		</item>
		<item>
			<title>Delphi falscher Style bei MainMenu durch Bitmaps</title>
			<link>http://www.delphipraxis.net/175139-falscher-style-bei-mainmenu-durch-bitmaps-new-post.html</link>
			<pubDate>Sat, 01 Jun 2013 13:52:15 GMT</pubDate>
			<description>Hallo werte *Delphi-Praxis-Community* :hi:, 
 
ich bin neu hier. :wink: Ich verwende gerne die Komponente *TMainMenu*. Man kann sie auch noch mit...</description>
			<content:encoded><![CDATA[<div><span style="font-size:14px;">Hallo werte <b>Delphi-Praxis-Community</b> :hi:,<br />
<br />
ich bin neu hier. :wink: Ich verwende gerne die Komponente <b>TMainMenu</b>. Man kann sie auch noch mit Bildern verschönern, die dann links, im Normalfall, neben dem Menü-Eintrag erscheinen. Nur leider erhalten diese Menü-Einträge den <b>Windows 2000-Style</b>, <b>nicht</b> aber den gewünschten <b>Vista-Style</b> (siehe Anhang). Immer, wenn ich eine neue Anwendung erstelle, wird auch das <b>XPManifest</b> auf die Form gezogen. Doch selbst wenn sich dieses Manifest auf der Form befindet, behebt es nicht den Darstellungs-Fehler. Ich habe auch schon verucht eigene <b>Ressourcen-Dateien</b> zu erstellen und diese dann in meinem Projekt einzubinden, doch auch das hat nichts an der Darstellung des Mainmenüs mit den Bildern geändert. Auch habe ich versucht, die Komponente <b>TImageList</b> zu verwenden, um die <b>Bitmaps durch Icons auszutauschen</b>, da diese beiden Bildformate die einzigen sind, die man in <b>Turbo Delphi</b> für das MainMenu verwenden kann. Aber auch das klappte nicht.<br />
Als Vergleich habe ich <b>Lazarus 1.0.8</b> und die <b>Trial-Version von Delphi XE3</b> installiert. Und siehe da, das Menü wird so angezeigt, wie es angezeigt werden soll. Bei <b>Lazarus</b> wird das Bild zwar <b>etwas heller</b>, wenn man mit der Maus über den jeweiligen Menüpunkt fährt, aber es behält den Vista-Style. Ich möchte aber ungern die <abbr title="Integrated Development Environment">IDE</abbr> wechseln, da ich mit Turbo Delphi sehr gut auskomme.<br />
<br />
Edit: Hier habe ich dieses Problem auch schon angesprochen, aber es konnte leider noch nicht gelöst werden:<br />
<img src="styles/elise/misc/inlink.gif" width="10" height="10" align="middle" style="vertical-align:middle" alt="" hspace="3" border="0"  /><a href="http://forum.delphi-treff.de/index.php?page=Thread&amp;threadID=58857" target="_blank">falsche Darstellung des TMainMenu durch Bitmaps</a><br />
<br />
Wenn irgendjemand helfen kann, dann wäre ich sehr dankbar. :)<br />
<br />
MfG<br />
<b>Truther</b> :coder:</span></div>


	<br />
	<div style="padding:6px">

	

	

	
		<fieldset class="fieldset">
			<legend>Angehängte Grafiken</legend>
			<table cellpadding="0" cellspacing="3" border="0">
			<tr>
	<td><img class="inlineimg" src="http://www.delphipraxis.net/styles/elise/attach/png.png" alt="Dateityp: png" width="16" height="16" border="0" style="vertical-align:baseline;" /></td>
	<td><a href="http://www.delphipraxis.net/attachments/39320d1370093525-falscher-style-bei-mainmenu-durch-bitmaps-gimp_mm_normalerweise.png">GIMP_MM_normalerweise.png</a> (12,9 KB)</td>
</tr><tr>
	<td><img class="inlineimg" src="http://www.delphipraxis.net/styles/elise/attach/png.png" alt="Dateityp: png" width="16" height="16" border="0" style="vertical-align:baseline;" /></td>
	<td><a href="http://www.delphipraxis.net/attachments/39321d1370093533-falscher-style-bei-mainmenu-durch-bitmaps-delphi_mm_design_fehler_mit_bitmap.png">Delphi_MM_Design_Fehler_mit_Bitmap.png</a> (3,5 KB)</td>
</tr><tr>
	<td><img class="inlineimg" src="http://www.delphipraxis.net/styles/elise/attach/png.png" alt="Dateityp: png" width="16" height="16" border="0" style="vertical-align:baseline;" /></td>
	<td><a href="http://www.delphipraxis.net/attachments/39322d1370093540-falscher-style-bei-mainmenu-durch-bitmaps-delphi_mm_design_fehler_ohne_bitmap.png">Delphi_MM_Design_Fehler_ohne_Bitmap.png</a> (4,0 KB)</td>
</tr>
			</table>
			</fieldset>
	

	

	</div>
]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>Truther</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175139-falscher-style-bei-mainmenu-durch-bitmaps.html</guid>
		</item>
		<item>
			<title>Delphi FileCopy geht nicht</title>
			<link>http://www.delphipraxis.net/175126-filecopy-geht-nicht-new-post.html</link>
			<pubDate>Fri, 31 May 2013 19:52:42 GMT</pubDate>
			<description>Guten Abend zusammen^^ 
 
Ich habe bei mir in meinem Code ganz am Schluss nun ein Problem noch drin und ich bin einfach zu blind es zu sehen. 
 
Beim...</description>
			<content:encoded><![CDATA[<div>Guten Abend zusammen^^<br />
<br />
Ich habe bei mir in meinem Code ganz am Schluss nun ein Problem noch drin und ich bin einfach zu blind es zu sehen.<br />
<br />
Beim Installieren lasse ich ein Backup einer Datei erstellen <br />
<br />
<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_code3d47e8f6" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			&#91;Files&#93;<br />
Source: {code:InstallCae}\PRTDEF.GER; DestDir: {code:InstallCae}\Backup\; Flags: ignoreversion confirmoverwrite external
		</div>
	</div>
</div>
		Und diese Datei soll logischerweise bei der Deinstallation wiederhergestellt werden und das versuche ich hiermit:<br />
<br />
<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_code257128ae" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			&nbsp; &nbsp; procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);  &nbsp;//Code für deinstallation<br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; begin<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; RegQueryStringValue(<abbr title="Registry-Schlüssel: HKEY_LOCAL_MACHINE">HKLM</abbr>,&#039;{#UNINSTKEY}&#039;,&#039;CAE2000Location&#039;,GetCAE2000Path);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; if CurUninstallStep = usAppMutexCheck then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MsgBox(ExpandConstant(GetCAE2000Path),mbError,MB_OK);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FileCopy(&#039;ExpandConstant(GetCAE2000Path)\Backup\PRTDEF.GER&#039;, &#039;ExpandConstant(GetCAE2000Path)\PRTDEF.GER&#039;, false);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; if CurUninstallStep=usDone then  &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RegDeleteKeyIncludingSubkeys(<abbr title="Registry-Schlüssel: HKEY_LOCAL_MACHINE">HKLM</abbr>, &#039;{#UNINSTKEY}&#039;); <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; end;
		</div>
	</div>
</div>
		Das Löschen des Registry Eintrages funktioniert einwandfrei jedoch nicht das Kopieren der Datei.<br />
Es gibt keine Fehlermeldung oder sowas, er macht einfach nichts.<br />
Die MessageBox habe ich mir nur eingefügt um zu sehen ob der Code auch korrekt ausgelesen wird und in meinem Fall wird er das. Der String &quot;GetCAE2000Path&quot; heißt bei mir dann D:\CAE2000.<br />
Tippe ich die Pfadangaben statisch ein läuft das Kopieren durch, also liegt die Vermutung nahe das der Pfad einfach ausm String nicht korrekt übergeben wird, aber ich sehe es einfach nicht.<br />
Kann mir hier einer helfen?<br />
<br />
<br />
Ps. Schreiben tue ich das ganze im Programm &quot;Inno Setup&quot;</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>bennySB</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175126-filecopy-geht-nicht.html</guid>
		</item>
		<item>
			<title>DateUtils -Tools fehlen in Delphi 7</title>
			<link>http://www.delphipraxis.net/175103-dateutils-tools-fehlen-delphi-7-a-new-post.html</link>
			<pubDate>Thu, 30 May 2013 14:29:17 GMT</pubDate>
			<description>Ich benutze noch Delphi 7, es ist schon ziemlich betagt, genügt aber meinen Ansprüchen. 
Ich wollte mal ein paar Datum-Tools nutzen, die werden in...</description>
			<content:encoded><![CDATA[<div>Ich benutze noch Delphi 7, es ist schon ziemlich betagt, genügt aber meinen Ansprüchen.<br />
Ich wollte mal ein paar Datum-Tools nutzen, die werden in der d7-Hilfe auch alle angezeigt, z.B. Uses DateUtils mit DayOfTheWeek oder DayOfTheYear. Da kommt immer ein Compilierungsfehler <br />
<br />
[Fehler] TestDatumU.pas(72): Undefinierter Bezeichner: 'DayOfTheYear'<br />
<br />
Muss ich da irgendwo noch irgendwas einstellen ?</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>kwhk</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175103-dateutils-tools-fehlen-delphi-7-a.html</guid>
		</item>
		<item>
			<title>IEnumFORMATETC exakte Deklaration?</title>
			<link>http://www.delphipraxis.net/175085-ienumformatetc-exakte-deklaration-new-post.html</link>
			<pubDate>Wed, 29 May 2013 16:05:03 GMT</pubDate>
			<description>Hallo, 
 
Ich möchte ein Projekt von Freepascal nach Delphi portieren und hier: 
 
 
  TfpgOLEEnumFormatEtc = class(TInterfacedObject,...</description>
			<content:encoded><![CDATA[<div>Hallo,<br />
<br />
Ich möchte ein Projekt von Freepascal nach Delphi portieren und hier:<br />
<br />
<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_codeb04df4c7" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			&nbsp; TfpgOLEEnumFormatEtc = class(TInterfacedObject, IEnumFORMATETC)<br />
&nbsp; private<br />
&nbsp; &nbsp; FFormatEtcList: TfpgOLEFormatEtcList;<br />
&nbsp; &nbsp; FIndex: Integer;<br />
&nbsp; protected<br />
&nbsp; &nbsp; {&nbsp;IEnumFORMATETC }<br />
//&nbsp;Bei diesen beiden Funktionen kommt der Compiler nicht weiter<br />
&nbsp; &nbsp; function  &nbsp; Next(celt: Longint; var elt:FormatEtc; pceltFetched: PLongint=nil): HResult; stdcall;<br />
&nbsp; &nbsp; function  &nbsp; Skip(celt: Longint): HResult; stdcall;<br />
&nbsp; &nbsp; function  &nbsp; Reset: HResult; stdcall;<br />
&nbsp; &nbsp; function  &nbsp; Clone(out Enum: IEnumFormatEtc): HResult; stdcall;<br />
&nbsp; public<br />
&nbsp; &nbsp; constructor Create(AFormatEtcList: TfpgOLEFormatEtcList);<br />
&nbsp; &nbsp; destructor  Destroy; override;<br />
&nbsp; end;
		</div>
	</div>
</div>
		wie im Kommentar gesagt, erhalte ich die Fehlermeldung das sich die Deklaration der beiden Funktionen []bNext[/b] und <b>Skip</b> von der Deklaration im Interface unterscheidet?<br />
<br />
Ich habe unter Google unter IEnumFORMATETC delphi gesucht, auch das Wort Delphi vor den Interfacebezeichner nichts gefunden. <br />
<br />
Wo finde ich die exakte Deklaration dieses Interfaces? <br />
<br />
Habe die <abbr title="Visual Component Library">VCL</abbr> Quelltexte nicht auf meinem derzeitigen Rechner.</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>Nintendo</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175085-ienumformatetc-exakte-deklaration.html</guid>
		</item>
		<item>
			<title>Prozedur / Funktionsname auslesen?</title>
			<link>http://www.delphipraxis.net/175079-prozedur-funktionsname-auslesen-new-post.html</link>
			<pubDate>Wed, 29 May 2013 11:19:07 GMT</pubDate>
			<description><![CDATA[Hallo liebe Mit-Delphianer, 
 
ich schwör's, ich hab herumgesucht, allein, mir ist nicht so ganz klar wonach ich da suchen hätte sollen......]]></description>
			<content:encoded><![CDATA[<div>Hallo liebe Mit-Delphianer,<br />
<br />
ich schwör's, ich hab herumgesucht, allein, mir ist nicht so ganz klar wonach ich da suchen hätte sollen... Jedenfalls: Nix gefunden bislang. Vielleicht isses ja eh eine bekannte G'schicht, also ich lass es mal rüber:<br />
<br />
Ich möchte (würd gerne) ganz einfach innerhalb einer Funktion auf deren Namen zugreifen können... <br />
<br />
Beispiel:<br />
<div style="text-align:left; margin-top:15px;">
	<strong>Code:</strong>
	<div class="dpbox-code">
		<div id="codeblock_codec4fceef6" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			function tuWas(sS:string):boolean;<br />
<br />
var<br />
&nbsp; &nbsp; einString:  string;<br />
<br />
begin<br />
&nbsp; &nbsp; einString:=?????.Text //GENAU DA MEINE ICH... IN einString sollte jetzt &#039;tuWas&#039; stehen...<br />
&nbsp; &nbsp; showMessage(einString); //GIBT IN DIESEM FALL tuWas aus<br />
end;
		</div>
	</div>
</div>
		Wegen einer vernünftigen Fehlerbehandlungsroutine warads...<br />
<br />
GLG aus Wien, <br />
<br />
E. Joerginger (D7, immer noch)</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>Joerginger</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175079-prozedur-funktionsname-auslesen.html</guid>
		</item>
		<item>
			<title>{$WARN UNIT_PLATFORM OFF} funktioniert nicht ?</title>
			<link>http://www.delphipraxis.net/175072-%7B%24warn-unit_platform-off%7D-funktioniert-nicht-new-post.html</link>
			<pubDate>Wed, 29 May 2013 06:08:45 GMT</pubDate>
			<description>Hallo, 
 
unter D2007. 
 
unit Unit1; 
 
interface 
 
{$WARN UNIT_PLATFORM OFF} 
{$WARN SYMBOL_PLATFORM OFF}</description>
			<content:encoded><![CDATA[<div>Hallo,<br />
<br />
unter D2007.<br />
<br />
<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_codea4a6f43e" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			<abbr title="Sammlung mehrerer Routinen und Klassen in einer Pascal-Datei.">unit</abbr> Unit1;<br />
<br />
interface<br />
<br />
{$WARN UNIT_PLATFORM OFF}<br />
{$WARN SYMBOL_PLATFORM OFF}<br />
<br />
implementation<br />
<br />
&nbsp; faArchive &lt;&lt;--&nbsp;Warnung<br />
<br />
end;
		</div>
	</div>
</div>
		Trotz des WARN OFF kommt die Platform-Warnung, warum ?<br />
Es hilft nur das {$WARN SYMBOL_PLATFORM OFF} direkt im Code einzusetzen.<br />
Ist aber doof ...<br />
<br />
Warum geht das nicht ?<br />
<br />
Heiko</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>hoika</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175072-%7B%24warn-unit_platform-off%7D-funktioniert-nicht.html</guid>
		</item>
		<item>
			<title>Delphi Textimport und export</title>
			<link>http://www.delphipraxis.net/175042-textimport-und-export-new-post.html</link>
			<pubDate>Mon, 27 May 2013 07:04:50 GMT</pubDate>
			<description>Guten Tag alle zusammen, 
 
ich hoffe mich absoluten Neuling kann hier einer mal am Arm packen und in die richtige Richtung werfen *gg* 
 
Ich habe...</description>
			<content:encoded><![CDATA[<div>Guten Tag alle zusammen,<br />
<br />
ich hoffe mich absoluten Neuling kann hier einer mal am Arm packen und in die richtige Richtung werfen *gg*<br />
<br />
Ich habe mir mit dem Programm &quot;Inno Setup&quot; eine *.exe erstellt welche auch tadellos funktioniert, nur noch nicht ganz fertig ist und genau der Punkt der noch offen ist ist für mich der Schwerste^^<br />
<br />
Meine *.exe installiert ein paar Anwendungen welche nicht der Rede wert sind (keine Treibe, <abbr title="Dynamic Linked Library">DLL</abbr>´s, Registrierungseinträge o.ä.).<br />
Es sind einfach nur ein paar Dateien welche in ein vom Benutzer wählbares Instalationsverzeichnis kopiert werden, zwei Dateien die nach &quot;localappdata&quot; kopiert werden und eine Datei die in ein zusätzlich vom Benutzer gewähltest Verzeichnis kopiert wird.<br />
Mir geht es nun um eine *.conf Datei welche mit jedem Editor bearbeitbar ist, denn in diese müssen die vom Benutzer gewählten Pfadangaben nach dem kopieren der Datei an bestimmte Positionen eingetragen werden.<br />
<br />
Natürlich habe ich schonmal versucht etwas selbst hin zu kriege mit FileToString als AnsiString und StringToFile, jedoch hapert es da bei mir bissl an der Erfahrung und dem Verständnis.<br />
<br />
Nun hoffe ich das mir jemand bei meinem Vorhaben helfen kann, sollten noch Fragen jeglicher Art vorhanden sein so stürzt euch auf mich.<br />
<br />
<br />
MfG Benny<br />
<br />
Zur Veranschaulichung mal meinen bisherigen Code:<br />
<br />
<div style="text-align:left; margin-top:15px;">
	<strong>Delphi-Quellcode:</strong>
	<div class="dpbox-code">
		<div id="codeblock_code5c3410bf" class="sourcecode" style="text-align:left; white-space:normal; overflow-x:auto; overflow-y:auto; overflow:auto; width:100%; border-left:4px solid #CCC; padding-left:3px;">
			&nbsp; var <br />
&nbsp; &nbsp; UserDirPage : TInputDirWizardPage;<br />
&nbsp; &nbsp; UserFolder : string;<br />
<br />
&nbsp; &nbsp; function InitializeSetup: boolean;<br />
<br />
&nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; UserFolder := &#039;&#039;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Result := true;<br />
&nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; function InstallCae(Param:String):String;<br />
<br />
&nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; result := UserDirPage.Values&#91;0&#93; ;<br />
&nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; procedure InitializeWizard;<br />
<br />
&nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; UserDirPage := CreateInputDirPage(wpSelectDir,<br />
&nbsp; &nbsp; &nbsp; ExpandConstant(&#039;{cm:CAEVerzeichnis}&#039;),<br />
&nbsp; &nbsp; &nbsp; ExpandConstant(&#039;{cm:SpeicherortPRTDEF}&#039;),<br />
&nbsp; &nbsp; &nbsp; ExpandConstant(&#039;{cm:SpeicherzielPRTDEF}&#039;),<br />
&nbsp; &nbsp; &nbsp; false,<br />
&nbsp; &nbsp; &nbsp; &#039;Neuer Ordner&#039;);<br />
<br />
&nbsp; &nbsp; &nbsp; //&quot;Klicken sie weiter...&quot; Meldung<br />
&nbsp; &nbsp; &nbsp; UserDirPage.Add(SetupMessage(msgSelectDirBrowseLabel));<br />
<br />
&nbsp; &nbsp; &nbsp; //Standardpfad in der Verzeichnisauswahl<br />
&nbsp; &nbsp; &nbsp; UserDirPage.Values&#91;0&#93; := ExpandConstant(<br />
&nbsp; &nbsp; &nbsp; &#039;C:\CAE2000\&#039;);<br />
&nbsp; &nbsp; &nbsp; end;<br />
<br />
&nbsp; &nbsp; procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);  &nbsp;//Code für deinstallation<br />
<br />
&nbsp; &nbsp; &nbsp; begin<br />
&nbsp; &nbsp; &nbsp; &nbsp; if CurUninstallStep=usPostUninstall then<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FileCopy(&#039;{code:InstallCae}\Backup\PRTDEF.GER&#039;,&#039;{code:InstallCae}\PRTDEF.GER&#039;,false);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DelTree(&#039;{code:InstallCae}\Backup\*&#039;, true, true, true);<br />
<br />
&nbsp; &nbsp; &nbsp; end;
		</div>
	</div>
</div>
		</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>bennySB</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175042-textimport-und-export.html</guid>
		</item>
		<item>
			<title>Delphi FMX = Spiele-Engine in schlecht?</title>
			<link>http://www.delphipraxis.net/175033-fmx-%3D-spiele-engine-schlecht-new-post.html</link>
			<pubDate>Sun, 26 May 2013 11:41:39 GMT</pubDate>
			<description>Ich war und bin begeistert von der Idee, von der VCL los zu kommen. 
FMX verspricht ja viel, bringt aber real viele Probleme mit sich. 
 
Neben...</description>
			<content:encoded><![CDATA[<div>Ich war und bin begeistert von der Idee, von der <abbr title="Visual Component Library">VCL</abbr> los zu kommen.<br />
FMX verspricht ja viel, bringt aber real viele Probleme mit sich.<br />
<br />
Neben mangelhaften Umsetzungen im Detail und dem unausgegorenen Style-Konzept ist die FMX-<abbr title="Graphical User Interface">GUI</abbr> sehr langsam.<br />
<br />
Klar, da muss deutlich mehr berechnet werden als bei der <abbr title="Visual Component Library">VCL</abbr>. Es ist auch verständlich, dass beim Umpositionieren von Controls die Umgebung neu (und somit mehrfach) gezeichnet werden muss.<br />
Wenn man aber mal so 3D-Spiele sieht (was absolutes Fremdgebiet für mich ist), dann erkennt man, was wirklich möglich ist.<br />
<br />
Kann jemand beide Framework-Konzepte (FMX und SpieleEngines) grundsätzlich vergleichen und Parallelen und Unterschiede erklären?<br />
<br />
Könnte man nicht einfach eine SpieleEngine nehmen und statt Monstern und Drachen einfach Schalter und Edits als Figuren/Objekte darstellen?<br />
<br />
Wenn im WOW ganze Welten flüssig und Live dargestellt werden können (sogar online), warum ist FMX dann so langsam und störrig?<br />
Sollten sich nicht entsprechend auch Fachanwendungen in der Form von Spielen entwickeln lassen? Könnte man nicht eine Fachanwendung als grafisch anspruchsloses Spiel ansehen?<br />
Gibt es dafür zwingende Gründe?<br />
<br />
Die BL-Schicht und Datenverwaltung ist ja ohnehin gleich oder kann gleich sein.<br />
Der Unterschied liegt in der Darstellung und Handling der <abbr title="Graphical User Interface">GUI</abbr>.<br />
<br />
Ein Unterschied ist sicher, dass in Spielen Figuren kaum mit der Maus focusiert werden - oder?<br />
Insofern sind dafür keine oder andere Handles notwendig?<br />
<br />
<br />
Ich weiß, das ist eine recht naive Fragestellung aber vielleicht kann man sich ja hier mal thematisch ein wenig austoben...</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>stahli</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175033-fmx-%3D-spiele-engine-schlecht.html</guid>
		</item>
		<item>
			<title>Dll-s registrieren, Verständnisfrage</title>
			<link>http://www.delphipraxis.net/175027-dll-s-registrieren-verstaendnisfrage-new-post.html</link>
			<pubDate>Sat, 25 May 2013 20:37:15 GMT</pubDate>
			<description>Hallo,  
 
ich spiele gerade mit einem Testpluginsystem rum, das ich aus der DP geladen habe. Leider finde ich den Thread nicht mehr, sonst würde ich...</description>
			<content:encoded><![CDATA[<div>Hallo, <br />
<br />
ich spiele gerade mit einem Testpluginsystem rum, das ich aus der <abbr title="Delphi-PRAXiS">DP</abbr> geladen habe. Leider finde ich den Thread nicht mehr, sonst würde ich vielleicht dort posten. Aber ich habe be der <abbr title="Dynamic Linked Library">Dll</abbr> Registrierung auch ein Verständnisproblem, weshalb es vielleicht gar nicht so schlecht ist, in einem neuen Thread zu posten.<br />
<br />
Mein Problem:<br />
<br />
-Wenn ich eine <abbr title="Dynamic Linked Library">Dll</abbr> verwenden will, muss ich sie im System vorher registrieren.<br />
   <br />
   könnte ich dann nicht auch einfach den Suchpfad für die <abbr title="Dynamic Linked Library">Dll</abbr> angeben, um die Registrierung umgehen zu können. Registrierung mag nach meinem aktuellen Verständnis bei systemweit verwendeten Dlls nützlich sein, aber bei eigenen Plugins?<br />
<br />
Diese Kommandozeile habe ich eingegeben auf meinem Rechner:<b><br />
regsvr32 c:\Program Files\Borland\Delphi7\Projects\plugins\extendablea  pp\Bins\Plugin01.dll</b><br />
<br />
Den <abbr title="Dynamic Linked Library">Dll</abbr> Suchpfad habe ich aus Total Commander aus der Pfadzeile kopiert, nachdem ich mit der Maus da rein galkickt habe. Der Cursor der Dateiliste stand dabei auf den Dateinamen &quot;[..]&quot;. Ich kan dann den aktuellen Pfad mit Copy und Paste übernehmen.<br />
<br />
Dennoch erhalte ich vom RegServer die Fehlermeldung:<br />
<i><b><br />
...dll was loaded but the DllRegisterServer Entry Point was not found.<br />
<br />
This file cannot be registered.</b></i><br />
<br />
Was läuft hier falsch.<br />
<br />
Ich verwende WinXP Home Service Pack 3 + aktuelle Updates.<br />
<br />
Auf dieser Inernetseite habe ich mich über RegSvr32 informiert:<br />
<img src="styles/elise/misc/inlink.gif" width="10" height="10" align="middle" style="vertical-align:middle" alt="" hspace="3" border="0"  /><a href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/regsvr32.mspx?mfr=true" target="_blank">http://www.microsoft.com/resources/d....mspx?mfr=true</a><br />
<br />
Regsvr32<br />
<br />
This command-line tool registers .dll files as command components in the registry.<br />
Syntax<br />
<br />
regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname<br />
Top of pageTop of page<br />
Parameters<br />
<br />
/u : Unregisters server.<br />
<br />
/s : Specifies regsvr32 to run silently and to not display any message boxes.<br />
<br />
/n : Specifies not to call DllRegisterServer. You must use this option with /i.<br />
<br />
/i:cmdline : Calls DllInstall passing it an optional [cmdline]. When used with /u, it calls <abbr title="Dynamic Linked Library">dll</abbr> uninstall.<br />
<br />
dllname : Specifies the name of the <abbr title="Dynamic Linked Library">dll</abbr> file that will be registered.<br />
<br />
/? : Displays help at the command prompt. <br />
<br />
Ich will alle Mitteilungen sehen, weshalb die Option /s nicht in Betracht kommen kann. Ich will auch einfach nur die <abbr title="Dynamic Linked Library">Dll</abbr> registrieren, deshalb möchte ich auch nicht mit der Option /n oder /i:cmdline rumbasteln. Sondern einfach nur die besagte <abbr title="Dynamic Linked Library">Dll</abbr> registrieren.<br />
<br />
Warum, hier kommt wieder die Verständnisfrage, muss ich das überhaupt machen. Warum nicht einfach den Suchpfad beim Laden der <abbr title="Dynamic Linked Library">Dll</abbr> im Programm angeben. <br />
<br />
Was passiert bei der <abbr title="Dynamic Linked Library">Dll</abbr> Registrierung in Windows?</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>Nintendo</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175027-dll-s-registrieren-verstaendnisfrage.html</guid>
		</item>
		<item>
			<title>TApplication.Processmessage</title>
			<link>http://www.delphipraxis.net/175014-tapplication-processmessage-new-post.html</link>
			<pubDate>Fri, 24 May 2013 14:26:32 GMT</pubDate>
			<description>Hallo, 
 
kann mir jemand sagen, wie ich das private TApplication.Processmessage aufrufen kann? 
 
Hintergrund: ich will in einer etwas...</description>
			<content:encoded><![CDATA[<div>Hallo,<br />
<br />
kann mir jemand sagen, wie ich das private TApplication.Processmessage aufrufen kann?<br />
<br />
Hintergrund: ich will in einer etwas zeitkritischen Anwendung auf ein Ereignis warten und während dessen nicht die MessageQueue blockieren - aber halt sofort nach Eintritt des Ereignisses mit meiner Procedure fortfahren und nicht, wie bei .ProcessMessages(), nachdem <b>alle </b>Messages aus der Queue abgearbeitet wurden<br />
<br />
mir schwebt so etwas wie TMyApplication = class(TApplication) .. vor, aber geht sowas?<br />
<br />
mfg</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>mentaltec</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175014-tapplication-processmessage.html</guid>
		</item>
		<item>
			<title>Delphi Torry Website down?</title>
			<link>http://www.delphipraxis.net/175002-torry-website-down-new-post.html</link>
			<pubDate>Thu, 23 May 2013 23:52:54 GMT</pubDate>
			<description><![CDATA[Hallo! Weiß jemand, was mit <img src="styles/elise/misc/inlink.gif" width="10" height="10" align="middle" style="vertical-align:middle" alt=""...]]></description>
			<content:encoded><![CDATA[<div>Hallo! Weiß jemand, was mit <img src="styles/elise/misc/inlink.gif" width="10" height="10" align="middle" style="vertical-align:middle" alt="" hspace="3" border="0"  /><a href="http://www.torry.net" target="_blank">Torry</a> los ist? Seit einigen Tagen nicht mehr erreichbar.</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>PeterPanino</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/175002-torry-website-down.html</guid>
		</item>
		<item>
			<title>Delphi Delphi XE4 Hilfe für Microsoft SDK ist weg</title>
			<link>http://www.delphipraxis.net/174995-delphi-xe4-hilfe-fuer-microsoft-sdk-ist-weg-new-post.html</link>
			<pubDate>Thu, 23 May 2013 13:16:45 GMT</pubDate>
			<description>Hallo, 
 
bei meinem RadStudio XE4 ist in Delphi keine Hilfe für das SDK von Windows mehr. Wenn ich dann die URL aus XE3 in die Hilfe kopiere,...</description>
			<content:encoded><![CDATA[<div>Hallo,<br />
<br />
bei meinem RadStudio XE4 ist in Delphi keine Hilfe für das <abbr title="Software Development Kit">SDK</abbr> von Windows mehr. Wenn ich dann die <abbr title="Uniform Resource Locator">URL</abbr> aus XE3 in die Hilfe kopiere, erscheint zwar die <abbr title="Software Development Kit">SDK</abbr>-Startseite, aber links in der Übersicht gibt es keine Unterverzeichnisse zum Navigieren. Bei XE3 funktioniert es einwandfrei.<br />
<br />
Hat jemand eine Ahnung, was das sein könnte, bzw. wie auf die XE3 Hilfe zugreifen kann, ohne XE3 parallel zu starten.<br />
<br />
Vielen Dank aus Bochum</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>Kraisel</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/174995-delphi-xe4-hilfe-fuer-microsoft-sdk-ist-weg.html</guid>
		</item>
		<item>
			<title>Fastreport und Druckerschacht</title>
			<link>http://www.delphipraxis.net/174992-fastreport-und-druckerschacht-new-post.html</link>
			<pubDate>Thu, 23 May 2013 10:06:48 GMT</pubDate>
			<description><![CDATA[Hallo, 
 
Komponentenupdates sind wie immer spitze, nichts geht mehr. 
 
Wir haben (einige haben es vielleicht verfolgt, thematik PDF-Export <img...]]></description>
			<content:encoded><![CDATA[<div>Hallo,<br />
<br />
Komponentenupdates sind wie immer spitze, nichts geht mehr.<br />
<br />
Wir haben (einige haben es vielleicht verfolgt, thematik PDF-Export <img src="styles/elise/misc/inlink.gif" width="10" height="10" align="middle" style="vertical-align:middle" alt="" hspace="3" border="0"  /><a href="!174917!http://www.delphipraxis.net/174917-endlich-brauchbarer-fastreport-pdf-export-von-synopse.html" target="_blank">http://www.delphipraxis.net/174917-e...n-synopse.html</a>) gerade das FastReport Update eingespielt (4.10&gt;4.13/4.14) (und jetzt wieder zurückgesetzt). Das Zuweisen der Druckerschächte funktioniert nicht mehr.<br />
<br />
Wir haben biser einen Code gemäß FR-Forum verwendet, welcher jetzt (anpassungen für Lazarus, FMX) offensichtlich nicht mehr funktioniert.<br />
<br />
<img src="styles/elise/misc/inlink.gif" width="10" height="10" align="middle" style="vertical-align:middle" alt="" hspace="3" border="0"  /><a href="http://www.fast-report.com/en/forum/index.php?showtopic=4725&amp;pid=28670&amp;mode=threaded&amp;start=#entry28670" target="_blank">http://www.fast-report.com/en/forum/...rt=#entry28670</a><br />
<br />
Unser grundsätzlicher Code schaut wie folgt aus:<br />
<br />
FrxReport1.PrepareReport;<br />
Bin:=frxPrinters.Printer.BinNameToNumber(PrtDlg.bi  n_copie_1.Text);<br />
frxReport1.Print; //copie 1<br />
Bin:=frxPrinters.Printer.BinNameToNumber(PrtDlg.bi  n_copie_2.Text);<br />
TfrxHackedPrinter(frxPrinters.Printer).Bin:=bin;<br />
frxReport1.Print; //copie 2 on another bin<br />
<br />
Kennt jemand das Problem, evtl gibt es noch eine andere Lösung den Druckerschacht zuzuweisen.<br />
<br />
frxPrinters.Printer.SetPrintParams scheint ebenfalls nicht zu funktionieren.</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>DSCHUCH</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/174992-fastreport-und-druckerschacht.html</guid>
		</item>
		<item>
			<title>Delphi Datei öffnen / Dateiname Teil variabel</title>
			<link>http://www.delphipraxis.net/174987-datei-oeffnen-dateiname-teil-variabel-new-post.html</link>
			<pubDate>Thu, 23 May 2013 06:21:57 GMT</pubDate>
			<description>Hallo Leute. 
Ich bin sowohl in der Programmierung als auch hier im Forum neu. 
Habe mich durch Internet ein bisschen eingelesen. 
 
Mein Ziel: 
Ich...</description>
			<content:encoded><![CDATA[<div>Hallo Leute.<br />
Ich bin sowohl in der Programmierung als auch hier im Forum neu.<br />
Habe mich durch Internet ein bisschen eingelesen.<br />
<br />
Mein Ziel:<br />
Ich möchte einige Buttons entwerfen mit denen ich unterschiedliche Datein öffnen kann<br />
uses ShellApi;<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
if ShellExecute(Application.Handle,<br />
'open',<br />
PChar('D:\Test\teil1_version1.doc'),<br />
nil, nil, SW_NORMAL) &lt;= 32 then<br />
ShowMessage('Es ist ein Fehler aufgetreten');<br />
end;<br />
<br />
soweit so gut.<br />
Jetzt hab ich nur folgendes handycap<br />
der Dateiname &quot;version1&quot; ändert sich ständig (version 1-10)<br />
Damit hätte ich zB.<br />
Teil 1 Version 1<br />
Teil 2 Version 7<br />
Teil 3 Version 9<br />
usw.<br />
Ist es möglich das ich beim Dateinamen nur nach den ersten Buchstaben gehe?<br />
soll heißen das er die Version ignoriert.<br />
zB.<br />
Öffne Teil 1 *<br />
??<br />
Vielen Dank<br />
LG eilovliz<br />
<br />
PS hoffe ich habe es geschafft halbwegs so auszudrücken das ihr mich versteht</div>

]]></content:encoded>
			<category domain="http://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/">Sonstige Fragen zu Delphi</category>
			<dc:creator>jigsawclan</dc:creator>
			<guid isPermaLink="true">http://www.delphipraxis.net/174987-datei-oeffnen-dateiname-teil-variabel.html</guid>
		</item>
	</channel>
</rss>
