<?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>Gambas.CopyLeft.be/blog</title>
	<atom:link href="http://gambas.copyleft.be/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://gambas.copyleft.be/blog</link>
	<description>Blog over het ontdekken en gebruiken van gambas</description>
	<lastBuildDate>Fri, 11 May 2012 14:48:29 +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>Probeer niet te debuggen (Don&#8217;t TRY to DEBUG)</title>
		<link>http://gambas.copyleft.be/blog/?p=489</link>
		<comments>http://gambas.copyleft.be/blog/?p=489#comments</comments>
		<pubDate>Fri, 11 May 2012 14:32:17 +0000</pubDate>
		<dc:creator>cybrarian</dc:creator>
				<category><![CDATA[Gamblog]]></category>

		<guid isPermaLink="false">http://gambas.copyleft.be/blog/?p=489</guid>
		<description><![CDATA[Tijdens het werken aan een project kan je snel &#8220;DEBUG&#8221; code tussenvoegen om feedback of een resultaat te kunnen volgen in de commandolijn onderaan&#8230; &#160; Working on code, I encoutered an interesting problem using DEBUG &#8230; DEBUG "test" toont &#8220;test&#8221; &#8230; <a href="http://gambas.copyleft.be/blog/?p=489">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<table>
<tr>
<td>Tijdens het werken aan een project kan je snel &#8220;DEBUG&#8221; code tussenvoegen om feedback of een resultaat te kunnen volgen in de commandolijn onderaan&#8230;
</td>
<td width=5>&nbsp;</td>
<td>Working on code, I encoutered an interesting <a href="#English">problem using DEBUG &#8230;</a></td>
</tr>
</table>
<p><code>DEBUG "test" </code><br />
toont &#8220;test&#8221; in het zwarte venster, maar evengoed kan je een variabele laten zien:<br />
<code>DEBUG sSqlStatement</code><br />
of nog iets duidelijker voor jezelf:<br />
<code>DEBUG "SQL statement is:" &#038; sSqlStatement</code></p>
<p>Een andere techniek is het gebruik van TRY (code) / IF ERROR (code).</p>
<p>Mijn <a href="http://gambas.copyleft.be/blog/?p=395" title="Fout bij uitvoeren Gambas programma" target="_blank">fout</a> was de combinatie van de twee: </p>
<p><code>TRY DEBUG resultOfProcedure()<br />
IF ERROR<br />
  (code)<br />
ELSE<br />
  (code)<br />
ENDIF</code></p>
<p>In de IDE werk dat perfect, maar het probleem steekt de kop op als je het project compileert; de DEBUG code wordt niet meer uitgevoerd (tenzij je compileert met behoud van DEBUG code), en de applicatie crasht.</p>
<p>Het behouden van DEBUG code kan je aanzetten in de IDE bij het compileren naar een uitvoerbaar programma:</p>
<blockquote><p>Menu: Project, Make, Executable (ctrl-alt-m)</p></blockquote>
<p>Open daar onderaan <strong>> Options</strong> en kies &#8220;Keep debugging information in executable&#8221;</p>
<p>Door dit verschil kon ik de fout opsporen: door de TRY DEBUG combinaties te vervangen door TRY PRINT werkte de uitvoerbare versie wel na &#8220;make executable&#8221;.</p>
<p>English version:(<a name="English">Don&#8217;t TRY to DEBUG</a>)</p>
<hr />
<font color="blue"><br />
<strong>Problem using DEBUG </strong></p>
<p>If you code:<br />
<code>DEBUG "test" </code><br />
it shows  &#8220;test&#8221; in the black window underneath the Gambas IDE, but of course it is more interesting to show the content of a variable<br />
<code>DEBUG sSqlStatement</code><br />
maybe with some explanation on the same line (in case the variable is empty):<br />
<code>DEBUG "SQL statement is:" &#038; sSqlStatement</code></p>
<p>Another thing is the use of  TRY (code) / IF ERROR (code).</p>
<p>My error was the combination of both:</p>
<p><code>TRY DEBUG resultOfProcedure()<br />
IF ERROR<br />
  (code)<br />
ELSE<br />
  (code)<br />
ENDIF</code></p>
<p>In the IDE it does what you want, but the problem pops up if you run the compiled project.<br />
The DEBUG code is not included any more* and your program crashes.<br />
* Except if you compile with option to keep debug info.</p>
<p>In the IDE, you find the option to keep the DEBUG code here:</p>
<blockquote><p>Menu: Project, Make, Executable (ctrl-alt-m)</p></blockquote>
<p>Open <strong> > Options</strong> and check </p>
<blockquote><p>&#8220;Keep debugging information in executable&#8221;.</p></blockquote>
<p>If you run the program afterwards, the &#8220;TRY-DEBUG&#8221; crash will not happen.  If you replace TRY DEBUG by TRY PRINT, the crash will not happen any more in the compiled program.<br />
Problem identified!</p>
<p></font></p>
]]></content:encoded>
			<wfw:commentRss>http://gambas.copyleft.be/blog/?feed=rss2&#038;p=489</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Commandolijn, SHELL: Distributie en versie opvragen</title>
		<link>http://gambas.copyleft.be/blog/?p=472</link>
		<comments>http://gambas.copyleft.be/blog/?p=472#comments</comments>
		<pubDate>Fri, 04 May 2012 13:59:39 +0000</pubDate>
		<dc:creator>cybrarian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gambas.copyleft.be/blog/?p=472</guid>
		<description><![CDATA[Een commandolijnprogramma kan je vanuit Gambas uitvoeren met SHELL of EXEC. bv: EXEC [ "ls", "-lF"] Vanaf er &#8220;wildcards&#8221; in komen, als een &#8216;*&#8217; om een reeks niet op voorhand gedefinieerde files aan te duiden, moet je SHELL gebruiken. bv: &#8230; <a href="http://gambas.copyleft.be/blog/?p=472">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Een commandolijnprogramma kan je vanuit Gambas uitvoeren met SHELL of EXEC.</p>
<p>bv:</p>
<pre>EXEC [ "ls", "-lF"]
</pre>
<p>Vanaf er &#8220;wildcards&#8221; in komen, als een &#8216;*&#8217; om een reeks niet op voorhand gedefinieerde files aan te duiden, moet je SHELL gebruiken.</p>
<p>bv:</p>
<pre>SHELL "ls /etc/*release"</pre>
<p>Je kan in de Gambas IDE in het console venster onderaan de resultaten zien. </p>
<p>Je kan de uitvoer naar een variabele binnen Gambas sturen door de lijn te eindigen met </p>
<blockquote><p>TO sVariabele</p></blockquote>
<p>Klein voorbeeldje:</p>
<p>Maak een nieuw project &#8220;Command line application&#8221;</p>
<p>plak in MMain:</p>
<pre>
' Gambas module file

PUBLIC sParameter AS String
PUBLIC sCommand AS String
PUBLIC sAnswer AS String

PUBLIC sLine1 AS String
PUBLIC sLine2 AS String

PUBLIC SUB Main()

  sCommand = "ls /etc/*release"

  SHELL sCommand TO sAnswer

  DEBUG "Answer was: >" &#038; Trim$(sAnswer) &#038; "<"

  sAnswer = Trim$(sAnswer)

  sCommand = "cat " &#038; sAnswer

  SHELL sCommand TO sAnswer

  DEBUG "Answer was: >" &#038; Trim$(sAnswer) &#038; "<"

  sLine1 = Left$(sAnswer, String.InStr(sAnswer, gb.NewLine))

  DEBUG "sLine1 is: " &#038; sLine1

END</pre>
<p>Hier kan je code uittesten die je elders in een grotere applicatie inbouwt; sParameter en sLine2 dienden daarvoor.</p>
]]></content:encoded>
			<wfw:commentRss>http://gambas.copyleft.be/blog/?feed=rss2&#038;p=472</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gambas3 installeren onder Ubuntu/Linux Mint</title>
		<link>http://gambas.copyleft.be/blog/?p=464</link>
		<comments>http://gambas.copyleft.be/blog/?p=464#comments</comments>
		<pubDate>Sun, 22 Apr 2012 15:43:12 +0000</pubDate>
		<dc:creator>Wamukota</dc:creator>
				<category><![CDATA[Hoe - in Gambas]]></category>
		<category><![CDATA[Gambas3]]></category>

		<guid isPermaLink="false">http://gambas.copyleft.be/blog/?p=464</guid>
		<description><![CDATA[In afwachting van Gambas3 in het Ubuntu/Linux Mint softwarebeheer, kun je Gambas3 installeren via onderstaande PPA. Open een konsole: $ sudo add-apt-repository ppa:nemh/gambas3 $ sudo apt-get update $ sudo apt-get install gambas3 &#160;]]></description>
			<content:encoded><![CDATA[<p>In afwachting van Gambas3 in het Ubuntu/Linux Mint softwarebeheer, kun je Gambas3 installeren via onderstaande PPA.</p>
<p>Open een konsole:</p>
<blockquote><p>$ sudo add-apt-repository ppa:nemh/gambas3<br />
$ sudo apt-get update<br />
$ sudo apt-get install gambas3</p>
<p>&nbsp;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://gambas.copyleft.be/blog/?feed=rss2&#038;p=464</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Versie van Gambas vanuit programma opvragen</title>
		<link>http://gambas.copyleft.be/blog/?p=415</link>
		<comments>http://gambas.copyleft.be/blog/?p=415#comments</comments>
		<pubDate>Thu, 29 Mar 2012 12:09:35 +0000</pubDate>
		<dc:creator>cybrarian</dc:creator>
				<category><![CDATA[Gamblog]]></category>
		<category><![CDATA[Hoe - in Gambas]]></category>

		<guid isPermaLink="false">http://gambas.copyleft.be/blog/?p=415</guid>
		<description><![CDATA[De versie van je eigen programma kan je in een tekstvariabele steken met: sMijnVersie = Application.version Maar als je daarnaast de versie van Gambas zelf nodig hebt? Binnen Gambas is er geen commando om dat op te vragen. In de &#8230; <a href="http://gambas.copyleft.be/blog/?p=415">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>De versie van je eigen programma kan je in een tekstvariabele steken met:</p>
<p><code>sMijnVersie = Application.version</code></p>
<p>Maar als je daarnaast de versie van Gambas zelf nodig hebt?<br />
Binnen Gambas is er geen commando om dat op te vragen.</p>
<p>In de IDE is die natuurlijk zichtbaar in het menu: <em>? , About Gambas</em> (bv: 2.21).</p>
<p>Maar als je de gambas versie wil weergeven vanuit je draaiende gambas programma?</p>
<p>Meestal zal je dan de runtime bedoelen; die heet gbx (van <strong>g</strong>am<strong>b</strong>as e<strong>x</strong>ecute).  In gambas 2 is dat gbx2, in gambas 3 vermoedelijk gbx3.</p>
<p>In je besturingssysteem kan je meestal de versie van een programma opvragen met<br />
<code>programmanaam --version</code><br />
Wat ook geldt voor Gambas:</p>
<blockquote><p>gbx2 &#8211;version<br />
2.21.0</p>
<p>gba2 &#8211;version<br />
2.21.0</p>
<p>gbc2 &#8211;version<br />
2.21.0</p>
<p>gbi2 &#8211;version<br />
2.21.0</p>
<p>gbr2 &#8211;version<br />
ERROR: #35: Cannot open file &#8216;&#8211;version&#8217;: No such file or directory
</p></blockquote>
<p>Zie ook: archiver, compiler, informer.</p>
<p>Linux command prompt is bruikbaar vanuit Gambas:</p>
<p><strong><code>EXEC ["gbx2", "--version"] TO sRuntimeVersie</code></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://gambas.copyleft.be/blog/?feed=rss2&#038;p=415</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fout bij starten: FMain.?.0 &#8211; starten vanuit MMain</title>
		<link>http://gambas.copyleft.be/blog/?p=395</link>
		<comments>http://gambas.copyleft.be/blog/?p=395#comments</comments>
		<pubDate>Tue, 13 Mar 2012 22:51:51 +0000</pubDate>
		<dc:creator>cybrarian</dc:creator>
				<category><![CDATA[Gamblog]]></category>
		<category><![CDATA[vraag-me-af]]></category>

		<guid isPermaLink="false">http://gambas.copyleft.be/blog/?p=395</guid>
		<description><![CDATA[Een applicatie die op zich wel werkt, start &#8220;soms&#8221; niet op, maar geeft volgende foutmelding: This application has raised an unexpected error and must abort. [13] Null object. FMain.?.0 Na enige tijd wordt duidelijk dat ik ze wel kan draaien &#8230; <a href="http://gambas.copyleft.be/blog/?p=395">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Een applicatie die op zich wel werkt, start &#8220;soms&#8221; niet op, maar geeft volgende foutmelding:<br />
<div id="attachment_410" class="wp-caption alignnone" style="width: 407px"><a href="http://gambas.copyleft.be/blog/wp-content/uploads/2012/03/FMainErrorCrash.png"><img src="http://gambas.copyleft.be/blog/wp-content/uploads/2012/03/FMainErrorCrash.png" alt="Error at program start" title="FMainErrorCrash" width="397" height="206" class="size-full wp-image-410" /></a><p class="wp-caption-text">Fout bij start FMain</p></div></p>
<blockquote><p>This application has raised an unexpected<br />
error and must abort.</p>
<p>[13] Null object.<br />
FMain.?.0</p></blockquote>
<p>Na enige tijd wordt duidelijk dat ik ze wel kan draaien vanuit de IDE, waar ik dus het project open en &#8220;run&#8221; kies.<br />
Op een ander toestel waar de applicatie gecompileerd is en gestart wordt van een icoon op de desktop, treedt de bewuste fout steeds op.  Het is nochtans identiek dezelfde source, met misschien een miniem verschil in versies Linux/Kde/Gambas IDE.</p>
<p>Als ik het fenomeen terugzie bij een andere applicatie lijkt er een verband te zijn: programma&#8217;s die ik start vanuit de gewone, standaard voorezien <strong>FMain</strong> werken wel na compilatie.  De applicatie die ik laat opstarten vanuit een module &#8220;MMain&#8221; geeft de foutmelding &#8211; niet vanuit de IDE dus, maar wel als gecompileerde versie die gestart wordt met een klik op het icoon naar de &#8220;programmanaam.gambas&#8221; file.<br />
<div id="attachment_397" class="wp-caption alignnone" style="width: 310px"><a href="http://gambas.copyleft.be/blog/wp-content/uploads/2012/03/GambasFMainMMain.png"><img src="http://gambas.copyleft.be/blog/wp-content/uploads/2012/03/GambasFMainMMain-300x187.png" alt="Gambas FMain MMain" title="GambasFMainMMain" width="300" height="187" class="size-medium wp-image-397" /></a><p class="wp-caption-text">Gambas FMain MMain</p></div><br />
In MMain worden een aantal initialisaties gedaan, alsook de taal-check.  Deze laatste zorgt ervoor dat vanaf het eerste &#8220;scherm&#8221; (of de eerste Form) de gelezen voorkeur-taalinstelling aktief is.  MMain eindigt met de oproep van FMain, van waaruit dan verder gewerkt wordt.<br />
<br />
De oorzaak blijkt een bug te zijn: in de MMain code wordt FMain fout aangeroepen:<br />
FMain.Show in plaats van <strong>FMain.Show()</strong>.  De IDE lijkt daar niet over te struikelen, maar -eens gecompileerd- de runtime dus wel.</p>
<p></p>
<blockquote><p><em>upd 22/03/2012</em>: Ik ben niet helemaal zeker van deze analyse, ik meen toch nog een ander voorbeeld te zijn tegengekomen waar de Show() correct was.  Misschien is het een &#8220;combinatie van problemen&#8221; ?</p></blockquote>
<p><strong>Update: </strong><br />
Een interessant verschil blijkt te zitten in het behouden van de debug informatie bij het compileren.  Als dat &#8220;aan&#8221; staat crasht de applicatie niet als je ze start vanop de link op de desktop!<br />
&#8220;Make executable&#8221;, &#8220;options&#8221;, &#8220;Keep debugging information in executable&#8221;.<br />
(Oorzaak van de fout: zie  &#8220;<a href="http://gambas.copyleft.be/blog/?p=489" title="Probeer niet te debuggen...">Don&#8217;t TRY to DEBUG</a>&#8220;)</p>
]]></content:encoded>
			<wfw:commentRss>http://gambas.copyleft.be/blog/?feed=rss2&#038;p=395</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gambas 2 en Gambas 3 op OpenSUSE 12.1</title>
		<link>http://gambas.copyleft.be/blog/?p=372</link>
		<comments>http://gambas.copyleft.be/blog/?p=372#comments</comments>
		<pubDate>Wed, 29 Feb 2012 15:45:03 +0000</pubDate>
		<dc:creator>cybrarian</dc:creator>
				<category><![CDATA[installatie]]></category>

		<guid isPermaLink="false">http://gambas.copyleft.be/blog/?p=372</guid>
		<description><![CDATA[Gambas 2 uit gbvalor Dit is een andere (*) installatie van Gambas 2 en 3 op openSUSE 12.1 en ze verliep vlekkeloos: - openSUSE 12.1 van DVD geïnstalleerd. - software bijgeïnstalleerd: lamp server enz. - community repositories laten scannen, en &#8230; <a href="http://gambas.copyleft.be/blog/?p=372">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://gambas.copyleft.be/blog/wp-content/uploads/2012/02/gbvalor.png"><img src="http://gambas.copyleft.be/blog/wp-content/uploads/2012/02/gbvalor-300x174.png" alt="" title="gbvalor" width="300" height="174" align="right" hspace="10" /></a><strong>Gambas 2 uit gbvalor</strong><br />
Dit is een andere (*) installatie van Gambas 2 en 3 op openSUSE 12.1 en ze verliep vlekkeloos:<br />
- openSUSE 12.1 van DVD geïnstalleerd.<br />
- software bijgeïnstalleerd: lamp server enz.<br />
- community repositories laten scannen, en .<br />
- repository bijgeïnstalleerd: Google zoek op &#8220;gbvalor&#8221;, waarvan ik weet dat het de gambas repository is die ik meestal gebruik.<br />
- in Yast, repositories, nieuwe, geef URL, de URL ingeplakt; die wordt gecheckt en aanvaard.<br />
- software management, zoek &#8220;gambas&#8221;; de hele reeks gambas componenten is beschikbaar.<br />
- Kies Gambas2 IDE, bevestig alles.<br />
- Daarna is het menu-item &#8220;Development&#8221; bijgekomen (in de &#8220;classic&#8221; menu-style), met daarin Gambas2; start perfect.<br />
- Nadien wordt het pakket vermeld als behorende tot &#8220;Development/Tools/IDE&#8221; en als leverancier &#8220;openSUSE-Education&#8221;.</p>
<p>Als je view op Repositories zet, vind je zowel Gambas 2 als 3 terug onder openSUSE BuildService &#8211; Education.</p>
<p><strong>Hetzelfde voor Gambas3:</strong><br />
- Yast, software management, zoek &#8220;Gambas&#8221;<br />
- Selecteer &#8220;Gambas 3 IDE&#8221;, bevestig.<br />
- Gambas 3 is daarna opgenomen in het menu onder &#8220;Developement&#8221;, en start perfect.<br />
- Nadien bij &#8220;Package Group: Development/Tools/IDE&#8221;, vendor &#8220;openSUSE-Education&#8221;</p>
<p>Bij Software, view &#8220;Pattern&#8221; is gambas3 IDE terug te vinden onder &#8220;Youth Education Desktop software&#8221;, gambas2 vind ik niet terug.</p>
<p>(*)<br />
<em>Op een <a href="http://gambas.copyleft.be/blog/?p=332">eerdere openSUSE 12.1 installatie</a> kreeg ik Gambas3 <font color="green">oorspronkelijk </font> niet vlot geïnstalleerd, maar dat was misschien niet representatief&#8230;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://gambas.copyleft.be/blog/?feed=rss2&#038;p=372</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Valse echo eet letter op bij invoer en weergave</title>
		<link>http://gambas.copyleft.be/blog/?p=364</link>
		<comments>http://gambas.copyleft.be/blog/?p=364#comments</comments>
		<pubDate>Tue, 28 Feb 2012 11:28:28 +0000</pubDate>
		<dc:creator>cybrarian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gambas.copyleft.be/blog/?p=364</guid>
		<description><![CDATA[Ik had een vervelende fenomeen van een soort &#8220;echo&#8221; op mijn scherm in een textbox, die ik wilde vullen met de invoer van een andere textbox. De invoer gebeurde in txbxEditField. Het was de bedoeling dat als de tekst daar &#8230; <a href="http://gambas.copyleft.be/blog/?p=364">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ik had een vervelende fenomeen van een soort &#8220;echo&#8221; op mijn scherm in een textbox, die ik wilde vullen met de invoer van een andere textbox.</p>
<p>De invoer gebeurde in txbxEditField.</p>
<p>Het was de bedoeling dat als de tekst daar klaar was, en de gebruiker enter of return drukt, de tekst ingevuld wordt in een cel in een tabel &#8220;tbvwDoel&#8221;.  Het invullen in die tabel gebeurde met de functie valToTable() die in essentie niet meer doet dan:</p>
<p>  tbvwDoel[iRowSelected, iColNewValue].Text = txbxEditField.Text</p>
<p>Ik ving bij het invoeren de Enter en de Return knop op om de invoer te aanvaarden:</p>
<p><code><br />
PUBLIC SUB txbxEditField_KeyPress()<br />
  IF Key.Enter<br />
    valToTable()<br />
    btEditOk_Click()<br />
  ENDIF<br />
  IF Key.Return<br />
    valToTable()<br />
    btEditOk_Click()<br />
  ENDIF<br />
END<br />
</code></p>
<p>Maar het vervelende effect was dat in de tabel de tekst die ingetikt wordt zichbaar is maar telkens met 1 letter vertraging, met 1 letter minder dan wat ingegeven is.  Dat is bijzonder irrittant voor de gebruiker, die eigenlijk kijkt naar de plaats in de tabel in plaats van naar het invulveld.</p>
<p>Het is een kleine &#8220;logische&#8221; fout: </p>
<p><code><br />
PUBLIC SUB txbxEditField_KeyPress()<br />
  IF Key.Code = Key.Enter<br />
    valToTable()<br />
    btEditOk_Click()<br />
  ENDIF<br />
  IF Key.Code = Key.Return<br />
    valToTable()<br />
    btEditOk_Click()<br />
  ENDIF<br />
END<br />
</code></p>
<p>Nu gebeurt wat de bedoeling is.  Het andere, verkeerde effect is leuk om te onthouden &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://gambas.copyleft.be/blog/?feed=rss2&#038;p=364</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gambas 3 (en 2) zoeken voor OpenSUSE 12.1</title>
		<link>http://gambas.copyleft.be/blog/?p=332</link>
		<comments>http://gambas.copyleft.be/blog/?p=332#comments</comments>
		<pubDate>Tue, 14 Feb 2012 21:27:31 +0000</pubDate>
		<dc:creator>cybrarian</dc:creator>
				<category><![CDATA[installatie]]></category>

		<guid isPermaLink="false">http://gambas.copyleft.be/blog/?p=332</guid>
		<description><![CDATA[Vooraf: Installeer openSUSE 12.1, bv van een CD/DVD waarvan je de inhoud kan afhalen van http://software.opensuse.org/121/en ( Algemeen: http://www.opensuse.org/ ) Gambas 3 Daarna zoek je Gambas voor openSUSE: http://en.opensuse.org/Gambas; in de rechtse kolom heb je &#8220;Download for openSUSE:&#8221; en de &#8230; <a href="http://gambas.copyleft.be/blog/?p=332">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>Vooraf: Installeer openSUSE 12.1, bv van een CD/DVD waarvan je de inhoud kan afhalen van <a href="http://software.opensuse.org/121/en" title="openSUSE software">http://software.opensuse.org/121/en</a> ( Algemeen: <a href="http://www.opensuse.org/">http://www.opensuse.org/</a> )
</p></blockquote>
<p><strong>Gambas 3</strong><br />
Daarna zoek je Gambas voor openSUSE:<br />
<a href="http://en.opensuse.org/Gambas" title="Gambas voor opensuse">http://en.opensuse.org/Gambas</a>; in de rechtse kolom heb je &#8220;Download for openSUSE:&#8221; en de links naar 12.1, 11.4 en 11.3 (op moment van dit schrijven).</p>
<p><a href="http://gambas.copyleft.be/blog/wp-content/uploads/2012/02/GambasDownloadOpenSUSE121.png"><img src="http://gambas.copyleft.be/blog/wp-content/uploads/2012/02/GambasDownloadOpenSUSE121-300x137.png" alt="opensuse install gambas" title="GambasDownloadOpenSUSE121" width="300" height="137" align="right" hspace="10" vspace="5"/></a><br />
 Je komt op een soort Package Search, waar je kan kiezen uit Gambas 2 en 3 voor verschillende versies van openSUSE.</p>
<ul>
<li>Versie 3 is net uit: &#8220;3.0.0.3&#8243;</li>
</ul>
<p>Bovenaan de lijst  met software staat meestal het algemene pakket &#8211; de interpreter- (zoek programmeeromgeving of &#8220;IDE&#8221;, met alles erbij of installeer dat later), eronder de afzonderlijke modules, om enkel te installeren wat je nodig hebt.</p>
<p>Rechts staat de &#8220;repository&#8221; waar het uitkomt; bv &#8220;Education/oepnSUSE_12.1&#8243;.</p>
<p>Net daaronder een &#8220;1 Click install&#8221; link.</p>
<p>Net daaronder krijg je een gedetailleerde tabel met (link naar) i586-, src- (source) en x86_64- (64 bit) versies.</p>
<p>Een klik op &#8220;1 Click install&#8221; link en Firefox biedt aan om gambas3.ymp te openen met &#8220;Yast 1-Click Install&#8221;. (ok)</p>
<p>Er worden automatisch een paar repositories (perl, python, Education, non-oss..) toegevoegd. (bevestig: next).</p>
<p>Select the software components you wish to install: [v] gambas3<br />
Alles staat klaar, dus bevestig (next) en bevestig nog eens het overzicht.  </p>
<p>Geef het root wacthwoord om te mogen installeren.  Ik bevestigde de key van Perl en van python (trust).</p>
<p>Sluit af na: </p>
<blockquote><p>Software installation<br />
<i>Installation was successful.</i> (Finish)
</p></blockquote>
<p><strong>Gambas IDE</strong></p>
<p>Meestal staat na installatie Gambas bij in je menu; ik merk hier in het &#8220;traditionele&#8221; KDE-menu dat er geen rubriek (programmeren of Educational of zo) is bijgekomen.  Evenmin zie ik het verwachte &#8220;laatst geïnstalleerd&#8221; menu-item.  Nee, opnieuw inloggen voegt het niet toe.<br />
De gambas die ik gekozen had was dus de basis Gambas Basic interpreter, niet de volledige IDE (= Integrated Development Environment; programmeeromgeving).</p>
<p>Gelukkig zijn nu wel de juiste repositories aanwezig en is het maar kwestie van de IDE te gaan kiezen in het softwarebeheer:<br />
- Menu, Yast, install/remove software.<br />
- Zoek &#8220;gambas&#8221;.<br />
- Kies uit de lijst de IDE (automatisch worden een aantal andere mee geselecteerd), en al wat je nog denkt nodig te hebben.<br />
- Bevestig (Accept), bekijk &#8220;Automatic changes&#8221;, ga verder (continue).</p>
<p>Je ziet dat er nu iets meer gedownload wordt; dat duurt even en je ziet alles voorbijrollen tot het klaar is.</p>
<p>Nu krijg je in het menu wel een &#8220;Recently Installed&#8221; keuze, met daarin<br />
<code>Gambas3 (Basic Development Environment 3)</code><br />
Er is ook een menu &#8220;Development&#8221; bijgekomen (als je dat nog niet had), met daarin dezelfde keuze om Gambas te starten.</p>
<blockquote><p>
<em>Update:</em><br />
Direct na installatie: Oops!! Gambas3 start niet uit het menu!<br />
Na een hele reeks updates (op 5/3/2012) waarin ik heel wat &#8220;Gambas&#8221; bestanden zag voorbijrollen op het scherm, start Gambas 3 perfect op, en het eerste beste voorbeeldprogramma dat erbij zat kon geopende worden in de IDE en gecompileerd/gestart worden.
</p></blockquote>
<p><strong>Gambas 2</strong></p>
<p>Optie: installeer daarnaast tevens Gambas2, ook via Yast, Software Management.  </p>
<ul>
<li>Versie 2-2.23 is de (laatste?) stabiele versie van de 2.x tak (voor KDE3), terwijl de huidige distributies aan KDE4 toe zijn.  (Bv mijn laatste installatie op openSUSE 11.3 was versie 2-2.21)</li>
</ul>
<p>Nota: Daar haal je wel een hoop KDE3 mee binnen!<br />
De installatie verloopt vlot (repositories zijn al voorzien, dus enkel kiezen uit de software).<br />
Er komt een menu-item bij onder Development-Integrated Environment: Gambas2&#8230;<br />
Gambas 2 start op met het bekende scherm, voorzien van voorbeeldprogramma&#8217;s.</p>
<p><strong>Nota:</strong><br />
Later, op een andere installatie gebruikte ik een andere weg: <a href="http://gambas.copyleft.be/blog/?p=372">Gambas 2 en Gambas 3 op OpenSUSE 12.1</a></p>
<p>Veel programmeer-plezier!</p>
]]></content:encoded>
			<wfw:commentRss>http://gambas.copyleft.be/blog/?feed=rss2&#038;p=332</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Afgeleide klasse van Listbox, vanuit code het object maken/instantiëren en gebruiken in een VBox</title>
		<link>http://gambas.copyleft.be/blog/?p=274</link>
		<comments>http://gambas.copyleft.be/blog/?p=274#comments</comments>
		<pubDate>Thu, 09 Feb 2012 09:44:59 +0000</pubDate>
		<dc:creator>cybrarian</dc:creator>
				<category><![CDATA[Gamblog]]></category>
		<category><![CDATA[Hoe - in Gambas]]></category>
		<category><![CDATA[vraag-me-af]]></category>

		<guid isPermaLink="false">http://gambas.copyleft.be/blog/?p=274</guid>
		<description><![CDATA[Doel: weergave van de dagen van de week, waarbij iedere dag een reeks waarden bevat (orders). De dagen van een week zijn vertikaal gegroepeerd. De dag wordt voorgesteld als een soort listbox, met op iedere lijn de weergave van een &#8230; <a href="http://gambas.copyleft.be/blog/?p=274">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Doel: weergave van de dagen van de week, waarbij iedere dag een reeks waarden bevat (orders).  De dagen van een week zijn vertikaal gegroepeerd.<br />
<a href="http://gambas.copyleft.be/blog/wp-content/uploads/2012/02/daysOfWeek.png"><img src="http://gambas.copyleft.be/blog/wp-content/uploads/2012/02/daysOfWeek.png" alt="" title="daysOfWeek" width="229" height="241" align="right" hspace="10" vspace="5" /></a><br />
De dag wordt voorgesteld als een soort listbox, met op iedere lijn de weergave van een ordernummer.  Maar ik wil niet alle Dag-Listboxen, met steeds dezelfde eigenschappen, op het scherm tekenen.</p>
<p>De orders worden er naartoe &#8220;gesleept&#8221; (vierkantje op schermafbeelding) en komen in de lijst als je ze loslaat boven de dag (maandag op schermafbeelding).</p>
<p>Als er meer orders in de listbox komen, moet hij &#8220;groeien&#8221;, dwz de hoogte van de listbox moet groter worden; en omgekeerd moet hij ook kunnen krimpen.</p>
<p>Bovendien: de Dag-Listbox moet meer kunnen dan een listbox, ik maak dus een afgeleide klasse bv myListbox, of zo.  Beter: ik noemt die CPlanDay; het geeft de planning voor die dag weer.</p>
<p>VBox ordent een aantal van mijn Listboxes (objecten van CPlanDay) vertikaal tot een week.</p>
<p>Volgende vragen bleven me open toen dat gelukt was:</p>
<ul>
<li>Hoe maak ik een klasse die afgeleid is van een bestaande (Listbox)?</li>
<li>Hoe maak ik de objecten van die klasse vanuit code; &#8220;on the run&#8221;?</li>
<li>Hoe kan ik de extra mogelijkheden programmeren?</li>
<li>Hoe bereik ik de bestaande mogelijkheden van de ouder-klasse Listbox?</li>
</ul>
<p>Eerste poging:<br />
<span id="more-274"></span><br />
<strong>De klasse:</strong></p>
<pre>
' Gambas class file
INHERITS ListBox

STATIC PUBLIC lsbxMinHeight AS Integer = 40
STATIC PUBLIC lsbxMaxHeight AS Integer = 200

STATIC PUBLIC lsbxLineHeight AS Integer = 17
STATIC PUBLIC lsbxFontSize AS Integer = 9

STATIC PUBLIC iMonday AS Integer = 0
STATIC PUBLIC iTuesday AS Integer = 1
STATIC PUBLIC iWednesday AS Integer = 2
STATIC PUBLIC iThursday AS Integer = 3
STATIC PUBLIC iFriday AS Integer = 4
STATIC PUBLIC iSaturday AS Integer = 5
STATIC PUBLIC iSunday AS Integer = 6

PRIVATE iDay AS Integer = iMonday

PUBLIC SUB _new(OPTIONAL iDayNumber AS Integer)

  IF (iDayNumber)
    setDay(iDayNumber)
  ENDIF
  ME.Font.Size = lsbxFontSize
  ME.Add("I just got birth")

END

PUBLIC SUB test()

  Message.Info("hello")

END

PUBLIC SUB Drag()

  ME.Remove(ME.Index)
  ME.Height = ME.lsbxMinHeight + ME.Count * ME.lsbxLineHeight

END 

PUBLIC SUB Drop()

  ME.Add(Drag.Data)
  DEBUG ME.Height &#038; " <?> " &#038; ME.lsbxMaxHeight
  IF ME.Height < ME.lsbxMaxHeight
    ME.Height = ME.lsbxMinHeight + ME.Count * ME.lsbxLineHeight
  ENDIF 

END 

PUBLIC SUB Mousedrag()

  IF Mouse.Left THEN

    ME.Drag(ME[ME.Index].Text)

  ENDIF 

END

PUBLIC SUB setDay(iDayNumber AS Integer)

  IF iDayNumber >= 0
    IF iDayNumber <= 6
      iDay = iDayNumber
    ENDIF
  ENDIF 

END

PUBLIC SUB getDayNumber() AS Integer

  RETURN iDay

END

PUBLIC SUB getDayName() AS String

  SELECT iDay
    CASE iMonday
      RETURN "Monday"
    CASE iTuesday
      RETURN "Tuesday"
    CASE iWednesday
      RETURN "Wednesday"
    CASE iThursday
      RETURN "Thursday"
    CASE iFriday
      RETURN "Friday"
    CASE iSaturday
      RETURN "Saturday"
    CASE iSunday
      RETURN "Sunday"
  END SELECT 

END
</pre>
<p><strong>De form waarin het gebruikt wordt:</strong></p>
<pre>
...

 DIM lsbxItem AS ListBox
  DIM i AS Integer

  aLine2 = NEW Variant[5]

  FOR i = 0 TO 4
    aLine2[i] = NEW CPlanDay(i, VBox2)
    'aLine2[i].Test()
  NEXT
...
</pre>
<p>Dat werkt echter nog niet: de dagen worden wel getekend, maar de drag en drop werkt niet (of enkel van de dag weg).</p>
<ul>
<li>Drop is een eigenschap die aangezet moet worden.</li>
<li>De hierarchie moet juist aangesproken worden: <strong>SUPER</strong> keyword voor de parentklasse</li>
<li>STATIC moet juist gebruikt worden (zonder "ME" prefix) </li>
</ul>
<p>Hieronder een uitbreiding:</p>
<p>De klasse CPlanDay:</p>
<pre>
' Gambas class file
INHERITS ListBox

STATIC PUBLIC lsbxMinHeight AS Integer = 40
STATIC PUBLIC lsbxMaxHeight AS Integer = 200

STATIC PUBLIC lsbxLineHeight AS Integer = 17
STATIC PUBLIC lsbxFontSize AS Integer = 9

STATIC PUBLIC iMonday AS Integer = 0
STATIC PUBLIC iTuesday AS Integer = 1
STATIC PUBLIC iWednesday AS Integer = 2
STATIC PUBLIC iThursday AS Integer = 3
STATIC PUBLIC iFriday AS Integer = 4
STATIC PUBLIC iSaturday AS Integer = 5
STATIC PUBLIC iSunday AS Integer = 6

PRIVATE iDay AS Integer = iMonday
PRIVATE $hObserver AS Observer
PRIVATE $hDropObserver AS Observer

PUBLIC SUB _new(OPTIONAL iDayNumber AS Integer)

  $hObserver = NEW Observer(ME) AS "Observer"
  $hDropObserver = NEW Observer(ME) AS "Dropserver"

  IF (iDayNumber)
    setDay(iDayNumber)
  ENDIF
  ME.Font.Size = lsbxFontSize
  ME.Drop = TRUE
  ME.Height = lsbxMinHeight
'  ME.Add(" - - - - " &#038; ME.getDayName() &#038; " - - - - - ")

END

PUBLIC SUB test()

  Message.Info("hello")

END

PUBLIC SUB Observer_Drag()

  ME.Remove(ME.Index)
  SUPER.Height = lsbxMinHeight + SUPER.Count * lsbxLineHeight

END 

PUBLIC SUB Observer_Drop()

  SUPER.Add(Drag.Data)
  DEBUG SUPER.Height &#038; " <?> " &#038; lsbxMaxHeight
  IF SUPER.Height < lsbxMaxHeight
    SUPER.Height = lsbxMinHeight + (ME.Count * lsbxLineHeight)
  ENDIF 

END 

PUBLIC SUB Observer_Mousedrag()

    ME.Drag(ME[ME.Index].Text)
    ME.Remove(ME.Index)

END

PUBLIC SUB setDay(iDayNumber AS Integer)

  IF iDayNumber >= 0
    IF iDayNumber <= 6
      iDay = iDayNumber
    ENDIF
  ENDIF 

END

PUBLIC SUB getDayNumber() AS Integer

  RETURN iDay

END

PUBLIC SUB getDayName() AS String

  SELECT iDay
    CASE iMonday
      RETURN ("Monday")
    CASE iTuesday
      RETURN ("Tuesday")
    CASE iWednesday
      RETURN ("Wednesday")
    CASE iThursday
      RETURN ("Thursday")
    CASE iFriday
      RETURN ("Friday")
    CASE iSaturday
      RETURN ("Saturday")
    CASE iSunday
      RETURN ("Sunday")
  END SELECT 

END
</pre>
<p>De implementatie in gebruik:</p>
<pre>
...
PUBLIC SUB Form_Open()

  DIM lsbxItem AS ListBox
  DIM i AS Integer
  DIM iWorkingDays AS Integer = 5

  aLine2 = NEW Variant[iWorkingDays]

  FOR i = 0 TO (iWorkingDays - 1)

    aLine2[i] = NEW CPlanDay(i, VBox2)

  NEXT 

...
</pre>
]]></content:encoded>
			<wfw:commentRss>http://gambas.copyleft.be/blog/?feed=rss2&#038;p=274</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gambas 1 + 2 + 3 op Fedora 16</title>
		<link>http://gambas.copyleft.be/blog/?p=259</link>
		<comments>http://gambas.copyleft.be/blog/?p=259#comments</comments>
		<pubDate>Fri, 23 Dec 2011 08:53:39 +0000</pubDate>
		<dc:creator>cybrarian</dc:creator>
				<category><![CDATA[installatie]]></category>

		<guid isPermaLink="false">http://gambas.copyleft.be/blog/?p=259</guid>
		<description><![CDATA[Proficiat voor Fedora 16: Bij deze distributie is in het package management (install/remove software, zoekveld &#8220;gambas&#8221;) een uitgebreide keuze aanwezig: Gambas 3 (2.99.5) 2.99.6 na een online update op 6/1/2012 Gambas 2 (2.23.1) Gambas 1 (1.0.19) Je kan zowel kiezen &#8230; <a href="http://gambas.copyleft.be/blog/?p=259">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Proficiat voor Fedora 16: Bij deze distributie is in het package management (install/remove software, zoekveld &#8220;gambas&#8221;) een uitgebreide keuze aanwezig:</p>
<ul>
<li>Gambas 3 (2.99.5) <font color="green">2.99.6 na een online update op 6/1/2012  </font></li>
<li>Gambas 2 (2.23.1)</li>
<li>Gambas 1 (1.0.19)</li>
</ul>
<p>Je kan zowel kiezen voor de individuele paketten als voor de hele programmeeromgeving als voor de runtime.</p>
<p>Bij installatie van de programmeeromgeving krijg ik nadien een foutmelding in verband met KDE.</p>
<p>Bij het opstarten blijken de &#8220;Examples&#8221; niet mee geïnstalleerd te zijn.</p>
<p>Ook de &#8220;Help Files&#8221; zijn niet automatisch geïnstalleerd, maar kunnen eenvoudig na-geïnstalleerd worden: klik op optie-box en &#8220;Apply&#8221;!  Voor Gambas2 is dat gelukt, gambas 3 blijven de voorbeelden leeg maar ik weet niet of dat aan de pre-release versie ligt (2.9 ipv 3.0)</p>
]]></content:encoded>
			<wfw:commentRss>http://gambas.copyleft.be/blog/?feed=rss2&#038;p=259</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

