Palmclub logo  

Home | Nieuws | Reviews | FAQs | Tips | Shop | Channel Navigator | Nieuwsbrief | Forums

Review: Handheld Basic++

Door Bram Klik op de plaatjes voor een vergrote versie
Publicatiedatum: 24 januari 2004


De ontwikkelomgeving

Een database maken

Debuggen met POSE

Workshop figuur 1 - opstartscherm

Workshop figuur 2 - nieuw project

Workshop figuur 3 - project gestart

Workshop figuur 4 - controls toevoegen

Workshop figuur 5 - ontwerp klaar

Workshop figuur 6 - code
Handheld Basic++ is een ontwikkelomgeving voor het PalmOS. Het is een zogenaamde RAD-tool, wat betekent dat het ontwikkelen van een programma erg snel gaat. RAD staat voor Rapid Application Development. Er zijn ook andere RAD tools voor het PalmOS, bijvoorbeeld NS Basic, Satellite Forms en Appforge. Het nadeel van deze tools is dat er een extra programma (runtime) geïnstalleerd moet worden, dat de code uitvoert. Dit zorgt ervoor dat een programma onnodig groot en bovendien erg traag wordt. HB++ combineert RAD met een native PalmOS applicatie. Hierdoor is de snelheid van een programma vergelijkbaar met een programma geschreven in een ingewikkelde (lagere) taal als C.

Uiterlijk

Nog meer dan NS Basic lijkt HB++ op Microsoft Visual Basic. Het scherm is opgedeeld in verschillende delen:
  • Bovenaan zit het menu, en knoppen om dingen met acties die je vaak nodig hebt, zoals een knop om op te slaan, en een knop om het programma te testen.
  • Links zit een balk om alle controls toe te voegen. Dit zijn de dingen die je op het scherm kunt zetten. Bijvoorbeeld een knop en een scrollbar.
  • Rechts zit een gestructureerd overzicht van alle onderdelen van het programma. Bijvoorbeeld de schermen en de databases.
  • Daaronder, ook rechts, zit een tabel waarin je de eigenschappen van een control kunt wijzigen. Bijvoorbeeld of hij zichtbaar moet zijn, en welk lettertype gebruikt moet worden.
  • Onderin zit een output venster. Deze laat fouten en waarschuwingen zien als je het programma maakt, en debug informatie als het programma een fout bevat tijdens het uitvoeren onder POSE (de PalmOS emulator).
  • Het middendeel van het scherm is opgedeeld in 2 delen. één deel met hoe het programma eruit komt te zien, en één deel om de code in te schrijven.
Helaas krijg ik het niet voor elkaar de schermonderdelen op een andere plek te zetten. Wel kan ik de grootte van elk onderdeel aanpassen.

VFS

VFS, het bestandssysteem op geheugenkaartjes, wordt ook ondersteund. Het schrijven van een applicatie die bestanden op een geheugenkaart kan bewerken is erg ingewikkeld, maar gelukkig staat er op de website voorbeeldcode.

Complexiteit

Hoewel het maken van een eenvoudig programma erg snel gaat, zou het jammer zijn als dit pakket slechts zou limiteren tot het maken van simpele programma’s. Waar ik bij Satellite Forms en PDA Toolbox aanliep tegen problemen bij het maken van een ingewikkeld programma, biedt HB++ zelf al voldoende mogelijkheden een redelijk ingewikkeld programma te maken. Wanneer je meer wilt kun je de PalmOS API’s en libraries als MathLib aanspreken. Om nóg snellere applicaties te schrijven, kun je gebruikmaken van ARMlets. Dit zijn stukjes code die alleen lopen op ARM-processors (PalmOS 5 en hoger). Nadeel is dat het niet draait op (veelal oude) apparaten zonder ARM-processor, voordeel is dat het erg snel loopt op de nieuwste modellen. Hierdoor kun je een complex stukje code, dat erg lang bezig is om iets voor elkaar te krijgen, een paar keer sneller laten lopen.
Volgens de makers kun je zelfs een eigen launcher schrijven, dus de mogelijkheden zijn eindeloos.

Connectiviteit

HB++ kan overweg met TCP/IP sockets. Hiermee kun je alles met een netwerk doen, bijvoorbeeld e-mailen of internetten. Ook kun je gebruik maken van de connector, wat handig is voor barcodescanners. Voor multiplayer games kun je gebruik maken van infrarood. SMS’jes sturen via een GSM kan ook, met behulp van de telefoonfuncties. Elke datastroom kan versleuteld worden.
Speciaal voor grote bedrijven worden er bij de enterprise editie twee extra producten meegeleverd: PalmSQL en PalmServer, waarmee je vanaf verschillende Palms met dezelfde database kunt werken.

Databases

HB++ maakt het werken met een database erg eenvoudig. (Voor iemand die met ‘echte’ databases heeft gewerkt: een database op een Palm is slechts een table.) Met enkele klikken voeg je een database toe, waarna je de veldnamen en typen kunt kiezen. De typen byte, boolean, integer, long, single, double, date, string, bitmap en streammemory zijn aan een veldnaam te koppelen. Verder kun je kiezen hoe dit veld heet bij synchronisatie en kun je commentaar over elk veld kwijt.
Het openen van een database kan op twee manieren: de hele database in één keer, of slechts een deel. Hierbij kun je queries gebruiken die een beetje op SQL lijken (voor de kenners: slechts de WHERE en ORDER BY closules kunnen worden ingevoerd, waarbij er slechts op 2 rijen gesorteerd, en op 2 rijen een voorwaarde gezet kan worden. Het linken van 2 tables kan niet in 1 query). Het is niet nodig de database zelf met je applicatie mee te geven, want hij kan hem zelf aanmaken wanneer hij hem nodig heeft. Het openen van een database van een ander programma kan ook. Helaas zitten er nog geen functies in om de ingebouwde applicaties (Datebook/Calendar, Contacts, ToDo en MemoPad) te openen en te bewerken, maar die zijn aangekondigd voor versie 1.04.

Visual Basic

Visual Basic is een taal ontwikkeld door Microsoft. In het vroege MS-DOS tijdperk waren er enkele Basic programmeertalen. Hiermee kon je met slechts een paar verschillende commando's programmeren. Dat was nieuw, want voorheen moest je een taal als C of Pascal leren. Helaas was het maken van een programma met menu's erg complex, dus moest er iets nieuws gevonden worden. Dit kwam in 1991 als Visual Basic 1 (code naam 'Thunder'). Hiermee kon je met een muis onderdelen naar het scherm slepen, om zo een heel programma te 'tekenen'. Omdat de geschreven programma's langzaam waren, moest aanvankelijk niemand er iets van hebben. We zijn inmiddels 7 versies verder en Visual Basic is de meest gebruikte programmeertaal ter wereld.

Conduits

Wanneer je een mooi programma maakt, is het leuk wanneer je hier ook een desktopversie bij kunt maken die kan synchroniseren met de Palm. HB++ levert een conduit generator, waarmee de data van de databases op de Palm tijdens het synchroniseren omgezet worden in databases van het dBase V of Microsoft ADO formaat. Hoewel die eerste makkelijk te openen is met MS Access, is het mooier hier nog een echte desktopversie bij te maken, zodat de gebruiker geen MS Access nodig heeft. HB++ zelf biedt hiervoor geen functionaliteit, waardoor je dus bent aangewezen op Visual Basic, Visual C++, of een andere taal waarmee je dit databaseformaat kunt uitlezen en veranderen.

Programmeren

Programmeren in HB++ gaat heel eenvoudig. Binnen een paar uur heb je al een vrij ingewikkeld programma, waar je in een taal als C dagen over gedaan zou hebben. De taal en syntaxis lijkt heel sterk op Visual Basic (zie kopje 'Visual Basic'). Tijdens het ontwikkelen kun je, zoals op het plaatje te zien is, met behulp van POSE kijken of het programma werkt. Door een verbinding tussen POSE en HB++ kun je precies zien waar het fout gaat. Dit zit ook bij andere ontwikkelomgevingen, zoals NSBasic en CodeWarrior.

Support

Bij HB++ zit een uitgebreide helpfunctie, waar heel veel informatie te vinden is. Kom je er toch niet uit, dan kun je hulp vragen op het actieve forum, of voorbeeldcode bestuderen die te vinden is op de website. Vaak krijg je op het forum binnen een uur antwoord. Wanneer je de enterprise editie koopt, krijg je support via e-mail. De support via het forum lijkt mij echter meer dan voldoende.

Systeemeisen

Een Pentium 233MHz met Windows 95/98, Windows NT, Windows 2000 of Windows XP is nodig om het programma goed te draaien. Alle Palms met PalmOS 3.0 of hoger worden ondersteund.

Trial versie

Er is een gratis demoversie te downloaden. Hier kun je alle functies mee gebruiken, het programma heeft geen tijdslimiet van 30 dagen. Echter, wanneer je een programma opstart dat gemaakt is met de trialversie, zie je na verloop van tijd een pop-up elke keer als je het opstart, die zegt dat het programma ‘Powered by HB++ Evaluation Version’ is, en dat het slechts gebruikt kan worden ‘For non commercial use only’. Na een druk op OK kun je gewoon met het programma werken, maar op den duur wordt het wel irritant, zeker wanneer je het programma vaak nodig hebt.

Conclusie

Handheld Basic++ is een erg uitgebreid pakket, waarmee in weinig tijd snelle programma’s geschreven kunnen worden, zonder daarvoor een moeilijke programmeertaal te hoeven leren. De ondersteuning is prima en omdat de code veel weg heeft van Visual Basic is het erg makkelijk te leren. Mocht je programmeren voor het PalmOS niks vinden, dan kun je de opgedane kennis altijd nog gebruiken om te programmeren in Visual Basic. Helaas is de prijs voor dit pakket aan de hoge kant, maar met de trial versie heb je alle tijd en vrijheid om te kijken of het wat voor je is.

Pluspunten

  • Native Palm applicaties
  • Uitgebreide database ondersteuning
  • Lijkt heel erg op Visual Basic
  • Support
  • Conduit generator
  • Connectiviteit
  • Uitbreidbaarheid
  • VFS ondersteuning

Verbeterbaar

  • Prijs
  • Makkelijk aanspreken interne applicaties (komt in versie 1.04)
  • Irritante banner bij programma’s gemaakt met demo versie

Specificaties

  • Verkrijgbaar bij: Peter Holmes Consulting
  • Uitvoeringen: Professional en Enterprise
  • Werkt met PalmOS 3.0 of hoger
  • Prijs: € 590 en € 990
  • Producent: Peter Holmes Consulting

Programmeerworkshop: Het ontwikkelen van een simpele applicatie

Bij het opstarten komen we bij het startup-scherm. Kies hier voor een minimal project. Kies als naam ‘Palmclub’ en kies een pad om je programma op te slaan. Het verdient de voorkeur om elk project in een andere map op te slaan, zodat het geheel overzichtelijk blijft. Elk programma heeft een verschillende Creator ID nodig. Wanneer je een applicatie gaat verspreiden, is het handig om hem te registreren via de knop ‘find a creator ID’, zodat je zeker weet dat niemand een applicatie zal schrijven met dezelfde creator ID. Voor deze tutorial heb ik het ID ‘Pc32’ geregistreerd. Vul dat zonder aanhalingstekens in en let op de hoofdletters. Klik dan twee keer op Next, en dan op Finish.
Je hebt nu een groot grijs vlak, met daaromheen een paar schermpjes, zoals in figuur 3. Klik op het plusje voor ‘Forms’ (bij de blauwe pijl in de figuur) en dubbelklik dan op frmMain. Links staat nu het ontwerp van je programma, rechts de bijbehorende code. Omdat we nog geen controls en code hebben toegevoegd, zijn beide schermen nog erg leeg.

Voeg nu een field toe. Een field is een invulbalkje met stippeltjes eronder, zoals je die ook vindt in andere programma’s. Je kunt het field vinden in de linker balk (toolbox) als vierde van boven (waar ‘abc’ in staat). Klik deze 1x aan en klik dan 1x in het ontwerpdeel van het programma, waar het rooster van stippen staat. Op figuur 4 zie je met de blauwe pijl de field-control aangegeven en met rood de plaats waar hij neergezet zou kunnen worden. Je kunt hem naar de goede plaats slepen, maar de locatie valt nauwkeuriger aan te geven in het properties window. Het deel dat met groen is aangegeven geeft de lokatie en de breedte van het veld aan.

Vul in:
Left: 20
Top: 32
Width: 15

Voeg nog een field control toe, met de volgende properties:
Left: 50
Top: 32
Width: 15

Voeg nu een label toe (zwarte pijl in figuur 4) en geef die de volgende eigenschappen:
Left: 40
Top: 32

De breedte (width) is niet in te stellen. Deze hangt af van de tekst die erin staat. Deze tekst staat in de eigenschap ‘caption’. Verander deze tekst naar ‘x’ (zonder aanhalingstekens).
Voeg nu zelf een label toe met left=70, top=32 met de tekst ‘=’. Het laatste label geven we de eigenschappen left=80, top=32, en tekst=’antwoord’. Het laatste control wordt de button, die links tussen het field en de caption inzit, en waar ‘ok’ op staat. Stel in: left=55, top=145, en width=50.
Omdat we later de twee fields en het caption willen gebruiken in het programma, geven we deze een logische naam. Om het eerste field een naam te geven, klik je in het ontwerpscherm op het meeste linkse stippellijntje. Nu kun je de properties wijzigen. Zet Name (de bovenste) op ‘factor1’ (zonder aanhalingstekens). Noem de tweede stippellijn factor2, het laatste label (waar ‘antwoord’ staat) ‘antwoord’ en de button ‘bereken’. Als het goed is, heb je nu hetzelfde staan als op figuur 5.

Nu komt het moeilijkste: de code toevoegen.
Het programma moet dingen gaan doen zodra iemand op 'bereken' klikt. Om code aan de knop bereken toe te voegen, klik je eerst met de linkermuisknop op 'bereken', om de knop te selecteren. Klik er daarna met de rechtermuisknop op en klik op de bovenste optie (Click()). In het rechterscherm wordt nu een klein stukje code toegevoegd:

Private Sub bereken_Click()

End Sub

Hiertussen kun je de code toevoegen. Allereerst moet het programma weten wat er op de stippellijntjes staat. Omdat stippellijntjes een eigenschap ‘text’ hebben, waarin de tekst opgeslagen zit wat er ingetypt is, moet je die eerst in je code krijgen. Deze sla je op in variabelen, die je met dim bekend maakt. De code hiervoor ziet er zo uit:

dim eerstefactor as Long
dim tweedefactor as Long
eerstefactor=factor1.Text
tweedefactor=factor2.Text

Dit zet je op de lege regel tussen wat er al staat. Vervolgens wil je 'eerstefactor’ en ‘tweedefactor’ vermenigvuldigen, waarbij het antwoord wordt weergegeven in het label. Dit doe je als volgt:

dim hetantwoord as Long
hetantwoord = eerstefactor * tweedefactor
antwoord.Caption = hetantwoord

Zet deze code vlak voor End Sub.

Het programma werkt nu, en als je het compileert (omzet tot een Palm programma), zou het moeten werken. Kies in het menu Project voor Build. Kijk onderaan in het debug window of hij een fout ontdekt. Zoja, repareer deze dan. Een voorbeeldfout:
C:frmMain.hbf (8) : error #2201 : identifier 'antwood' is not defined
Dit betekent dat ik op regel 8 een keer ‘antwood’ heb gebruikt. Wanneer ik dat verander naar ‘antwoord’, doet hij het weer.
Wanneer alles foutloos gaat, kijk dan in de map waar je het project hebt opgeslagen naar Palmclub.prc. Dit kun je synchroniseren naar je Palm, en klaar is het. 28kb groot.

In plaats van al die regels code is dit korter:
antwoord.Caption=CInt(factor1.Text) * CInt(factor2.Text)

Bij het opstarten staat er ‘antwoord’. Dit is niet mooi. Wanneer je de caption weg probeert te halen, en het programma test, zie je dat er helemaal geen antwoord komt. Dit komt omdat het niet breed genoeg is. Het is blijkbaar nodig er flink wat tekst in te proppen, om hem breed te maken. Maar deze tekst willen we niet zien als we het programma opstarten. Klik daarom 1x op de stippeltjes, zodat we het hele scherm geselecteerd hebben. Klik er dan met de rechtermuisknop op, en kies voor Load(). Voeg hier de volgende code toe:

antwoord.Caption=""

Als het goed is, ziet alles er nu uit als in figuur 6. Compileer nogmaals, en zet de .prc op je Palm. Klaar is kees.

Beoordeling

Gebruik Beoordeling Palmclub: Uitstekend
Uiterlijk Beoordeling Palmclub: Goed
Prijs Beoordeling Palmclub: Matig

Eindoordeel Beoordeling Palmclub: Goed

Relevante links

Als je dit een leuk review vond, ben je misschien ook geïnteresseerd in:

Vragen, opmerkingen of discussie?

Via deze thread in het forum

Home | Nieuws | Reviews | Tips | Shop | Channel Navigator | Nieuwsbrief | Forums

© Copyright Nederlandse Palmclub Stichting   Over deze site

iCulture | Alles over Google Android