CheckBoxGadget

Anfängerfragen zum Programmieren mit PureBasic.
sobi
Beiträge: 170
Registriert: 05.02.2005 23:41
Wohnort: passau
Kontaktdaten:

CheckBoxGadget

Beitrag von sobi »

Hallo,

ich würde gerne bei Checkboxen den Hintergrund färben. Hat jemand einen Tipp, wie ich mehrere Checkboxen färben kann, ohne dass ich x mal diesen Code mit einer anderen gadgetID schreiben muss?

Code: Alles auswählen

        Case GadgetID(4) 
          SetBkMode_(wParam,#TRANSPARENT) 
          SetTextColor_(wParam, $000000) 
          Result = blau
Wenn ich den in eine "for - to" Schleife einbauen will, dann meldet er mir einen "assambler-fehler" - Gibt es da andere Möglichkeiten?

Hier folgt der ganze Code:

Code: Alles auswählen

OpenWindow(0,100,150,400,400,#PB_Window_SystemMenu,"TEST") 
Global blau
blau=CreateSolidBrush_($ffffff) 

Procedure myCallback(WindowID, Message, wParam, lParam) 
 
  Result = #PB_ProcessPureBasicEvents 
  Select Message 
    Case #WM_CTLCOLORSTATIC 
      Select lparam 
        Case GadgetID(4) 
          SetBkMode_(wParam,#TRANSPARENT) 
          SetTextColor_(wParam, $000000) 
          Result = blau
      EndSelect 
  EndSelect 
ProcedureReturn Result
    
EndProcedure 

SetWindowCallback(@myCallback()) 
CreateGadgetList(WindowID()) 
CheckBoxGadget(4, 10, 90,100, 20, "test") 

Repeat : Until WaitWindowEvent() = #PB_EventCloseWindow
Liebe Grüße,


Simon
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

Assembler-Fehler bei For? :o

Zeig mal den Code der dazu führt!
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
sobi
Beiträge: 170
Registriert: 05.02.2005 23:41
Wohnort: passau
Kontaktdaten:

Beitrag von sobi »

freedimension hat geschrieben:Assembler-Fehler bei For? :o

Code: Alles auswählen

Procedure myCallback(WindowID, Message, wParam, lParam) 
For x=0 To x=10 
  Result = #PB_ProcessPureBasicEvents 
  Select Message 
    Case #WM_CTLCOLORSTATIC 
      Select lparam 
        Case GadgetID(4) 
          SetBkMode_(wParam,#TRANSPARENT) 
          SetTextColor_(wParam, $000000) 
          Result = blau
      EndSelect 
  EndSelect 
ProcedureReturn Result
Next    
EndProcedure 
Wo ich die For - Schleife einbaue ist dem ziemlich egal, er meldet mir immer:
PureBasic.asm[156]
CMP 10,dword[esp+16]
error: invalid operand

:roll:
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

Ah, ok. Das muss heißen
[c]For x=0 To 10[/c]

Nach dem To darf also keine Zuweisung mehr erfolgen ;)
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
sobi
Beiträge: 170
Registriert: 05.02.2005 23:41
Wohnort: passau
Kontaktdaten:

Beitrag von sobi »

Also ich habe das jetzt probiert und ich komm nicht weiter. :(
Ich will mehrere Checkboxen farblich hinterlegen. - Im moment muss ich für jede case GadgetID(1), case GadgetID(2), case GadgetID(3) anlegen. (und für 50 Checkboxen sind das ein bisschen viel Zeilen) Geht das auch anders, mit einer For Schleife?

Hier noch der Code:

Code: Alles auswählen

OpenWindow(0,100,300,400,400,#PB_Window_SystemMenu,"TEST") 
Global blau 
blau=CreateSolidBrush_($ffffff)
 

Procedure myCallback(WindowID, Message, wParam, lParam) 
  y=1  
  Result = #PB_ProcessPureBasicEvents 
  Select Message 
    Case #WM_CTLCOLORSTATIC 
     For x=0 To 10 
      Select lparam 
        Case GadgetID(y) 
          SetBkMode_(wParam,#TRANSPARENT) 
          SetTextColor_(wParam, $000000) 
          Result = blau
          Debug y
          y+1
      EndSelect 
  Next      
  EndSelect  
ProcedureReturn Result 
 
EndProcedure 

SetWindowCallback(@myCallback()) 
CreateGadgetList(WindowID()) 
CheckBoxGadget(1, 10, 90,100, 20, "test") 

Repeat : Until WaitWindowEvent() = #PB_EventCloseWindow
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
Antworten