<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>armin pfaeffle</title>
	<atom:link href="http://www.armin-pfaeffle.de/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.armin-pfaeffle.de/blog</link>
	<description></description>
	<lastBuildDate>Fri, 30 Dec 2011 16:37:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Toolbar2000 and SpTBX for Delphi XE2</title>
		<link>http://www.armin-pfaeffle.de/blog/2011/11/toolbar2000-and-sptbx-for-delphi-xe2/</link>
		<comments>http://www.armin-pfaeffle.de/blog/2011/11/toolbar2000-and-sptbx-for-delphi-xe2/#comments</comments>
		<pubDate>Sat, 12 Nov 2011 20:37:36 +0000</pubDate>
		<dc:creator>armin</dc:creator>
				<category><![CDATA[Without Category]]></category>

		<guid isPermaLink="false">http://www.armin-pfaeffle.de/blog/?p=535</guid>
		<description><![CDATA[Because I&#8217;m an user of the Toolbar2000 and the SpTBX components for Delphi I had to update them in order to upgrade my projects to Delphi XE2. Without the changes I made it wasn&#8217;t possible to use and compile my projects. So I had to sit down a lil&#8217; bit of time and here it [...]]]></description>
			<content:encoded><![CDATA[<p>Because I&#8217;m an user of the <a href="http://www.jrsoftware.org/tb2k.php">Toolbar2000</a> and the <a href="http://www.silverpointdevelopment.com/sptbxlib/index.htm">SpTBX</a> components for Delphi I had to update them in order to upgrade my projects to Delphi XE2. Without the changes I made it wasn&#8217;t possible to use and compile my projects. So I had to sit down a lil&#8217; bit of time and here it is.</p>
<p><span id="more-535"></span></p>
<p><a title="Toolbar2000 with Delphi XE2 support" href="http://www.armin-pfaeffle.de/files/delphi/Toolbar2000-with-Delphi-XE2-support.7z">Download Toolbar 2000 with Delphi XE2 support.</a> (Size: 258KB)</p>
<p><a title="SpTBX 2.4.6 with Delphi XE2 support" href="http://www.armin-pfaeffle.de/files/delphi/SpTBX-2.4.6-with-Delphi-XE2-support.7z">Download SpTBX with Delphi XE2 support.</a> (Size: 270KB)</p>
<p>But be aware of that I haven&#8217;t tested both libraries under 64bit! I tried my projects and the SpTBX overview demo and all worked. So when you find a bug or a problem that is a result of my changes then let me know &#8212; else when you find a bug of the components itself then don&#8217;t let me know ;)</p>
<h3>Update &#8212; 14.11.2011</h3>
<p>Today I updated both component packages so that there are packages for Delphi 7 (D7)  to Delphi XE2 (D16). Now you can use the correct package for you Delphi version.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armin-pfaeffle.de/blog/2011/11/toolbar2000-and-sptbx-for-delphi-xe2/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Delphi XE: TTimeZone is not threadsafe</title>
		<link>http://www.armin-pfaeffle.de/blog/2011/07/delphi-xe-ttimezone-is-not-threadsafe/</link>
		<comments>http://www.armin-pfaeffle.de/blog/2011/07/delphi-xe-ttimezone-is-not-threadsafe/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 22:20:53 +0000</pubDate>
		<dc:creator>armin</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Delphi XE]]></category>
		<category><![CDATA[EDivByZero]]></category>
		<category><![CDATA[not threadsafe]]></category>
		<category><![CDATA[TTimeZone]]></category>

		<guid isPermaLink="false">http://www.armin-pfaeffle.de/blog/?p=516</guid>
		<description><![CDATA[This is only a very short post, but perhaps it can help some people out there :) When you want to use the abstract class TTimeZone respectively its derived class TLocalTimeZone then be aware of that it is NOT threadsafe – the two mentioned classes are defined in the unit DateUtils since Delphi XE and are [...]]]></description>
			<content:encoded><![CDATA[<p>This is only a very short post, but perhaps it can help some people out there :) When you want to use the abstract class <a href="http://docwiki.embarcadero.com/VCL/en/DateUtils.TTimeZone"><strong>TTimeZone</strong></a> respectively its derived class <strong>TLocalTimeZone</strong> then be aware of that it is <strong>NOT</strong> threadsafe – the two mentioned classes are defined in the unit <strong>DateUtils</strong> since Delphi XE and are really helpful.</p>
<p><span id="more-516"></span></p>
<p>Why I stumbled over this problem? At the moment I write a log component which feeds some modules that write each log message to a file, a database or some other target. Each log message has its own timestamp which tells the modules when it was created. One module just writes the messages to a text file – here an exmaple line:</p>
<pre>2011-03-14T16:06:58.769+01:00 Notice This is just an example.</pre>
<p>You can see that the time is in <a href="http://en.wikipedia.org/wiki/UTC">UTC</a>, so thats the place where I&#8217;m using the TTimeZone class. First I have not used a threadsafe call of TTimeZone methods. So after writing a test for my component, where I used three such text-file-modules, there <strong></strong>was sometimes a <strong>EDivByZero</strong> exception. I don&#8217;t know exactly where this exception occurs but I know that it comes from the TTimeZone class because I commented the corresponding code and then it worked correctly ;) With only one text-file-module it worked too, so it had to be problem with the two new threads. After making the code threadsafe this problem does not exist and more. So, be careful ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armin-pfaeffle.de/blog/2011/07/delphi-xe-ttimezone-is-not-threadsafe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing a Windows Batch file&#8230;</title>
		<link>http://www.armin-pfaeffle.de/blog/2011/05/writing-a-windows-batch-file/</link>
		<comments>http://www.armin-pfaeffle.de/blog/2011/05/writing-a-windows-batch-file/#comments</comments>
		<pubDate>Thu, 19 May 2011 20:52:41 +0000</pubDate>
		<dc:creator>armin</dc:creator>
				<category><![CDATA[Without Category]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[for loop]]></category>
		<category><![CDATA[increment counter in loop]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[mklink]]></category>

		<guid isPermaLink="false">http://www.armin-pfaeffle.de/blog/?p=506</guid>
		<description><![CDATA[Today I wanted to write a simple Windows Batch file which should create some symbolic links (command: mklink). I thought that something like this is an easy job because I know the basics about batch programming – but that was obviously a mistake&#8230; Perhaps this post can help somebody else :) The Task I have [...]]]></description>
			<content:encoded><![CDATA[<p>Today I wanted to write a simple Windows Batch file which should create some symbolic links (command: <em>mklink</em>). I thought that something like this is an easy job because I know the basics about batch programming – but that was obviously a mistake&#8230; Perhaps this post can help somebody else :)</p>
<p><span id="more-506"></span></p>
<h1>The Task</h1>
<p>I have a partition where all my projects are saved. Each project has it&#8217;s own subfolder and when the project is a web-project then there is a website-directory in it. Here a general example:</p>
<pre>projects (E:)
    \01_projectname
    \02_projectname
        \website
    \03_projectname
        \website
    \04_projectname
<em>
    (and so on...)</em>

    \xampp
        \htdocs</pre>
<p>Last but not least there is a XAMPP directory for the <a href="http://www.apachefriends.org/">XAMPP software</a> which includes the Apache webserver, PHP, MySQL and so on – and there is a <em>htdocs</em> directory which includes a subfolder for each website. After the batch file was executed the <em>htdocs</em> directory should include some more folders like this:</p>
<pre>\htdocs
    01_projectname        <em>// linked to E:\01_projectname\website</em>
    02_projectname        <em>// linked to E:\02_projectname\website
    (and so on...)</em></pre>
<p>I have to mention one thing: I don&#8217;t want to have more than one file for a simple task. Code and necessary information have to be put to one single file.</p>
<h1>The Script</h1>
<p>In the first moment this sound really easy but what if the drive letter changes after some time? Or if all project subfolders were moved to an additional subfolder? That&#8217;s why I don&#8217;t want to have an inflexible script. My first idea was to define an array and iterate over all elements but this failed – batch does not know anything about what an array is. You can only emulate one but that does not lead to a really nice code.</p>
<p>After some time I found the <em>list</em> feature but that&#8217;s not really that nice because actually you have to write all items in one single line and hey, who wants to do that? So there is the possibility to concatenate strings to create a string which is not that nice but does its job :) I think that this a lil&#8217; bit better then try emulate an array.</p>
<p>Now there was the second problem: I wanted to have a pair of information in the list, the source and destination directory. But the loop did not extract the pair and throwed an error – I used here a list in a list. The workaround: I prepared the list so that two lines represent the pair of information I need and with the help of a counter variable and the modulo function there should be no problem any more.</p>
<p>Well, why should it be that easy? Because the command line interpreter thinks of every content in the variables that it&#8217;s a string so you cannot increment a value via <code>+=1</code>. You have to use the option <code>/a</code> in combination with the <code>set</code> command – Nice <em>feature</em>, or not? ;) And what about the access to variables in a loop? You think you can do that them via <code>%variable_name%</code>? Ha, you are wrong ;) But now lets have a look at the current code:</p>
<pre>@echo off
setlocal ENABLEDELAYEDEXPANSION

set dirs=(

set dirs=%dirs% 01_projectname\redesign\website
set dirs=%dirs% 01_old

set dirs=%dirs% 01_projectname\website
set dirs=%dirs% 01

set dirs=%dirs% 02_projectname\website
set dirs=%dirs% 02

set dirs=%dirs%)

set project_dir=%~d0\
set htdocs_dir=%~d0\xampp\htdocs\

set /a counter=0
set dirA=
set dirB=
for %%d in %dirs% do (
	set /a m="!counter!%%2"
	if !m!==0 (
		set dirA=%%d
	) else (
		set dirB=%%d
		set tmpDir=!htdocs_dir!!dirB!
		if not exist !tmpDir! (
			echo Creating link !dirB!
			mklink /J !tmpDir! !project_dir!!dirA!
		) else (
			echo Link !dirB! already exists
		)
	)
	set /a counter+=1
)

pause</pre>
<p>Perhaps there are some ideas which can help others to write their batch scripts. If there are any questions about the task or the code please don&#8217;t be shy ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armin-pfaeffle.de/blog/2011/05/writing-a-windows-batch-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preinstalled software on new notebooks</title>
		<link>http://www.armin-pfaeffle.de/blog/2011/05/preinstalled-software-on-new-notebooks/</link>
		<comments>http://www.armin-pfaeffle.de/blog/2011/05/preinstalled-software-on-new-notebooks/#comments</comments>
		<pubDate>Thu, 12 May 2011 00:12:03 +0000</pubDate>
		<dc:creator>armin</dc:creator>
				<category><![CDATA[Without Category]]></category>

		<guid isPermaLink="false">http://www.armin-pfaeffle.de/blog/?p=497</guid>
		<description><![CDATA[I don&#8217;t know what other people think about that problem but I&#8217;m getting really angry right now, so I decided to write this post&#8230; Today I received a new notebook which I&#8217;m setting up at the moment. It&#8217;s from a popular producer with two letters in its name – but this problem is widely spread [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t know what other people think about that <em>problem</em> but I&#8217;m getting really angry right now, so I decided to write this post&#8230; Today I received a new notebook which I&#8217;m setting up at the moment. It&#8217;s from a popular producer with two letters in its name – but this problem is widely spread and applies to many producers. The notebook itself looks quite good and robust, it&#8217;s fast an the display is bright, the OS is Windows 7 64-bit. Well I should be totally happy because it&#8217;s an good machine, <strong>but</strong>&#8230;<span id="more-497"></span></p>
<p>&#8230; there is a <em>thing </em>– I would say that this is a <strong>problem</strong>! – that shows a trend which is really annoying, not only for experienced users: half an hour ago I started the notebook, entered some data because of the first start of Windows 7 and then I saw the catastrophe&#8230; Software, software, software, software&#8230; There would be no problem when this pre-installed software would be useful for most users. But why do I need a pre-installed browser toolbar? Or a link to eBay? Or a link to World of Warcraft? Or some kind of <em>app store for games</em>? Or&#8230;? Or&#8230;?</p>
<p>Because this list <strong>was</strong> really long – I uninstalled most things ;) – I&#8217;m not very glad about the situation that users are not able to decide which software should be installed on the computer and which not. I think that there is absolutely no problem to create an installer which asks you directly after the first start which software you want to have and which you don&#8217;t need. Then the systems won&#8217;t be so slow from the beginning and most users will save time because the time the mentioned installer needs to install the selected software will be probably less than the time you have to uninstall pre-installed software – and this @$#*% would not be so annoying any more ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armin-pfaeffle.de/blog/2011/05/preinstalled-software-on-new-notebooks/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Enumerations as class type in a generic class/record</title>
		<link>http://www.armin-pfaeffle.de/blog/2011/05/enumerations-as-class-type-in-a-generic-classrecord/</link>
		<comments>http://www.armin-pfaeffle.de/blog/2011/05/enumerations-as-class-type-in-a-generic-classrecord/#comments</comments>
		<pubDate>Thu, 05 May 2011 19:13:53 +0000</pubDate>
		<dc:creator>armin</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[class type]]></category>
		<category><![CDATA[compiler error]]></category>
		<category><![CDATA[delphi]]></category>
		<category><![CDATA[generics]]></category>

		<guid isPermaLink="false">http://www.armin-pfaeffle.de/blog/?p=481</guid>
		<description><![CDATA[Last night I had a really strange compiler error when I tried to translate my new array record. You have to know that I have rewritten the complete record and added generic support to it. Here is a lil&#8217; bit of the code which you need to unterstand why I got this error. TApArray&#60;T&#62; = [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I had a really strange compiler error when I tried to translate my new array record. You have to know that I have rewritten the complete record and added generic support to it. Here is a lil&#8217; bit of the code which you need to unterstand why I got this error.<span id="more-481"></span></p>
<pre>TApArray&lt;T&gt; = record
public type
  TArrayPosition = (apBegin, apEnd, apIndex);
private
  FData : TArray&lt;T&gt;;
public
  function TApArray&lt;T&gt;.Add(const Items: TArray&lt;T&gt;; const APosition: TArrayPosition = apEnd; const Index: Integer = -1): TArray&lt;T&gt;;
  { ... }
end;

{ ... }

function TApArray&lt;T&gt;.Add(const Items: TArray&lt;T&gt;; const APosition: TArrayPosition = apEnd; const Index: Integer = -1): TArray&lt;T&gt;;
var
  i : Integer;
  L : Integer;
begin
  if (APosition = apIndex) and ((Index &lt; 0) or (Index &gt; Length() - 1)) then
    raise Exception.Create('Index out of range.');

  { ... }
end;</pre>
<p>When I wanted to compile the source Delphi gave me the following error message and jumped to the end of the source file:</p>
<pre>[DCC Fatal Error] Project1.dpr(1): F2084 Internal Error: AV221E0FCF-R0000000C-0</pre>
<p>I wondered what that message wanted to tell me because I&#8217;ve never seen that before. So I asked the most-used web search engine because I had definitely no idea why I got this message – Delphi didn&#8217;t even jump to the position where the problem was. But there were no answers, not a single page mentions this error.</p>
<p>After some time I found the position of the error: the first usage of an element of ﻿ <code>TArrayPosition</code>. Well, when I commented the line with the <code>if</code> in the Add() method there was no error message any more. After some time of thinking about the problem it was clear: the problem was that I have declared the type <code>TArrayPosition</code> as a class type of <code>TApArray&lt;T&gt;</code>.</p>
<p>For every <em>instance</em> of <code>TApArray&lt;T&gt;</code> this would lead to a new class type <code>TArrayPosition</code> which itself would not result in a problem yet. But what about the usage of an element? And exactly here is the problem: in my example above the <code>apIndex</code> is not unique any more because there are more versions of <code>TArrayPosition</code> and so there are more versions of <code>apIndex</code>. The compiler can&#8217;t know to which type <code>apIndex</code> belongs to so it throws this error message.</p>
<p>Now, what are possible solutions for this problem? I think there are two ways how to fix it:</p>
<ol>
<li>Instead of using <code>apIndex</code> you can use <code>TApArray&lt;T&gt;.TArrayPosition.apIndex</code> which addresses a unique element of a specific instance of <code>TArrayPosition</code>. But you have to write more code than you really want to. Especially there is no reason to do this for a <strong>public</strong> class type. But when you want to use a (<strong>strict</strong>) <strong>private</strong> class type this is the solution you should choose.</li>
<li>The second solution is <strong>not</strong> to declare <code>TArrayPosition</code> as a class type but as a <em>normal</em> type like this:
<pre>TArrayPosition = (apBegin, apEnd, apIndex);
TApArray&lt;T&gt; = record
  { ... }
end;</pre>
<p>This should be the preferred version when you don&#8217;t need a private type.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.armin-pfaeffle.de/blog/2011/05/enumerations-as-class-type-in-a-generic-classrecord/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Theme, New Logo, Old Blog ;) – UPDATE</title>
		<link>http://www.armin-pfaeffle.de/blog/2010/11/new-theme-new-logo-old-blog/</link>
		<comments>http://www.armin-pfaeffle.de/blog/2010/11/new-theme-new-logo-old-blog/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 04:06:40 +0000</pubDate>
		<dc:creator>armin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[armin pfäffle blog]]></category>
		<category><![CDATA[new logo]]></category>
		<category><![CDATA[new theme]]></category>

		<guid isPermaLink="false">http://www.armin-pfaeffle.de/blog/?p=363</guid>
		<description><![CDATA[Hey everybody, today I searched for a new theme for my blog because I haven&#8217;t felt very pleasant with the old one. Now it looks more modern and a lil&#8217; bit that style I have in my head. But before I will create my own style I want to finish my own CMS so I [...]]]></description>
			<content:encoded><![CDATA[<p>Hey everybody,</p>
<p>today I searched for a new theme for my blog because I haven&#8217;t felt very pleasant with the old one. Now it looks more modern and a lil&#8217; bit that style I have in my head. But before I will create my own style I want to finish my own CMS so I can have a live demo for this system too – but that&#8217;s a lot of work until I reach this aim.</p>
<p><span id="more-363"></span></p>
<p>Beside the new them I created a second version of my logo but that&#8217;s now the final version! It&#8217;s not that bad but it&#8217;s not the <em>best</em> for me, there is always a better way. Perhaps you can send me a feedback about it – I would appreciate!</p>
<p>So, let&#8217;s go to bed now ;)</p>
<h3>Update</h3>
<p>Today I found <a href="http://themeshift.com/">ThemeShift</a> which offers very good themes for wordpress so I took the chance to update once more. That&#8217;s now a theme which will stay a while I think. The complete package is really good.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armin-pfaeffle.de/blog/2010/11/new-theme-new-logo-old-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update: Editor Theme for Delphi IDE (Version 7-XE2)</title>
		<link>http://www.armin-pfaeffle.de/blog/2010/11/editor-theme-for-delphi-ide-version-7-xe/</link>
		<comments>http://www.armin-pfaeffle.de/blog/2010/11/editor-theme-for-delphi-ide-version-7-xe/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 11:11:25 +0000</pubDate>
		<dc:creator>armin</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Usability/Interface]]></category>
		<category><![CDATA[dark]]></category>
		<category><![CDATA[delphi]]></category>
		<category><![CDATA[Editor Theme]]></category>
		<category><![CDATA[rad studio]]></category>

		<guid isPermaLink="false">http://www.armin-pfaeffle.de/blog/?p=153</guid>
		<description><![CDATA[Some days ago Embarcadero published the new version of the Delphi IDE, called XE2. Rolf Warnecke has already ported the theme to this version and here it is :) Today I recieved the new version of the my favorite IDE called Delphi XE. Some time ago I created a kind of theme for the its [...]]]></description>
			<content:encoded><![CDATA[<p>Some days ago Embarcadero published the new version of the Delphi IDE, called XE2. <a href="http://www.delphipraxis.net/members/10237-rwarnecke.html">Rolf Warnecke</a> has already ported the theme to this version and here it is :)</p>
<p>Today I recieved the new version of the my favorite IDE called <a href="http://www.embarcadero.com/rad-studio-xe-preview"><em>Delphi XE</em></a>. Some time ago I created a kind of theme for the its editor so it looks a lil&#8217; bit nicer (for me ;) ). Now I updated the theme so it supports the new version too. You can find my old (german) post below.</p>
<p>Download: <a href="http://www.armin-pfaeffle.de/files/delphi/delphi-editor-theme-1.3.rar">.rar</a> (128 KB), <a href="http://www.armin-pfaeffle.de/files/delphi/delphi-editor-theme-1.3.7z">.7z</a> (112KB)</p>
<p><span id="more-153"></span></p>
<h3>Preview</h3>

<a href='http://www.armin-pfaeffle.de/blog/2010/11/editor-theme-for-delphi-ide-version-7-xe/demonstration/' title='Theme in Action.'><img width="150" height="150" src="http://www.armin-pfaeffle.de/blog/wp-content/uploads/2010/06/demonstration-150x150.png" class="attachment-thumbnail" alt="Theme in Action" title="Theme in Action." /></a>
<a href='http://www.armin-pfaeffle.de/blog/2010/11/editor-theme-for-delphi-ide-version-7-xe/options-dialog/' title='Original IDE options dialog mit dark theme.'><img width="150" height="150" src="http://www.armin-pfaeffle.de/blog/wp-content/uploads/2010/06/options-dialog-150x150.png" class="attachment-thumbnail" alt="Options dialog" title="Original IDE options dialog mit dark theme." /></a>

<h3>Changelog</h3>
<p>07.09.2011</p>
<ul>
<li>Added support for Delphi XE2 by <a href="http://www.delphipraxis.net/members/10237-rwarnecke.html">Rolf Warnecke</a>.</li>
</ul>
<p>11.11.2010</p>
<ul>
<li>Added support for Delphi XE.</li>
</ul>
<p>08.07.2010</p>
<ul>
<li>Added support for Delphi 7, 2005, 2006 and 2007.</li>
<li>Fixed bug which overwrite syntax highlighting in current line so text was complete white.</li>
</ul>
<p>07.07.2010</p>
<ul>
<li>First version for Delphi 2009 and 2010</li>
<li>Added default themes for reset (which could also be managed via IDE options dialog).</li>
</ul>
<h3>Old German Text</h3>
<p>Ich bin neulich eher durch Zufall auf ein paar Editor-Themes für Netbeans und andere Editoren/IDEs gestoßen und hab mich gewundert, dass es sowas für die Delphi IDE nicht gibt. Ich habe mich heute daher mal daran gemacht sowas für die Delphi IDE der Version <strong>2010</strong> zu machen. <span style="color: #ff0000;">In der Zwischenzeit ist das Theme sogar für die Delphi Version 7 bis 2010 verfügbar. </span>Man kann sowas zwar über den Options-Editor der IDE tätigen, allerdings ist das sehr unbequem und umständlich, wie ich finde.</p>
<p>Ein alternativer Weg führt über die Windows-Registry, da man da ein wenig mehr Übersicht hat und schneller einzelne Punkt ändern kann. Was mich dabei aber immer noch gestört hat, ist diese blöde Farbangabe, wie man diese in Delphi auch tätigen muss. Wenn ich mal viel Zeit und Muse dann schreibe ich mal ein Programm über welches man diese Sachen ändern kann.</p>
<p>Hier findet ihr jedenfalls mein erstes Theme – in so fern man das so nennen will.</p>
<p>Hier noch der Download &#8212; in jedem Archiv befinden sich die passenden Registry-Einträge für Version 7 bis 2010:</p>
<p><em><span style="color: #ff0000;">Download, Preview und Changelog siehe oben.</span></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.armin-pfaeffle.de/blog/2010/11/editor-theme-for-delphi-ide-version-7-xe/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How to test web applications without having all mobile devices?</title>
		<link>http://www.armin-pfaeffle.de/blog/2010/11/how-to-test-web-applications-without-having-all-mobile-devices/</link>
		<comments>http://www.armin-pfaeffle.de/blog/2010/11/how-to-test-web-applications-without-having-all-mobile-devices/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 03:16:40 +0000</pubDate>
		<dc:creator>armin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Browser Simulator]]></category>
		<category><![CDATA[Mobile Browser]]></category>
		<category><![CDATA[Mobile Device]]></category>
		<category><![CDATA[Test Web Application]]></category>

		<guid isPermaLink="false">http://www.armin-pfaeffle.de/blog/?p=284</guid>
		<description><![CDATA[Last week I worked on my jQuery plugin apOverlay which will be a part for my apWindow plugin hat gets published in the next two or three weeks. In all modern browsers there are no problems at all – ha, that&#8217;s wrong! This is only the half the truth because this statement counts only in [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I worked on my jQuery plugin <a href="http://www.armin-pfaeffle.de/labs/ap-overlay/">apOverlay</a> which will be a part for my apWindow plugin hat gets published in the next two or three weeks. In all modern browsers there are no problems at all – ha, that&#8217;s wrong! This is only the half the truth because this statement counts only in <em>normal </em>browser, not completely on mobile devices and its default browsers. But how to test if the implementation is correct? No one wants to buy each phone, PDA, tablet&#8230; Well, there is the way to look for simulators but that&#8217;s not so easy sometimes :)</p>
<p><span id="more-284"></span></p>
<p>Most simulators I found are no real simulators. In most cases they only restrict only the viewport to the resolution of the mobile device, like &#8220;<a href="http://www.ipad-emulator.com/">iPad Emulator</a>&#8220;, a very bad example I think. Furthermore there are some iPhone simulators that use the normal WebKit engine of the installed Safari and display the <code>position: fixed</code> CSS style correctly, <a href="http://blog.mspace.fm/2009/10/01/iphone-mobile-safari-css-position-fixed/">what&#8217;s not the case on an iPhones</a>. And there are a lot&#8217;s of more problems I found in the last two nights&#8230; That&#8217;s why I started this post. Here you can find a list of hints and links how to test your web application on a special mobile browser without having the device itself.</p>
<h3>Opera</h3>
<p>I have never seen any mobile device with the Opera Mobile browser as default. It&#8217;s a general browser for most systems. You can download the <a href="http://www.opera.com/developer/tools/">Opera Mobile emulator</a> for Windows, Mac or Linux. With this software you can test the newest mobile browser from Opera on you local computer. There is also a option (Settings &gt; User Agent) to change the user agent to the most common devices: default (don&#8217;t know what is meant here ;) ), S60, Windows Mobile, Android.</p>
<h3>iPhone</h3>
<p>The default browser on the iPhone is based on WebKit. So in most cases it&#8217;s enough to test the web application in Safari. But there are some special cases where it&#8217;s necessary to test in real iPhone environment. Therefore Apple offers the <a href="http://developer.apple.com/devcenter/ios/index.action">iOS SDK</a> which includes a iPhone simulator.</p>
<p>For all those who have no Mac they can theoretically use <a href="http://www.ihackintosh.com/2009/12/install-snow-leopard-in-vmware-7-windows-edition/">VMWare</a> or <a href="http://lifehacker.com/5583650/run-mac-os-x-in-virtualbox-on-windows">VirtualBox</a> to run Mac OS X under Windows or Linux.</p>
<h3><em>To be completed/tested&#8230;</em></h3>
<ul>
<li>Symbian (<a href="http://www.forum.nokia.com/info/sw.nokia.com/id/db2c69a2-4066-46ff-81c4-caac8872a7c5/NMB40_install.zip.html">#1</a>, <a href="http://discussion.forum.nokia.com/forum/showthread.php?205453-Need-browser-emulator">#2</a>)</li>
<li>Apple iPhone (iOS SDK: iPhone Simulator, Mac only, VMWare solution)</li>
<li>Android (<a href="http://developer.android.com/guide/developing/tools/emulator.html">#1</a>)</li>
<li>Windows Phone 7 (<a href="http://www.engadget.com/2010/03/20/taking-the-windows-phone-7-series-emulator-for-a-test-drive-vid/">#1</a>, <a href="http://create.msdn.com/en-us/resources/downloads">#2</a>)</li>
<li>BlackBerry</li>
<li><a href="http://www.skyfire.com/">Sykfire Browser</a></li>
<li><a href="http://boltbrowser.com/dnld.html">BOLT Browser</a></li>
<li>HTC</li>
<li>Samsung</li>
</ul>
<p>Similar post on <a href="http://mobiforge.com/emulators/page/mobile-emulators">mobiforge.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armin-pfaeffle.de/blog/2010/11/how-to-test-web-applications-without-having-all-mobile-devices/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jQuery Plugins for all</title>
		<link>http://www.armin-pfaeffle.de/blog/2010/11/jquery-plugins-for-all/</link>
		<comments>http://www.armin-pfaeffle.de/blog/2010/11/jquery-plugins-for-all/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 02:38:53 +0000</pubDate>
		<dc:creator>armin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[apOverlay]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://www.armin-pfaeffle.de/blog/?p=268</guid>
		<description><![CDATA[I added a new section right now where I publish my jQuery plugins. At the moment there is only the apOverlay plugin. But in the next few month there come some more – I have to rewrite some plugins for general usage first ;) All plugins use (and will use) the widget factory from jQuery [...]]]></description>
			<content:encoded><![CDATA[<p>I added a <a href="http://www.armin-pfaeffle.de/blog/jquery-plugins/">new section</a> right now where I publish my jQuery plugins. At the moment there is only the <a href="http://www.armin-pfaeffle.de/blog/jquery-plugins/apoverlay/">apOverlay</a> plugin. But in the next few month there come some more – I have to rewrite some plugins for general usage first ;)</p>
<p><span id="more-268"></span></p>
<p>All plugins use (and will use) the <a href="http://docs.jquery.com/UI_Developer_Guide">widget factory</a> from jQuery UI so they are easy to use in a the common jQuery way. Unfortunatly it is necessary to include the jQuery UI which at first sight means that more JavaScript is loaded and executed. But this offers advantages to the programmer and the user (more <a href="http://jqueryui.com/demos/">ui plugins</a> and effects for example) particularly this library is needed in many other cases too.</p>
<p>Well, let&#8217;s go back to work&#8230; ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armin-pfaeffle.de/blog/2010/11/jquery-plugins-for-all/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Let&#8217;s talk English&#8230;</title>
		<link>http://www.armin-pfaeffle.de/blog/2010/11/lets-talk-english/</link>
		<comments>http://www.armin-pfaeffle.de/blog/2010/11/lets-talk-english/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 07:20:22 +0000</pubDate>
		<dc:creator>armin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[English Posts]]></category>
		<category><![CDATA[Relaunch]]></category>

		<guid isPermaLink="false">http://www.armin-pfaeffle.de/blog/?p=306</guid>
		<description><![CDATA[Deutsch So, ab sofort erscheinen alle wichtigen Beiträge in meinem Post auf englisch, da ich somit eine wesentlich größere Anzahl an Lesern ansprechen kann. Ich will doch hoffen, dass die Qualität der Posts nicht darunter leiden wird ;) Ebenso habe ich schon vor ein paar Tagen das Design der Website umgestellt und ein paar Anpassungen [...]]]></description>
			<content:encoded><![CDATA[<h3>Deutsch</h3>
<p>So, ab sofort erscheinen alle wichtigen Beiträge in meinem Post auf englisch, da ich somit eine wesentlich größere Anzahl an Lesern ansprechen kann. Ich will doch hoffen, dass die Qualität der Posts nicht darunter leiden wird ;)</p>
<p>Ebenso habe ich schon vor ein paar Tagen das Design der Website umgestellt und ein paar Anpassungen daran vorgenommen, wobei ich sagen muss, dass ich immer noch nicht zufrieden bin damit – mal sehen, was die nächsten paar Wochen bringen&#8230;</p>
<h3>English</h3>
<p>Well, in future I will write all my posts in english so that I can reach more readers. I hope that because of this change my posts won&#8217;t suffer quality ;)</p>
<p>Furthermore some days ago I changed the theme of my blog to <a href="http://andreamignolo.com/oulipo/">Oulipo</a> and modified some things. But I am not that glad about it – let&#8217;s see what the future brings&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armin-pfaeffle.de/blog/2010/11/lets-talk-english/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

