<?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>devbar.de</title>
	<atom:link href="http://www.devbar.de/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devbar.de</link>
	<description>just code chunks</description>
	<lastBuildDate>Sat, 07 Jan 2012 19:50:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JavaScript: Oder wie ich lernte die Bombe zu lieben</title>
		<link>http://www.devbar.de/index.php/2012/01/javascript-oder-wie-ich-lernte-die-bombe-zu-lieben/</link>
		<comments>http://www.devbar.de/index.php/2012/01/javascript-oder-wie-ich-lernte-die-bombe-zu-lieben/#comments</comments>
		<pubDate>Sat, 07 Jan 2012 19:38:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Mobile Apps]]></category>

		<guid isPermaLink="false">http://www.devbar.de/index.php/2012/01/javascript-oder-wie-ich-lernte-die-bombe-zu-lieben/</guid>
		<description><![CDATA[Für mich ist JavaScript ein Phänomen, dass ich nur mit Staunen beobachten kann. Jahrzehnte habe ich gedacht, dass gute Programmiersprachen nach einem sauberen objektorientierten Konzept arbeiten. Ich dachte Programmiersprachen müssen typsicher sein! Ich dachte JavaScript ist gar keine Programmiersprache sondern bestenfalls Browserbeiwerk für verspielte Webentwickler.
Jetzt hab’ ich mir allerdings in den Kopf gesetzt, dass meine [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.devbar.de/wp-content/uploads/2012/01/dfe1042cccb6736edb9ff7996b0ee09a_g.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 7px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="dfe1042cccb6736edb9ff7996b0ee09a_g" border="0" alt="dfe1042cccb6736edb9ff7996b0ee09a_g" align="right" src="http://www.devbar.de/wp-content/uploads/2012/01/dfe1042cccb6736edb9ff7996b0ee09a_g_thumb.jpg" width="113" height="164" /></a>Für mich ist JavaScript ein Phänomen, dass ich nur mit Staunen beobachten kann. Jahrzehnte habe ich gedacht, dass gute Programmiersprachen nach einem sauberen objektorientierten Konzept arbeiten. Ich dachte Programmiersprachen müssen typsicher sein! Ich dachte JavaScript ist gar keine Programmiersprache sondern bestenfalls Browserbeiwerk für verspielte Webentwickler.
<p align="left">Jetzt hab’ ich mir allerdings in den Kopf gesetzt, dass meine neuen Apps alle in JavaScript &amp; HTML5 programmiert sein müssen. Vor allem reizt mich die einfache Portierbarkeit zwischen verschiedenen Tablet-Betriebssystemen.</p>
<p align="left">Wie man objektorientiert JavaScript programmiert und bekannte Entwurfsmuster einsetzen kann <strong>ohne den Verstand zu verlieren</strong> hat mir dieses Buch gezeigt <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="http://www.devbar.de/wp-content/uploads/2012/01/wlEmoticon-smile.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devbar.de/index.php/2012/01/javascript-oder-wie-ich-lernte-die-bombe-zu-lieben/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Icons f&#252;r meine Apps</title>
		<link>http://www.devbar.de/index.php/2012/01/icons-fr-meine-apps/</link>
		<comments>http://www.devbar.de/index.php/2012/01/icons-fr-meine-apps/#comments</comments>
		<pubDate>Sat, 07 Jan 2012 18:49:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Icons]]></category>
		<category><![CDATA[Programmieren]]></category>

		<guid isPermaLink="false">http://www.devbar.de/?p=735</guid>
		<description><![CDATA[Wer seiner Anwendung mit hübschen Icons und Grafiken den letzten Schliff verleihen will, wird im Internet mit Sicherheit fündig. Der Haken ist, dass Icon-Pakete oft teuer sind oder nur unter bestimmten Auflagen genutzt werden können. Manchmal ist die Verwendung auch gar nicht weiter geregelt und man spielt mit dem Feuer.
Das Projekt www.iconfinder.com versucht den Dschungel [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.devbar.de/wp-content/uploads/2012/01/iconfinder_logo.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="iconfinder_logo" border="0" alt="iconfinder_logo" align="right" src="http://www.devbar.de/wp-content/uploads/2012/01/iconfinder_logo_thumb.png" width="240" height="104" /></a>Wer seiner Anwendung mit hübschen Icons und Grafiken den letzten Schliff verleihen will, wird im Internet mit Sicherheit fündig. Der Haken ist, dass Icon-Pakete oft teuer sind oder nur unter bestimmten Auflagen genutzt werden können. Manchmal ist die Verwendung auch gar nicht weiter geregelt und man spielt mit dem Feuer.</p>
<p>Das Projekt <a href="http://www.iconfinder.com">www.iconfinder.com</a> versucht den Dschungel zu lichten. Hier lassen sich gezielt die richtigen Grafiken suchen und die Ergebnisse nach kostenlosen/kostenpflichtigen Angeboten filtern.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devbar.de/index.php/2012/01/icons-fr-meine-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drag &amp; Drop from Windows Explorer to PowerBuilder application</title>
		<link>http://www.devbar.de/index.php/2012/01/drag-drop-from-windows-explorer-to-powerbuilder-application/</link>
		<comments>http://www.devbar.de/index.php/2012/01/drag-drop-from-windows-explorer-to-powerbuilder-application/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 13:16:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Powerbuilder]]></category>

		<guid isPermaLink="false">http://www.devbar.de/index.php/2012/01/drag-drop-from-windows-explorer-to-powerbuilder-application/</guid>
		<description><![CDATA[
It isn’t a big thing but user-friendly to let your user drop some files in your PowerBuilder application. Maybe to import, merge, strip, archive, …. you name it 
  
1. Insert the external functions to your window object.
function ulong DragQueryFileW( ulong hDrop, ulong iFile, ref string LPTSTR, ulong cb ) library 'shell32.dll'
subroutine DragAcceptFiles(ulong h, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.devbar.de/wp-content/uploads/2011/08/gb.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 6px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="gb" border="0" alt="gb" align="left" src="http://www.devbar.de/wp-content/uploads/2011/08/gb_thumb.png" width="16" height="11" /></a></p>
<p>It isn’t a big thing but user-friendly to let your user drop some files in your PowerBuilder application. Maybe to import, merge, strip, archive, …. you name it <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Zwinkerndes Smiley" src="http://www.devbar.de/wp-content/uploads/2012/01/wlEmoticon-winkingsmile1.png" /></p>
<p>  <span id="more-731"></span>
<p>1. Insert the external functions to your window object.</p>
<pre class="brush: plain;">function ulong DragQueryFileW( ulong hDrop, ulong iFile, ref string LPTSTR, ulong cb ) library 'shell32.dll'
subroutine DragAcceptFiles(ulong h, boolean b ) library 'shell32.dll' </pre>
<p>2. Insert a custom event with ID “pbm_dropfiles” to you window object and insert some code like this.</p>
<pre class="brush: plain;">string     ls_filename
ulong     ll_fileCount
ulong     ll_index
long        ll_row

ll_fileCount = DragQueryFileW(Message.WordParm,-1,ls_filename,0)
ls_filename = space(255)
for ll_index = 1 to ll_fileCount
    DragQueryFileW(Message.WordParm,ll_index - 1,ls_filename,255)
    ll_row = dw_files.insertRow ( 0 )
    dw_files.setItem ( ll_row, &quot;filename&quot;, ls_filename);
next </pre>
<p>&#160;</p>
<p>3. Make sure you enabled and disabled Drop behavior in open and close event of the window object.</p>
<pre class="brush: plain;">DragAcceptFiles(handle(this),true) //open</pre>
<pre class="brush: plain;">DragAcceptFiles(handle(this),false) //close</pre>
<p>That’s it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devbar.de/index.php/2012/01/drag-drop-from-windows-explorer-to-powerbuilder-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PowerBuilder in Obsidian Theme</title>
		<link>http://www.devbar.de/index.php/2012/01/powerbuilder-in-obsidian-theme/</link>
		<comments>http://www.devbar.de/index.php/2012/01/powerbuilder-in-obsidian-theme/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 15:14:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[4fun]]></category>
		<category><![CDATA[Powerbuilder]]></category>
		<category><![CDATA[Themes]]></category>

		<guid isPermaLink="false">http://www.devbar.de/index.php/2012/01/powerbuilder-in-obsidian-theme/</guid>
		<description><![CDATA[
If you like it 
  
Insert following lines in your pb.ini to get this look.
[PB]
...
EditorColor0=31777504 20197673
EditorColor1=65280 20197673
EditorColor2=65280 20197673
EditorColor3=31777504 20197673
EditorColor4=31777504 20197673
EditorColor5=31777504 20197673
EditorColor6=31777504 20197673
EditorColor7=32768 1073741824
EditorColor8=31777504 20197673
EditorColor9=255 20197673
EditorColor10=31777504 20197673
EditorColor11=255 20197673
EditorColor12=8421504 20197673
EditorColor13=255 20197673
EditorColor14=16776960 20197673
...

[colors]
color1=15000288
color2=16777215
color3=3420457
color4=16777215
color5=16777215
color6=16777215
color7=16777215
color8=16777215
color9=16777215
color10=16777215
color11=16777215
color12=16777215
color13=16777215
color14=16777215
color15=16777215
color16=16777215
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.devbar.de/wp-content/uploads/2012/01/pb.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="pb" border="0" alt="pb" src="http://www.devbar.de/wp-content/uploads/2012/01/pb_thumb.png" width="445" height="392" /></a></p>
<p>If you like it <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Zwinkerndes Smiley" src="http://www.devbar.de/wp-content/uploads/2012/01/wlEmoticon-winkingsmile.png" /></p>
<p>  <span id="more-729"></span>
<p>Insert following lines in your pb.ini to get this look.</p>
<pre class="brush: plain;">[PB]
...
EditorColor0=31777504 20197673
EditorColor1=65280 20197673
EditorColor2=65280 20197673
EditorColor3=31777504 20197673
EditorColor4=31777504 20197673
EditorColor5=31777504 20197673
EditorColor6=31777504 20197673
EditorColor7=32768 1073741824
EditorColor8=31777504 20197673
EditorColor9=255 20197673
EditorColor10=31777504 20197673
EditorColor11=255 20197673
EditorColor12=8421504 20197673
EditorColor13=255 20197673
EditorColor14=16776960 20197673
...

[colors]
color1=15000288
color2=16777215
color3=3420457
color4=16777215
color5=16777215
color6=16777215
color7=16777215
color8=16777215
color9=16777215
color10=16777215
color11=16777215
color12=16777215
color13=16777215
color14=16777215
color15=16777215
color16=16777215</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.devbar.de/index.php/2012/01/powerbuilder-in-obsidian-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PB .NET Add-In: Generating Structures and NonVisualObjects from Datawindow</title>
		<link>http://www.devbar.de/index.php/2011/08/generating-structures-and-nonvisuals-from-datawindow-with-pb-net-add-in/</link>
		<comments>http://www.devbar.de/index.php/2011/08/generating-structures-and-nonvisuals-from-datawindow-with-pb-net-add-in/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 19:19:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Powerbuilder]]></category>
		<category><![CDATA[Add-In]]></category>
		<category><![CDATA[Datawindow]]></category>
		<category><![CDATA[Dw2Struct]]></category>
		<category><![CDATA[Nonvisual]]></category>
		<category><![CDATA[Structure]]></category>

		<guid isPermaLink="false">http://www.devbar.de/index.php/2011/08/generating-structures-and-nonvisuals-from-datawindow-with-pb-net-add-in/</guid>
		<description><![CDATA[Don’t try to adjust your screen if you can’t read anymore what’s written in my blog. Yes it’s true! This is the first experimental English post here. This is for the English speaking Powerbuilder community I want to achieve.
So back to topic: What is this post about? Inspired by a small discussion in the Powerbuilder [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.devbar.de/wp-content/uploads/2011/08/gb.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 6px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="gb" border="0" alt="gb" align="left" src="http://www.devbar.de/wp-content/uploads/2011/08/gb_thumb.png" width="16" height="11" /></a>Don’t try to adjust your screen if you can’t read anymore what’s written in my blog. Yes it’s true! This is the first experimental English post here. This is for the English speaking Powerbuilder community I want to achieve.</p>
<p>So back to topic: What is this post about? Inspired by a small discussion in the Powerbuilder 12.5 beta newsgroup I created a small plugin to easily create some Structures and NonVisualObjects from a Datawindow.</p>
<p>  <span id="more-721"></span>
<p><a href="http://www.devbar.de/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 16px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://www.devbar.de/wp-content/uploads/2011/08/image_thumb.png" width="183" height="158" /></a>This is very useful if you want to transfer data from or to a Datawindow by dot notation. If you have a lot of fields it can be a very painful job to create the Nonvisual and enter the variables in the correct order. Because of this Bruce Armstrong created a small tool called “Dw2Struct” that can do this for you in PB Classic. What I do is to extend the tool for NonVisuals and build a add-in around it.</p>
<p>So take a look at the code and the binaries. The Installation is easy. Just put it in a directory where Powerbuilder 12.5 .NET looks for add-ins. You can see what paths are observed by going to Extras-&gt;Options-&gt;Add-In. If you are not sure where to copy it, enter the path where you unpack the downloaded files. After restart the IDEs shows you two new entries in context menu of Datawindow. That’s it. </p>
<p>Have fun!</p>
<p><strong>Links:</strong></p>
<ul>
<li>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:F60BB8FA-6F02-4999-8F5E-9DD4E92C4DA7:e2e5e9cb-a8ba-4a47-9ccc-140ede6de99c" class="wlWriterEditableSmartContent">
<div><a href="http://www.devbar.de/wp-content/uploads/2011/08/PB-Addin-Dw2Struct.zip" target="_self">PB-Addin-Dw2Struct.zip</a></div>
</div>
</li>
<li><a href="https://github.com/devbar/PB-Addin-Dw2Struct">GitHub</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.devbar.de/index.php/2011/08/generating-structures-and-nonvisuals-from-datawindow-with-pb-net-add-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aero Glass in PowerBuilder nutzen</title>
		<link>http://www.devbar.de/index.php/2011/07/aero-glass-in-powerbuilder-nutzen/</link>
		<comments>http://www.devbar.de/index.php/2011/07/aero-glass-in-powerbuilder-nutzen/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 21:42:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Powerbuilder]]></category>
		<category><![CDATA[Aero]]></category>

		<guid isPermaLink="false">http://www.devbar.de/index.php/2011/07/aero-glass-in-powerbuilder-nutzen/</guid>
		<description><![CDATA[Vor einiger Zeit hatte ich ja bereits gebloggt wie man in C# transparente Fenster erstellt und damit ganz nette Effekte erzielen kann. Die Funktionalität lässt sich auch aus PowerBuilder nutzen. Ich habe hier mal ein kleines Beispiel gebastelt.
Links:
GitHub

PBGlass.zip

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.devbar.de/wp-content/uploads/2011/07/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 4px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://www.devbar.de/wp-content/uploads/2011/07/image_thumb1.png" width="175" height="106" /></a>Vor einiger Zeit hatte ich ja bereits gebloggt <a href="http://www.devbar.de/index.php/2010/05/transparente-fenster-in-c/">wie man in C# transparente Fenster erstellt</a> und damit ganz nette Effekte erzielen kann. Die Funktionalität lässt sich auch aus PowerBuilder nutzen. Ich habe hier mal ein kleines Beispiel gebastelt.</p>
<p><strong>Links:</strong></p>
<p><a href="https://github.com/devbar/PB-Aero-Glass">GitHub</a></p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:F60BB8FA-6F02-4999-8F5E-9DD4E92C4DA7:63a556c7-5329-4420-af46-9d314133d49d" class="wlWriterEditableSmartContent">
<div><a href="http://www.devbar.de/wp-content/uploads/2011/07/PBGlass.zip" target="_self">PBGlass.zip</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.devbar.de/index.php/2011/07/aero-glass-in-powerbuilder-nutzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Watermarks in PowerBuilder nutzen</title>
		<link>http://www.devbar.de/index.php/2011/07/watermarks-in-powerbuilder-nutzen/</link>
		<comments>http://www.devbar.de/index.php/2011/07/watermarks-in-powerbuilder-nutzen/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 20:07:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Powerbuilder]]></category>
		<category><![CDATA[cue banners]]></category>
		<category><![CDATA[Watermarks]]></category>

		<guid isPermaLink="false">http://www.devbar.de/index.php/2011/07/watermarks-in-powerbuilder-nutzen/</guid>
		<description><![CDATA[Wer in Win32-Anwendungen Watermarks nutzen möchte, kann sich einfach der Windows-API bedienen. Wenn man das Feature in PowerBuilder DataWindows nutzen möchte, muss man allerdings ein wenig basteln. 
Links:
GitHub

PB-Watermark.zip

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.devbar.de/wp-content/uploads/2011/07/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 2px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://www.devbar.de/wp-content/uploads/2011/07/image_thumb.png" width="168" height="169" /></a>Wer in Win32-Anwendungen Watermarks nutzen möchte, kann sich einfach der Windows-API bedienen. Wenn man das Feature in PowerBuilder DataWindows nutzen möchte, muss man allerdings ein wenig basteln. <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="http://www.devbar.de/wp-content/uploads/2011/07/wlEmoticon-smile.png" /></p>
<p><strong>Links:</strong></p>
<p><font color="#333333"><a href="https://github.com/devbar/PB-Watermark">GitHub</a></font></p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:F60BB8FA-6F02-4999-8F5E-9DD4E92C4DA7:4681f1a7-3020-4c14-9f40-4f4e70b93bb3" class="wlWriterEditableSmartContent">
<div><a href="http://www.devbar.de/wp-content/uploads/2011/07/PB-Watermark1.zip" target="_self">PB-Watermark.zip</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.devbar.de/index.php/2011/07/watermarks-in-powerbuilder-nutzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlashDevelop f&#252;r Blackberry Playbook fit machen</title>
		<link>http://www.devbar.de/index.php/2011/04/flashdevelop-fr-blackberry-playbook-fit-machen/</link>
		<comments>http://www.devbar.de/index.php/2011/04/flashdevelop-fr-blackberry-playbook-fit-machen/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 21:00:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FlashDevelop]]></category>
		<category><![CDATA[Macros]]></category>
		<category><![CDATA[Playbook]]></category>
		<category><![CDATA[Remote Debugging]]></category>

		<guid isPermaLink="false">http://www.devbar.de/index.php/2011/04/flashdevelop-fr-blackberry-playbook-fit-machen/</guid>
		<description><![CDATA[Wer die kostenlose IDE FlashDevelop zum Entwickeln von Playbook Apps nutzt, muss im Vergleich zum kommerziellen FlashBuilder einige Mankos hinnehmen. Allerdings lässt sich mit ein paar Zeilen Script und ein bisschen Fantasie z.B. das Signieren oder Remote-Debuggen bequem in die IDE integrieren.
  
Macros
FlashDevelop bietet unter anderem die Möglichkeit die IDE mit Makros verschiedener Art [...]]]></description>
			<content:encoded><![CDATA[<p align="left">Wer die kostenlose IDE FlashDevelop zum Entwickeln von Playbook Apps nutzt, muss im Vergleich zum kommerziellen FlashBuilder einige Mankos hinnehmen. Allerdings lässt sich mit ein paar Zeilen Script und ein <a href="http://www.devbar.de/wp-content/uploads/2011/04/blackberry-playbook-fd.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="blackberry-playbook-fd" border="0" alt="blackberry-playbook-fd" align="right" src="http://www.devbar.de/wp-content/uploads/2011/04/blackberry-playbook-fd_thumb.png" width="240" height="139" /></a>bisschen Fantasie z.B. das Signieren oder Remote-Debuggen bequem in die IDE integrieren.</p>
<p>  <span id="more-695"></span><br />
<h4>Macros</h4>
<p>FlashDevelop bietet unter anderem die Möglichkeit die IDE mit Makros verschiedener Art anzupassen. Eine Variante ist dabei <a href="http://www.csscript.net/">CS-Script.</a> Mit den Makros möchte ich mir vier Buttons in die IDE aufnehmen: Simulator, Auf Simulator ausführen, Auf Simulator Debuggen(remote) und Signieren.</p>
<p>Hier ist mein Script:</p>
<pre class="brush: csharp;">using System;
using System.Drawing;
using System.Windows.Forms;
using FlashDevelop;
using PluginCore;
using System.Diagnostics;

public class FDScript
{
    public const string SETTINGS_PATH = @&quot;C:\Users\Devbar\AppData\Local\FlashDevelop\Scripts&quot;;
    public const string VM_PLAYER_PATH = @&quot;C:\Program Files (x86)\VMware\VMware Player\vmplayer.exe&quot;;
    public const string VM_PATH = &quot;\&quot;C:\\Users\\Devbar\\Documents\\Virtual Machines\\PB_094\\PB_094.vmx\&quot;&quot;;
    public const string VM_IP = &quot;192.568.426.431&quot;;
    public const string VM_DEBUG_IP = &quot;192.568.30.423&quot;;
    public const string P12_CERT = &quot;D:\\SDK\\RimKeys\\rimkey_tablet.p12&quot;;

    /**
    * Entry point of the script.
    */
    public static void Execute()
    {
        // Get icon for menu items
        Image imgVmImage = Image.FromFile(SETTINGS_PATH + &quot;\\vmware.png&quot;);
        Image imgTabletRun = Image.FromFile(SETTINGS_PATH + &quot;\\tablet_run.png&quot;);
        Image imgTabletDebug = Image.FromFile(SETTINGS_PATH + &quot;\\tablet_debug.png&quot;);
        Image imgTabletSign = Image.FromFile(SETTINGS_PATH + &quot;\\tablet_sign.png&quot;);

        // Add a custom button to the toolstrip
        ToolStrip toolstrip = Globals.MainForm.ToolStrip;
        toolstrip.Items.Add(new ToolStripButton(&quot;&quot;, imgVmImage, OnVmWareClick));
        toolstrip.Items.Add(new ToolStripButton(&quot;&quot;, imgTabletRun, OnTabletRunClick));
        toolstrip.Items.Add(new ToolStripButton(&quot;&quot;, imgTabletDebug, OnTabletDebugClick));
        toolstrip.Items.Add(new ToolStripButton(&quot;&quot;, imgTabletSign, OnTabletSignClick));
    }

    /**
    * run vmware with the simulator
    */
    public static void OnVmWareClick(Object sender, EventArgs e)
    {
        Process.Start(VM_PLAYER_PATH, VM_PATH);
    }

    /**
    * run without debugger
    */
    public static void OnTabletRunClick(Object sender, EventArgs e)
    {
        Run(false);
    }

    /**
    * run with debugger
    */
    public static void OnTabletDebugClick(Object sender, EventArgs e)
    {
        Run(true);
    }

    /**
    * Handles the click event for the menu items.
    */
    public static void OnTabletSignClick(Object sender, EventArgs e)
    {
        Sign();
    }

    /**
    * Runs the blackberry-airpackager to run the application in the simulator.
    * Use the debug flag receive a connection to the remote debugger from simulator.
    */
    private static void Run(bool remoteDebug){
        ProcessStartInfo processInfo = new ProcessStartInfo();
        string pathSwf = null;
        string pathBar = null;
        string pathPng = null;
        string pathArgs = null;
        string path = null;

        pathSwf = PluginBase.CurrentProject.OutputPathAbsolute;
        path = pathSwf.Substring(0,pathSwf.LastIndexOf('\\'));
        pathSwf = pathSwf.Substring(pathSwf.LastIndexOf('\\') +1);
        pathBar = pathSwf.Substring(0,pathSwf.LastIndexOf('.')) + &quot;.bar&quot;;
        pathPng = &quot;blackberry-tablet-icon.png&quot;;

        pathArgs = &quot;-package &quot; +  pathBar + &quot; &quot; +
                   &quot;-installApp -launchApp application.xml &quot; + pathSwf + &quot; blackberry-tablet.xml &quot; + pathPng + &quot; &quot; +
                   &quot;-device &quot; + VM_IP + &quot; &quot; +
                   &quot;-password pwd&quot;;

        if(remoteDebug)
            pathArgs += &quot; -connect &quot; + VM_DEBUG_IP;

        processInfo.WorkingDirectory = path;
        processInfo.FileName = &quot;blackberry-airpackager&quot;;
        processInfo.Arguments = pathArgs;

        Process.Start(processInfo);
    }

    private static void Sign(){
        ProcessStartInfo processInfo = null;
        Process process = null;
        string cskPass = null;
        string p12Pass = null;
        string pathSwf = null;
        string pathBar = null;
        string path = null;
        string pathArgs = null;

        pathSwf = PluginBase.CurrentProject.OutputPathAbsolute;
        path = pathSwf.Substring(0,pathSwf.LastIndexOf('\\'));
        pathSwf = pathSwf.Substring(pathSwf.LastIndexOf('\\') +1);
        pathBar = pathSwf.Substring(0,pathSwf.LastIndexOf('.')) + &quot;.bar&quot;;

        if (InputBox(&quot;Password&quot;, &quot;Enter CSK password:&quot;, ref cskPass) != DialogResult.OK)
            return;

        if (InputBox(&quot;Password&quot;, &quot;Enter P12 password:&quot;, ref p12Pass) != DialogResult.OK)
            return;

        pathArgs =     &quot;-verbose -cskpass &quot; + cskPass + &quot; &quot; +
                    &quot;-keystore &quot; + P12_CERT + &quot; &quot; +
                    &quot;-storepass &quot; + p12Pass + &quot; &quot; + pathBar + &quot; RDK &gt;&gt; signing.txt&quot;;

        processInfo = new ProcessStartInfo();
        processInfo.WorkingDirectory = path;
        processInfo.FileName = &quot;blackberry-signer&quot;;
        processInfo.Arguments = pathArgs;

        process = Process.Start(processInfo);
        process.WaitForExit();

        pathArgs =     &quot;-keystore &quot; + P12_CERT + &quot; &quot; +
                    &quot;-storepass &quot; + p12Pass + &quot; &quot; + pathBar + &quot; author &gt;&gt; signing.txt&quot;;

        processInfo = new ProcessStartInfo();
        processInfo.WorkingDirectory = path;
        processInfo.FileName = &quot;blackberry-signer&quot;;
        processInfo.Arguments = pathArgs;

        process = Process.Start(processInfo);
        process.WaitForExit();
    }

    public static DialogResult InputBox(string title, string promptText, ref string value)
    {
          Form form = new Form();
          Label label = new Label();
          TextBox textBox = new TextBox();
          Button buttonOk = new Button();
          Button buttonCancel = new Button();

          form.Text = title;
          label.Text = promptText;
          textBox.Text = value;

          buttonOk.Text = &quot;OK&quot;;
          buttonCancel.Text = &quot;Cancel&quot;;
          buttonOk.DialogResult = DialogResult.OK;
          buttonCancel.DialogResult = DialogResult.Cancel;

          label.SetBounds(9, 20, 372, 13);
          textBox.SetBounds(12, 36, 372, 20);
          buttonOk.SetBounds(228, 72, 75, 23);
          buttonCancel.SetBounds(309, 72, 75, 23);

          label.AutoSize = true;
          textBox.Anchor = textBox.Anchor | AnchorStyles.Right;
          buttonOk.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
          buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;

          form.ClientSize = new Size(396, 107);
          form.Controls.AddRange(new Control[] { label, textBox, buttonOk, buttonCancel });
          form.ClientSize = new Size(Math.Max(300, label.Right + 10), form.ClientSize.Height);
          form.FormBorderStyle = FormBorderStyle.FixedDialog;
          form.StartPosition = FormStartPosition.CenterScreen;
          form.MinimizeBox = false;
          form.MaximizeBox = false;
          form.AcceptButton = buttonOk;
          form.CancelButton = buttonCancel;

          DialogResult dialogResult = form.ShowDialog();
          value = textBox.Text;
          return dialogResult;
    }
}</pre>
<p><strong>Installation</strong></p>
<ol>
<li>Das komplette Paket (Script und Bilder) kann&#160; <a href="http://www.devbar.de/wp-content/uploads/2011/04/Scripts.zip">hier</a> heruntergeladen werden.</li>
<li>Ruft in FlashDevelop Tools-&gt;Application Files auf und entpackt dort in einen Unterordner “Scripts” die Dateien aus der <em>Script.zip</em>.</li>
<li>Die Einstellungen im oberen Bereich der <em>Playbook.cs </em>müsst ihr auf eure Umgebung anpassen.</li>
<li>Legt in FlashDevelop unter Macros-&gt;Edit Macros einen neuen Eintrag mit folgenden Einstellungen an:</li>
<ul>
<ul>
<li>AutoRun: <em>True</em></li>
<li>Entries [0]: <em>ExecuteScript|Internal;C://Users//Devbar//AppData//Local//FlashDevelop//Scripts//Playbook.cs</em></li>
<li>Image: &lt;kann leer bleiben&gt;</li>
<li>Label: &lt;beliebig&gt;</li>
<li>ShortCut: <em>None</em></li>
</ul>
</ul>
<li>FlashDevelop muss neu gestartet werden, damit die Einträge sichtbar werden.</li>
</ol>
<p>&#160;</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="vmware" border="0" alt="vmware" src="http://www.devbar.de/wp-content/uploads/2011/04/vmware1.png" width="16" height="16" /><strong>Simulator </strong></p>
<p>Startet VMWare und lädt die in der <em>Playbook.cs</em> konfigurierte VM.</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="tablet_run" border="0" alt="tablet_run" src="http://www.devbar.de/wp-content/uploads/2011/04/tablet_run1.png" width="16" height="16" /><strong>Ausführen </strong></p>
<p>Packt eure App als Bar-File und startet sie auf dem Simulator.</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="tablet_debug" border="0" alt="tablet_debug" src="http://www.devbar.de/wp-content/uploads/2011/04/tablet_debug1.png" width="16" height="16" /><strong>Debugger</strong> </p>
<p>Packt eure App als Bar-File und startet sie auf dem Simulator. Damit das Remote-Debuggen korrekt funktioniert muss vorher per Debug-&gt;Start Remote Session FlashDevelop in Wartestellung gebracht werden. Bitte achtet darauf, dass ihr in die <em>Playbook.cs </em>die korrekt IP-Adresse eingerichtet habt.</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="tablet_sign" border="0" alt="tablet_sign" src="http://www.devbar.de/wp-content/uploads/2011/04/tablet_sign1.png" width="16" height="16" /><strong>Signieren </strong></p>
<p>Signiert eine bestehende Bar-File mit dem in der<em> Playbook.cs</em> angegebenen Zertifikat. Passwörter werden vom Script abgefragt.</p>
<p>&#160;</p>
<p><strong>Links</strong>:</p>
<ul>
<li><a href="http://www.csscript.net/">CS-Script</a></li>
<li><a href="http://www.flashdevelop.org/wikidocs/index.php?title=Macros">FlashDevelop: Macros</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.devbar.de/index.php/2011/04/flashdevelop-fr-blackberry-playbook-fit-machen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Podcast-Tipp zu Windows Azure</title>
		<link>http://www.devbar.de/index.php/2011/03/podcast-tipp-zu-windows-azure/</link>
		<comments>http://www.devbar.de/index.php/2011/03/podcast-tipp-zu-windows-azure/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 21:19:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.devbar.de/index.php/2011/03/podcast-tipp-zu-windows-azure/</guid>
		<description><![CDATA[Die beste Sendung die ich bisher beim Heise &#8211; Developer-Podcast gehört habe. Außerdem weiß ich jetzt endlich wie man “Azure” ausspricht . Nein &#8211; im Ernst: Hier wird alles angerissen und man kriegt wirklich einfach mal einen Überblick was da auf uns zu kommt. Viel Spaß beim Hören.
Links:

Zur Sendung

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.devbar.de/wp-content/uploads/2011/03/podcast_teaser.gif"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 3px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="podcast_teaser" border="0" alt="podcast_teaser" align="right" src="http://www.devbar.de/wp-content/uploads/2011/03/podcast_teaser_thumb.gif" width="68" height="69" /></a>Die beste Sendung die ich bisher beim Heise &#8211; Developer-Podcast gehört habe. Außerdem weiß ich jetzt endlich wie man “Azure” ausspricht <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="http://www.devbar.de/wp-content/uploads/2011/03/wlEmoticon-smile.png" />. Nein &#8211; im Ernst: Hier wird alles angerissen und man kriegt wirklich einfach mal einen Überblick was da auf uns zu kommt. Viel Spaß beim Hören.</p>
<p><strong>Links:</strong></p>
<ul>
<li><font color="#333333"><a href="http://www.heise.de/developer/artikel/Episode-29-Cloud-Computing-mit-Windows-Azure-1211445.html">Zur Sendung</a></font></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.devbar.de/index.php/2011/03/podcast-tipp-zu-windows-azure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CeBIT-Tickets auf den letzten Dr&#252;cker</title>
		<link>http://www.devbar.de/index.php/2011/03/cebit-tickets-auf-dem-letzten-drcker/</link>
		<comments>http://www.devbar.de/index.php/2011/03/cebit-tickets-auf-dem-letzten-drcker/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 21:15:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.devbar.de/index.php/2011/03/cebit-tickets-auf-dem-letzten-drcker/</guid>
		<description><![CDATA[Wer noch kurzfristig kostenlose CeBIT-Tickets braucht, kann bei der Computer-Bild noch welche bekommen. Diverse Gutscheincodes in anderen Blogs scheinen dagegen nicht mehr zu funktionieren.
Man sieht sich 
Links:

Cebit
Computerbild

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.devbar.de/wp-content/uploads/2011/03/cebit.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 9px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="cebit" border="0" alt="cebit" align="left" src="http://www.devbar.de/wp-content/uploads/2011/03/cebit_thumb.png" width="128" height="129" /></a>Wer noch kurzfristig kostenlose CeBIT-Tickets braucht, kann bei der Computer-Bild noch welche bekommen. Diverse Gutscheincodes in anderen Blogs scheinen dagegen nicht mehr zu funktionieren.</p>
<p>Man sieht sich <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Zwinkerndes Smiley" src="http://www.devbar.de/wp-content/uploads/2011/03/wlEmoticon-winkingsmile.png" /></p>
<p>Links:</p>
<ul>
<li><a href="http://www.cebit.de/">Cebit</a></li>
<li><a href="http://www.computerbild.de/artikel/cb-News-Internet-Gratis-CeBIT-Tageskarten-sichern-6004048.html">Computerbild</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.devbar.de/index.php/2011/03/cebit-tickets-auf-dem-letzten-drcker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

