Bierviltjes

Hints voor de workshop deelnemers

Bierviltjes

Berichtdoor Rob » do jan 17, 2008 6:56 pm

In de aanloop tot de Basic-cursus in Amstelveen schreef Gordon:

[quote]Bierviltjes probleemstelling:
Een barkeeper heeft voor elk van zijn klanten aan de bar een bierviltje
neergelegd. Elk bierviltje heeft hij voorzien van tekens waardoor
hij (de barkeeper) precies bij wie het viltje hoort, dus aan welke klant het viltje
gekoppeld is.

Op het viltje worden de aantallen biertjes, jonge jenevers en porties kaas die door
de biervilt-klant (de vaste stamklanten) worden besteld, aangestreept.
Aan het einde van de avond wordt afgerekend of het viltje gaat in de kast
tot de volgende avond.

Dit wordt ons eerste bestanden programma.[/quote]

Hierbij m'n beginnetje voor zo'n programma (als bijlage). Het is niet af. Aan zeker vier
onderdelen moet nog gesleuteld worden:
- het wegschrijven van de klanten en hun verteringen in een logboek
- de klanten zijn nu in het programma ingebakken (net als de soorten consumpties, maar
dat lijkt me minder vervelend). Idee: invoeren en in een listbox zetten
- prijzen van de consumpties bepalen. Geen probleem, eigenlijk
- logica van de code nalopen. Niet branch/subroutine door elkaar gebruiken. Kijken of gebruik
van NOTICE bij afrekenen niet mooier kan en of test van buttonhandle$ (die laat zien voor welke
klant een consumptie is) te vereenvoudigen is.

Kijk er eens naar.
P.S. Ik gebruikt Just Basic i.p.v. Liberty

groeten, rob[attachment=0]viltjes1.bas[/attachment]
Bijlagen
viltjes1.bas
(4.02 KiB) 213 keer gedownload
Rob
 
Berichten: 7
Geregistreerd: do nov 22, 2007 3:53 pm
Woonplaats: Amstelveen

Re: Bierviltjes

Berichtdoor Rob » do jan 17, 2008 7:11 pm

Het ontwerp-programma viltjes.bas staat intussen met enige vertraging in het forum. Ik had zo gauw niet in de gaten dat ik drie keer op een knop moest drukken voordat er iets gebeurde. Met alleen 'opslaan' verscheen het bericht niet in het forum. Alweer iets geleerd.

Intussen heb ik een probeersel gemaakt voor het opslaan van gegevens uit een programma in een logboek. Eigenlijk heel eenvoudig. In viltjes.bas had ik al aangekondigd dat ik graag de meest recente gegevens bovenaan wil hebben. Met append komt het nieuwste achteraan.

Oplossing: oud logboek kopiëren naar tijdelijk bestand, logboek wissen, de nieuwste gegevens wegschrijven en daar achter de oude zooi terugkopiëren.

Het probeersel stuur ik mee: logboek.bas

groeten, rob bishoff
[attachment=1]logboek.bas[/attachment]
Bijlagen
logboek.bas
(2.37 KiB) 201 keer gedownload
Rob
 
Berichten: 7
Geregistreerd: do nov 22, 2007 3:53 pm
Woonplaats: Amstelveen

Re: Bierviltjes

Berichtdoor Gordon » vr jan 18, 2008 11:11 pm

Hallo Rob,

Goed werk.
Ik dacht zelf aan een soortgelijk programma.


Gordon
Bijlagen
viltjeg1.bas
(1.95 KiB) 206 keer gedownload
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Bierviltjes

Berichtdoor Rob » za jan 19, 2008 6:04 pm

Het viltjes-programma groeit.

In een tweede versie heb ik de zaak een beetje gestroomlijnd. Zie viltjes2.bas.

In een derde versie worden de klanten in een listbox gezet. Verder wordt een logboek bijgehouden van openstaande rekeningen. Zie viltjes3.bas. (Ik heb nog een beknopt probeersel voor werken met listbox op papier staan, maar als bestand is dat per ongeluk gewist; als er toch belangstelling voor is zou ik het wel weer kunnen intikken...)

