Listbox eintrag über Button verändern

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

 

Schoppy

Betreff: Listbox eintrag über Button verändern

BeitragDo, Jan 27, 2005 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
hab da nen kleines Problem mit meinem Code,
eigentlich fehlt mir nur die lösung wie ich einen Eintrag der in einer Listbox steht ansprechen und dadurch verändern kann, dass ganze über nen Button.
Hier mal meinen Code:

Code: [AUSKLAPPEN]

Global geld=5000

;---------------------------
Dim produktion_haeuser$(0)
Dim produktion_bauzeit_haeuser%(0)
Dim produktion_haeuser_kosten%(0)
;---------------------------
Dim produktion_fabriken$(0)
Dim produktion_bauzeit_fabriken%(0)
Dim produktion_fabriken_kosten%(0)




;-----------------------------------
window=CreateWindow("Window",100,100,300,300,0)


LB=CreateListBox(10,10,200,50,window)

geld_haben = CreateLabel(geld,250,8,50,13,window,0)
SetGadgetLayout geld_haben ,1,0,1,0


haus_bauen_button = CreateButton("haus bauen",10,90,100,20,window,0)
fabrik_bauen_button = CreateButton("fabrik bauen",10,120,100,20,window,0)

Runde_ende=CreateButton("Runde Beenden",10,200,100,20,window,0)



Repeat

Select WaitEvent()

Case $401


;------------------------------------------Haus Bauen

If EventSource()=haus_bauen_button Then

produktion_haeuser$(0)= "Reihenhaus"
produktion_bauzeit_haeuser%(0)= 5
produktion_haeuser_kosten%(0) = 200


AddGadgetItem LB,produktion_haeuser$(0) +"   noch: " + produktion_bauzeit_haeuser%(0) + " Monate"

;berechnung und aktualisierung der kosten
kosten = produktion_haeuser_kosten%(0)
berechnetes_geld= geld - kosten

;geld aktualisieren
geld = berechnetes_geld  SetGadgetText geld_haben,geld


EndIf

;-----------------------------------------Fabrik bauen

If EventSource()=fabrik_bauen_button Then

produktion_fabriken$(0) = "Wollfabrik"
produktion_bauzeit_fabriken%(0) = 8
produktion_fabriken_kosten%(0) = 100

 
AddGadgetItem LB,produktion_fabriken$(0) +"   noch: " + produktion_bauzeit_fabriken%(0) + " Monate"

;berechnung und aktualisierung der kosten
kosten = produktion_fabriken_kosten%(0)
berechnetes_geld= geld - kosten

;geld aktualisieren
geld = berechnetes_geld  SetGadgetText geld_haben,geld


EndIf


;------------------------------------------Runde Beenden

If EventSource()=Runde_ende Then

;Berechnung der Zeit
berechnung=produktion_bauzeit_haeuser%(0)
neue_zeit=berechnung - 1
produktion_bauzeit_haeuser%(0) = neue_zeit


RemoveGadgetItem LB, produktion_haeuser$(0)
RemoveGadgetItem LB, produktion_fabriken$(0)

AddGadgetItem LB,produktion_haeuser$(0) +"   noch: " + produktion_bauzeit_haeuser%(0) + " Monate"
AddGadgetItem LB,produktion_fabriken$(0) +"   noch: " + produktion_bauzeit_fabriken%(0) + " Monate"



EndIf
;-----------------------------------------------------


End Select


If WaitEvent()=$803 Then End
Forever



Jetzt möchte ich es erreichen das wenn ich den Button "Runde Beenden" drücke, bei den Einträgen in der LB der "monats" wert jeweils um 1 verringert.
Wie kann ich dass Gadget ansprechen ???

Hat vielleicht jemand nen Code ?

Danke für euere Hilfe !!![/code]

DA

BeitragDo, Jan 27, 2005 23:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,

Also ich glaube ich habe eine Lösung für dein Problem.
Also ich würde sagen als erstes muss du alle einträge zählen damit du die nummern der einträger erfährst. Dan speicherst du die Zahl ab wie viele Einträge es gibt. Danach muss du nur noch mit GADGETITEMTEXT den Text von jedem Eintrag lesen und wieder verändern. Als code würde das dan so aussehen.

Code: [AUSKLAPPEN]

zaehler = COUNTGADGETITEMS(LB)

for x = 0 to zaehler
txt = GADGETITEMTEXT(LB, x)
txt = txt + 1
if txt = 12 then txt = 1
MODIFYGADGETITEM LB, x, txt
next


So ich glaube das müsste klappen. Wink

PS: Ich habe auch noch ne funktion rein gemacht das du nicht über 12 Monate gehst. Wink

Thx
DarkAngel
Deutscher Blitz Basic Chat
 

Schoppy

BeitragDo, Jan 27, 2005 23:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
danke für deine Hilfe die Idee ist nicht schlecht, aber folgendes problem ergibt sich:

In der Variable txt$ wird durch GADGETITEMTEXT die ausgabe die auch in er LB steht gespeichert.

Durch den Befehl : txt$=txt$ + 1
wird hinten an der zeile einfach ne 1 angehängt.

Gruss

DA

BeitragFr, Jan 28, 2005 14:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,

Da hast du einen Fehler gemacht. Guck mal in meinen Text. Habe ich dort die variable txt als String deklaiert?
Also mit $?
Wink

Thx
DarkAngel
Deutscher Blitz Basic Chat

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group