Bei CountGadgetItems() einen Wert abziehen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1118
Registriert: 10.05.2005 22:48

Bei CountGadgetItems() einen Wert abziehen

Beitrag von Delle »

Hallo,

das liefert mir leider immer eine Zahl zuviel, weil im zugehörigen Editorgadget immer ein #CRLF$ mit drin ist:

Code: Alles auswählen

SetGadgetText(#Frei_Text,"Frei ("+CountGadgetItems(#Frei)+")")
Ich dachte ich kann das einfach mit (CountGadgetItems(#Frei)-1) lösen, aber CountGadgetItems() gibt ja einen String zurück.

Klar kann ich das außerhalb der SetGadgetText() lösen, aber möchte es gerne kompakt ;)

Ok CountGadgetItems liefert einen String, den wandel ich in Val um, ziehe 1 ab und wandel es wieder in einen String um:

Code: Alles auswählen

SetGadgetText(#Frei_Text,"Frei ("+Str(Val(CountGadgetItems(#Frei))-1))+")")
Wo ist der Denkfehler? PB meckert wieder das ein String erwartet wird...
PB 6.02 LTS + Win 11
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Bei CountGadgetItems() einen Wert abziehen

Beitrag von Kiffi »

Delle hat geschrieben:aber CountGadgetItems() gibt ja einen String zurück.
sicher? :wink:
Hygge
Benutzeravatar
Delle
Beiträge: 1118
Registriert: 10.05.2005 22:48

Re: Bei CountGadgetItems() einen Wert abziehen

Beitrag von Delle »

Kiffi hat geschrieben:
Delle hat geschrieben:aber CountGadgetItems() gibt ja einen String zurück.
sicher? :wink:
Na selbst wenn es Integer ist, ich darf ja dann trotzdem keine Klammern in den Stringoperationen nutzen :(
PB 6.02 LTS + Win 11
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Bei CountGadgetItems() einen Wert abziehen

Beitrag von Kiffi »

ich nehme mal an, dass Du schon ziemlich lange an dem Problem sitzt und momentan den Wald vor lauter Bäumen nicht siehst. :wink:

Folgender Code zur Veranschaulichung:

Code: Alles auswählen

OpenWindow(0, 0, 0, 300, 300, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

EditorGadget(0, 10, 10, 280, 280)

For a = 0 To 9
  AddGadgetItem(0, a, "Zeile "+Str(a))
Next

Debug "CountGadgetItems(0): "                   + Str( CountGadgetItems(0) )
Debug "CountGadgetItems(0)-1: "                 + Str( CountGadgetItems(0)-1 )
Debug "CountGadgetItems(0)-1 (mit Klammern): (" + Str( CountGadgetItems(0)-1 ) + ")"

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Grüße ... Peter
Hygge
Benutzeravatar
Delle
Beiträge: 1118
Registriert: 10.05.2005 22:48

Re: Bei CountGadgetItems() einen Wert abziehen

Beitrag von Delle »

Oje... ich sollte wirklich ins Bett gehen! :bounce:

Danke Kiffi! Ich wäre heute glaub nicht mehr drauf gekommen...
PB 6.02 LTS + Win 11
Antworten