groeten,
rob bishoff
Bijlagen
viltjes3.bas
(10.42 KiB) 208 keer gedownload
viltjes2.bas
(5.78 KiB) 186 keer gedownload
Rob
 
Berichten: 7
Geregistreerd: do nov 22, 2007 3:53 pm
Woonplaats: Amstelveen

Re: Bierviltjes

Berichtdoor Abcott » zo jan 20, 2008 10:54 pm

Hallo

Ik ben zo vrij geweest ook iets te programmeren.
Het is nog niet af. Het is een combinatie van het werk van
Rob en Gordon.

Succes met je "workshop"

Abcott
Bijlagen
ViltjesAbcott.zip
(811.67 KiB) 196 keer gedownload
Avatar gebruiker
Abcott
 
Berichten: 115
Geregistreerd: wo mei 25, 2005 9:58 pm

Re: Bierviltjes

Berichtdoor Rob » do jan 24, 2008 8:18 pm

Het kleurige programma van Abcott een beetje bekeken. Twee DLL-routines heb ik er even uit moeten slopen, want dat lukt niet met Just Basic. Wat doen die routines?

M'n eigen programma loopt nu ongeveer zoals me voor ogen stond. Er zullen nog wel bugs inzitten, maar die zijn me nog niet opgevallen. Versie 0.4 en een probeersel voor het inlezen van een logboek zitten hierbij als bijlagen.

groeten, rob bishoff
Bijlagen
viltjes4.bas
(18.76 KiB) 204 keer gedownload
loglezen.bas
(3.24 KiB) 192 keer gedownload
Rob
 
Berichten: 7
Geregistreerd: do nov 22, 2007 3:53 pm
Woonplaats: Amstelveen

Re: Bierviltjes

Berichtdoor Abcott » za jan 26, 2008 3:50 pm

Hallo Rob,

Jij vroeg wat die twee DLL's precies doen.
Hier is een voorbeeld in LibertyBASIC:
Code: Selecteer alles

nomainwin
loadbmp "achtergrond","cafeshop1.bmp"

open "" for graphics as #1

#1 "down"
#1 "drawbmp achtergrond"
#1 "color green"


#1 "place 40 40"
#1 "\ hallo"

'-------------------------------------------------

    hDC=GetDC(hwnd(#1))
    call SetBkMode hDC, 1
    call ReleaseDC hwnd(#1),hDC


#1 "place 40 80"
#1 "\ hallo"


wait



'-------------------------- subs for text on backgrounds
Sub SetBkMode hDC, flag
'1=transparent
'2=opaque
CallDLL #gdi32, "SetBkMode",hDC As long,_
flag As long, RESULT As long
End Sub

Function GetDC(hWnd)
CallDLL #user32, "GetDC",hWnd As long,_
GetDC As long
End Function

Sub ReleaseDC hWnd, hDC
CallDLL#user32,"ReleaseDC",hWnd As long,_
hDC As long,result As long
End Sub


Als je deze listing in LB runt, dan zie je dat de tweede "hallo" tekst
in de achtergrond wegvalt. Dat komt omdat de pixels tussen de letters
van de tekst een doorzichtige achtergrond hebben (SetBkMode = 1)

De gebruikte DLL's zijn standaard open bij LB. Het zijn standaard
Windows DLL's.

Abcott
Avatar gebruiker
Abcott
 
Berichten: 115
Geregistreerd: wo mei 25, 2005 9:58 pm

Re: Bierviltjes

Berichtdoor Gordon » za feb 09, 2008 11:16 pm

Hallo Rob,

Je merkt uit het antwoordt van Abcott dat er geen DLL geopend werd.
Enkele DLL's (waaronder de USER32.DLL) worden standaard door LB geopend.
Deze DLL's blijven geopend totdat LB wordt afgesloten.

Omdat jij JB (JustBASIC) gebruikt, zul je je toevlucht moeten zoeken tot
de backcolor "functie" en de place "functie". De teksten kun je ook in JB
met het \ teken tonen.

Een andere oplossing het gebruik van statictext boxen.

Gordon.
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am


Keer terug naar Workshop Windows leren programmeren met Liberty BASIC

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron