Archive for the ‘Gamblog’ Category

Text entry fields, Objects and listboxes

Creation and representation of objects on screen
Use case:

Text entry in TextBox field
Validation of entry
Creation of object from entry
Creation of item list that represents object

The objects themselves are stored in an array of objects: hArrObjcets AS NEW Object[]
The presentation happens with the name as string sName in a listbox lsbxObjects
Text entry

Jump to text box if appropiate; […]

Rekenen met tijd in Gambas (uren, dagen)

Om tijd vast te leggen op het moment zelf: Now() geeft de huidige datum+tijd. Bekijk:
DEBUG Now()
Toekennen aan een variabele:

PRIVATE dStartuptime AS Date
dStartuptime = Now()
DEBUG Format$(dStartuptime, “hh:nn:ss”)

De debug regelt toont de variabele weergegeven in opgegeven patroon, waarbij “n” staat voor minuten (omdat de m al staat voor maand in het dagpatroon: yy-mm-dd).
Rekenen met […]

Automatisch uitlijnen van schermobjecten met HBox, VBox, HPanel, VPanel

De keuze in de bouwdoos:

Een aantal op het scherm gezet en gevuld met een eenvouidig text veld:

Ziet er zo uit als programma draait:

Volledige beelden onder elkaar:

Hoe data in een cel steken van een TableView

Zet op een Form bv Form1 een tabel met de eigenschap TableView, bv tbvwFill.
Het gemakkelijkst is waarschijnlijk om de tabel te initialiseren door code die je oproept bij het openen van de Form waar ze in staat:
PUBLIC SUB Form_Open()

initTableView()

END
Je moet dan een procedure daarvoor maken:
PUBLIC SUB initTableView()

Daarin moet je zeker bepalen wat de […]

Standaard leeg project

Project Type: Graphical application.
Options:

Internationalisation
Database access
Settings files management

Name: EmptyProject
Title: Empty Project
FMain: Menu met

File: Quit

Help: About, Changes, License

Form_Open: zet programma titel en versie.
doClose(): aangeroepen bij Menu/Quit (of scherm “Exit” button); kan afsluitende code aanroepen (wegschrijven toestand)
FAbout: About logo en tekst: naam plus versie.
FLicense: Toont License.txt
FChanges: Toont Changes.txt
Misschien nog een “test” menu-item dat alleen verschijnt als de conf […]

TabStrip: hoe tab-bladen bijmaken en aanspreken?

Een tabstrip zit in de Toolbox onder de tab “Container”.
Eens op het werkvlak getekend heeft hij slechts 1 tab: Tab0.
Als je terug naar de Toolbox gaat zoeken om tab-bladen bij te maken vind je dat daar niet.
Als je op het TabStrip rechtsklikt om tab-bladen bij te maken vind je alleen “Move Tab”, niet “Create”

Om […]

Columnview: kolomtitel invullen, item invullen

Nieuw formulier FMain, daarop een columnview “cvTwoCols”.
Eerst moeten de dimensies opgegeven worden met Columns.Count.
Dan kunnen de titels ingevuld worden.
Dan kunnen lijnen bijgemaakt worden met een zelfgekozen sleutel waarmee een opvraging kan gebeuren.
Tenslotte kan
- genavigeerd worden met MoveTo,
- een waarde gewijzigd,
- of de waarde in een bij de lijn horende kolom ingevuld worden.
PUBLIC SUB btFillColView_Click()
[…]

html rapport weergeven of printen

Uitvoer kan je eenvoudig doen in html-bestanden, die je lokaal schrijft en opent met een browser.
Maak een module met alle printonderdelen, en met bovenaan
PUBLIC bToPrint AS Boolean

PRIVATE hFile AS File

schrijf een bestand
OPEN sFilename FOR WRITE CREATE AS #hFile
pushHeader(bToPrint)

dat je begint met een kop die zo […]

Universele product selectie op scherm

Ik ben op zoek naar een manier om een redelijk “universeel” inzetbare productselectie te doen op het scherm.
Voorlopig denk ik aan:

  • Het scherm toont een aantal knoppen om produkten te kiezen
  • produkten komen uit databank
  • aantal produkten ligt niet vast
  • hoeveel produkten op scherm tonen? Wijzigbaar aantal?
  • een knop per produkt, met produktnaam of afbeelding
  • een display waar informatie over de selectie komt
  • een methode om er een “aantal” selecties aan te koppelen?
  • een aktie-log in de vorm van een “rolletje” vgl kassa’s?

(werk in uitvoering in deze dir ; laatste versie als ProductSelect-snapshot.tar.gz)

Foxpro timestamp data leesbaar maken

Een uit Foxpro ingevoerde tabel bevat een kolom met “timestamps”; het is een getal dat in Foxpro gebruikt wordt om te kijken in welke volgorde de records gemaakt (of gemanipuleerd) werden; een vergelijking tussen de getallen levert een aantal seconden verschil op. Hoe dit getal bruikbaar maken, bv door het naar een leesbare datum om te zetten?

Bv: het getal : 487768695 zou op het moment van bewaren het het aantal seconden voorstellen dat verstreken is sinds Foxpro’s referentietijd, een soort seconde nul in het begin van 1980.

Hier komen de Visual Basic Compatibility functies goed van pas.
De component gb.vb bevat maar een paar functies, niet toevallig met datumfuncties, en meer bepaald om tijd bij te tellen of af te trekken van een datum: