Tabber (Problem)

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

 

hackcp19

Betreff: Tabber (Problem)

BeitragMo, Jun 20, 2005 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich hab hier echt ein Problem:


- Ich habe 12 Tabber in einem Fenster.
- Um Unterschiedliche Inhalte anzuzeigen habe ich 12 Panel erzeugt (hier ein Dank an 'DarkAngel' der mich auf die Idee gebracht hat eigentlich wegen Grafikanzeigen)
- Sinn davon ist das ich mehre Objekte einem Panel zu orden kann und dann nur einmal mit HideGadget das eine Panel verstecken muss anstatt alle Objekte
- Dann habe ich mittels auswahl ermittelt welcher Tabber angewählt ist.

BlitzBasic: [AUSKLAPPEN]
Repeat
If WaitEvent()=$803 Then End
If WaitEvent()=$401 And EventSource()=tabber
Select SelectedGadgetItem(tabber)
Case 0 ; Übersicht (1. Panel)
Verstecken() ; Springt hier in eine Function in der alle Panel versteckt werden
ShowGadget UebersichtP ; macht das UebersichtPanel sichtbar
Case 1
.
. usw


Allerdings will das alles nicht so ganz klappen denn wenn ich einen neuen/anderen Tabber anwähle wird der nicht angezeigt. Erst der den ich dann danach anklicke. Quasi wird nur jeder zweite Mausklick ausgeführt. Der dann angezeigte Tabber zeigt dann aber den richtigen Inhalt.

So das ist mein Problem.

Kann jemand helfen/hat eine Idee?

simi

BeitragMo, Jun 20, 2005 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
1. du darfst nicht 2 mal WaitEvent in deinem Programm benutzen....
2. hast du alle Panel gloabal deklariert (wegen der Funktion?)

Hip Teen

BeitragMo, Jun 20, 2005 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
sind es immer die gleichen Tabber oder unterschiedliche? Und wenn du 2 mal das gleiche anklickst, ist es dann sichtbar? Und kannst du auch mehr Code zeigen? Hab keine Lust das nachzubauen Wink
 

hackcp19

BeitragMo, Jun 20, 2005 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
zu 1. Panel sind Global
zu 2. im Programm oder in einer Schleife?
wie mach ich dann die abfrage ob Event $803 eintritt?

es Beginnt mit Tabber (auch Panel 1) und dann zweit er nur jeden zweiten an (gleiche ausgeschlossen).

Also hier der CodeTeil

GBlitzBasic: [AUSKLAPPEN]
lobal GebersichtP,RegierungP,EinnahmenP,SystemeP,PlanetenP,GebaeudeP,IndustrieP,HandelP,ForschungP,RuestungP,VerteidigungP,FlottenP

window=CreateWindow(\"Window\",0,0,1024,740,0,7)
menu1=CreateMenu(\"Spiel\",1,WindowMenu(window))
menu2=CreateMenu(\"Neues Spiel\",2,menu1)
menu3=CreateMenu(\"\",3,menu1)
menu4=CreateMenu(\"Spiel Laden\",4,menu1)
menu5=CreateMenu(\"Spiel Speichern\",5,menu1)
menu6=CreateMenu(\"Spiel Speichern unter\",6,menu1)
menu7=CreateMenu(\"\",7,menu1)
menu8=CreateMenu(\"Daten Übertragen\",8,menu1)
menu9=CreateMenu(\"\",9,menu1)
menu10=CreateMenu(\"Runde Beenden\",10,menu1)
menu11=CreateMenu(\"\",12,menu1)
menu12=CreateMenu(\"Spiel Beenden\",12,menu1)
menu20=CreateMenu(\"Ansicht\",20,WindowMenu(window))

UpdateWindowMenu window

TabberWidth=ClientWidth(window)-20
TabberHeight=ClientHeight(window)-20


tabber=CreateTabber(10,10,TabberWidth,TabberHeight,window)
AddGadgetItem tabber,\"Übersicht\" ; Übersicht / Zusammenfassung aller Daten
AddGadgetItem tabber,\"Regierung\" ; Allianzen, Verträge, Konzerne, Clanis
AddGadgetItem tabber,\"Einnahmen und Ausgaben\" ; Einahmen & Ausgaben Übersicht aus allen Bereichen (Kon
AddGadgetItem tabber,\"Systeme\" ; Das ganze bekannte Universum inkl. Erkundete Systeme
AddGadgetItem tabber,\"Planeten\" ; einzelene Planetenübersicht inkl. Übersicht Verteidigung und Bevölkerung
AddGadgetItem tabber,\"Gebäude\" ; Gebäude Übersicht inkl. Handelskontore
AddGadgetItem tabber,\"Industrie\" ; Rohstoffabbau
AddGadgetItem tabber,\"Handel\" ; Interner Systemhandel, Intergalaxtischer Handel
AddGadgetItem tabber,\"Forschung\" ; Forschungsübersicht und Forschungsprojekte
AddGadgetItem tabber,\"Rüstung und Reparatur\" ; Alles was gebaut rep. usw.
AddGadgetItem tabber,\"Verteidigung\" ; System und Planetenverteidigung innkl. Ringverteid.
AddGadgetItem tabber,\"Flottenverbände\" ; Übersicht über zusammengestellte Armeeen
AddGadgetItem tabber,\"\"

UebersichtP =CreatePanel(0,0,TabberWidth,TabberHeight,tabber,0)
RegierungP =CreatePanel(0,0,TabberWidth,TabberHeight,tabber,0)
EinnahmenP =CreatePanel(0,0,TabberWidth,TabberHeight,tabber,0)
SystemeP =CreatePanel(0,0,TabberWidth,TabberHeight,tabber,0)
PlanetenP =CreatePanel(0,0,TabberWidth,TabberHeight,tabber,0)
GebaeudeP =CreatePanel(0,0,TabberWidth,TabberHeight,tabber,0)
IndustrieP =CreatePanel(0,0,TabberWidth,TabberHeight,tabber,0)
HandelP =CreatePanel(0,0,TabberWidth,TabberHeight,tabber,0)
ForschungP =CreatePanel(0,0,TabberWidth,TabberHeight,tabber,0)
RuestungP =CreatePanel(0,0,TabberWidth,TabberHeight,tabber,0)
VerteidigungP =CreatePanel(0,0,TabberWidth,TabberHeight,tabber,0)
FlottenP =CreatePanel(0,0,TabberWidth,TabberHeight,tabber,0)

label=CreateLabel(\"Ohne 1\",10,10,100,100,UebersichtP)
label=CreateLabel(\"Ohne 2\",10,10,100,100,RegierungP)
label=CreateLabel(\"Ohne 3\",10,10,100,100,EinnahmenP)
label=CreateLabel(\"Ohne 4\",10,10,100,100,SystemeP)
label=CreateLabel(\"Ohne 5\",10,10,100,100,PlanetenP)
label=CreateLabel(\"Ohne 6\",10,10,100,100,GebaeudeP)
label=CreateLabel(\"Ohne 7\",10,10,100,100,IndustrieP)
label=CreateLabel(\"Ohne 8\",10,10,100,100,HandelP)
label=CreateLabel(\"Ohne 9\",10,10,100,100,ForschungP)
label=CreateLabel(\"Ohne 10\",10,10,100,100,RuestungP)
label=CreateLabel(\"Ohne 11\",10,10,100,100,VerteidigungP)
label=CreateLabel(\"Ohne 12\",10,10,100,100,FlottenP)


; HideGadget UebersichtP
HideGadget RegierungP
HideGadget EinnahmenP
HideGadget SystemeP
HideGadget PlanetenP
HideGadget GebaeudeP
HideGadget IndustrieP
HideGadget HandelP
HideGadget ForschungP
HideGadget RuestungP
HideGadget VerteidigungP
HideGadget FlottenP

Repeat
If WaitEvent()=$803 Then End
If WaitEvent()=$401 And EventSource()=tabber
Select SelectedGadgetItem(tabber)
Case 0 ; Übersicht
Verstecken()
ShowGadget UebersichtP
Case 1 ; Regierung
Verstecken()
ShowGadget RegierungP
Case 2 ; Einnahmen und Ausgaben
Verstecken()
ShowGadget EinnahmenP
Case 3
. usw
End Select
EndIf
Forever

Function Verstecken()
HideGadget UebersichtP
HideGadget RegierungP
HideGadget EinnahmenP
HideGadget SystemeP
HideGadget PlanetenP
HideGadget GebaeudeP
HideGadget IndustrieP
HideGadget HandelP
HideGadget ForschungP
HideGadget RuestungP
HideGadget VerteidigungP
HideGadget FlottenP
End Function



simi

BeitragMo, Jun 20, 2005 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
So, ich denke das Problem liegt an WaitEvent.....
WaitEvent wartet, bis ein Event eintritt, dann gibt es etwas zurück, und beim nächsten Aufruf gibt es dann wieder etwas zurück....
Das ist genau das Problem bei dir, das es erst beim 2. mal aktualisiert wird....

Lösung: Am Anfang (der Schleife) WaitEvent in einer Varaiable speichern und dann durch die Variable abfragen...... (wie bei Keyhit)


Noch ein Tipp zur Übersichtlichkeit deines Programmes:
Ich würde alle Panelhandles in einem Array speichern, dann geht alles ein bisschen besser.....
Code: [AUSKLAPPEN]

If we=$401 And EventSource()=tabber
  verstecken()
  ShowGadget SelectedGadgetItem(tabber)
end if
 

hackcp19

BeitragMo, Jun 20, 2005 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
thanksalot

ich bau das jetzt mal ein...

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group