Ein Kleines Problem mit ListIconGadget!

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

Ein Kleines Problem mit ListIconGadget!

Beitrag von FISCHAUGE »

Und zwar
Ich will aus diesem ListIconGadget

Code: Alles auswählen

ListIconGadget(38,420,100,200,200,"MAP",115,#PB_ListIcon_MultiSelect|#PB_ListIcon_GridLines)
AddGadgetColumn(38,1,"MAPTYP",80)
AddGadgetItem(38,-1,"Southe France"+Chr(10)+"TDM/FFA")
AddGadgetItem(38,-1,"Destroyed Village"+Chr(10)+"TDM/FFA")
AddGadgetItem(38,-1,"Remagen"+Chr(10)+"TDM/FFA")
AddGadgetItem(38,-1,"The Cross Roads"+Chr(10)+"TDM/FFA")
AddGadgetItem(38,-1,"Snowy Park"+Chr(10)+"TDM/FFA")
AddGadgetItem(38,-1,"Stalingrad"+Chr(10)+"TDM/FFA")
AddGadgetItem(38,-1,"Algiers"+Chr(10)+"TDM/FFA")
AddGadgetItem(38,-1,"The Hunt"+Chr(10)+"OBJ")
AddGadgetItem(38,-1,"V2 Rocket"+Chr(10)+"OBJ")
AddGadgetItem(38,-1,"Omaha Beach"+Chr(10)+"OBJ")
AddGadgetItem(38,-1,"The Bridge"+Chr(10)+"OBJ")
Mit Hilfe von GetgadGetText abfrage welche Auswahl markiert wurde und diese dann in eine Datei schreiben! Wenn ich eines Auswähle klappt es wunderbar, sobald ich aber anfange 2 Titel aus der Liste zu Markieren mit [STRG] schreibt er sie nicht mehr in die Datei!


Code: Alles auswählen

WriteString("MAP")
If GetGadgetText(38) = "Southe France" 
WriteString (" " +Chr(34)+"dm/mohdm1"+Chr(34)) 
EndIf
If GetGadgetText(38) = "Destroyed Village" 
WriteString (" " +Chr(34)+"dm/mohdm2"+Chr(34)) 
EndIf
If GetGadgetText(38) = "Remagen" 
WriteString (" " +Chr(34)+"dm/mohdm3"+Chr(34)) 
EndIf
If GetGadgetText(38) = "The Cross Roads" 
WriteString (" " +Chr(34)+"dm/mohdm4"+Chr(34)) 
EndIf
If GetGadgetText(38) = "Snowy Park" 
WriteString (" " +Chr(34)+"dm/mohdm5"+Chr(34)) 
EndIf
If GetGadgetText(38) = "Stalingrad" 
WriteString (" " +Chr(34)+"dm/mohdm6"+Chr(34)) 
EndIf
If GetGadgetText(38) = "Algiers" 
WriteString (" " +Chr(34)+"dm/mohdm7"+Chr(34)) 
EndIf
If GetGadgetText(38) = "The Hunt" 
WriteString (" " +Chr(34)+"obj/obj_team1"+Chr(34)) 
EndIf
If GetGadgetText(38) = "V2 Rocket" 
WriteString (" " +Chr(34)+"obj/obj_team2"+Chr(34)) 
EndIf
If GetGadgetText(38) = "Omaha Beach" 
WriteString (" " +Chr(34)+"obj/obj_team3"+Chr(34)) 
EndIf
If GetGadgetText(38) = "The Bridge" 
WriteStringN (" " +Chr(34)+"obj/obj_team4"+Chr(34)) 
EndIf
Meine frage jetzt mach ich etwas falsch oder gibt es eine andere lösung für so etwas?


danke!
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

GetGadgetText() ist laut Hilfe garnicht mit einem ListIconGadget() vereinbar... vielleicht solltest du es so machen:

Code: Alles auswählen

For i = 0 To CountGadgetItems(38)-1
  If GetGadgetItemState(38,i) & #PB_ListIcon_Selected
    WriteString("MAP") 
    If GetGadgetItemText(38,i,0) = "Southe France" 
      WriteString (" " +Chr(34)+"dm/mohdm1"+Chr(34)) 
    EndIf 
    If GetGadgetItemText(38,i,0) = "Destroyed Village" 
      WriteString (" " +Chr(34)+"dm/mohdm2"+Chr(34)) 
    EndIf 
    If GetGadgetItemText(38,i,0) = "Remagen" 
      WriteString (" " +Chr(34)+"dm/mohdm3"+Chr(34)) 
    EndIf 
    If GetGadgetItemText(38,i,0) = "The Cross Roads" 
      WriteString (" " +Chr(34)+"dm/mohdm4"+Chr(34)) 
    EndIf 
    If GetGadgetItemText(38,i,0) = "Snowy Park" 
      WriteString (" " +Chr(34)+"dm/mohdm5"+Chr(34)) 
    EndIf 
    If GetGadgetItemText(38,i,0) = "Stalingrad" 
      WriteString (" " +Chr(34)+"dm/mohdm6"+Chr(34)) 
    EndIf 
    If GetGadgetItemText(38,i,0) = "Algiers" 
      WriteString (" " +Chr(34)+"dm/mohdm7"+Chr(34)) 
    EndIf 
    If GetGadgetItemText(38,i,0) = "The Hunt" 
      WriteString (" " +Chr(34)+"obj/obj_team1"+Chr(34)) 
    EndIf 
    If GetGadgetItemText(38,i,0) = "V2 Rocket" 
      WriteString (" " +Chr(34)+"obj/obj_team2"+Chr(34)) 
    EndIf 
    If GetGadgetItemText(38,i,0) = "Omaha Beach" 
      WriteString (" " +Chr(34)+"obj/obj_team3"+Chr(34)) 
    EndIf 
    If GetGadgetItemText(38,i,0) = "The Bridge" 
      WriteStringN (" " +Chr(34)+"obj/obj_team4"+Chr(34)) 
    EndIf
  EndIf
Next
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
pogi02
Beiträge: 131
Registriert: 30.10.2004 00:52
Wohnort: Österreich
Kontaktdaten:

Beitrag von pogi02 »

Hallo

Warum machst du nicht ein Select statt diesen ganzen If abfragen??
MfG pogi02

- www.apware.net
Aktuelles Projekt:
-
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

danke!

Beitrag von FISCHAUGE »

Ja das mit dem Selet und dem Case wäre auch eine möglichkeit, dachte mir aber ich machs da mit, kommt ja am ende fast auf das gleiche raus!

Ob ich jetz
If...
AUSDRUCK
EndIf

Schreibe
oder
Select..
CASE 1
Endselect

ist ja kein so großer unterschied!

trotzdem danke für eure Hilfe die die vorschlägen!!
pogi02
Beiträge: 131
Registriert: 30.10.2004 00:52
Wohnort: Österreich
Kontaktdaten:

Beitrag von pogi02 »

Hallo

Nunja es gibt 2 Gründe warum du Select nehmen solltest:

1. Es ist etwas übersichtlicher.

2. Select ist auch etwas schneller (hab ich zumindest mal gehört)
MfG pogi02

- www.apware.net
Aktuelles Projekt:
-
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

ok

Beitrag von FISCHAUGE »

Ja danke, ich glaube du hast recht damit das der Ablauf durch select schneller ist werde es nun mit Slect schreiben! Ist wirklich viel übersichtlicher!!

:allright:
Antworten