Reihenfolge GadgetID's ? [hat sich erledigt]

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Reihenfolge GadgetID's ? [hat sich erledigt]

Beitrag von Falko »

Irgendwie verstehe ich die ID's nicht. Kann es sein, das die TrackbarGadgets mit der ID 0.. anfangen müssen, oder
liegt das vielleicht am Debugger?

Hier zwei Beispiele, wobei ich beim Letzteren die Reihenfolge der Gadgets geändert habe.

Hier werden die geänderten Werte im Debugger korrekt angezeigt

Code: Alles auswählen

Global a
Global b

Procedure.q DELAYUS(t.l) ; Rechnerabhängig!
  Shared hitimecount1.q,hitimecount2.q,hitimefreq.q
  QueryPerformanceFrequency_(@hitimefreq)
  QueryPerformanceCounter_(@hitimecount1)
  Repeat 
    QueryPerformanceCounter_(@hitimecount2)
  Until (hitimecount2 - hitimecount1)/(hitimefreq/1000000)=>t
Result.q=(hitimecount2 - hitimecount1)/(hitimefreq/1000000)
ProcedureReturn Result
EndProcedure 

Procedure DeineProzedur(Wert.l)
    Repeat
      Debug Str(DELAYUS(a) ) + "  "+Str(DELAYUS(b))
      Delay(0)
    ForEver

    EndProcedure
    
a=1500:b=1500  
CreateThread(@DeineProzedur(), 0)
If OpenWindow(0,0,0,250,100,"Delayus",#PB_Window_SystemMenu) And CreateGadgetList(WindowID(0))
  TrackBarGadget(0,35,10,200,30,10,20)
  TrackBarGadget(1,35,50,200,30,10,20)
  TextGadget    (2, 5,15, 30, 20,"Joy-A")
  TextGadget    (3, 5,55, 30, 20,"Joy-B")
EndIf
SetGadgetState(0,15)
SetGadgetState(1,15)
Repeat
  Event=WaitWindowEvent()
  Select EventGadget()
    Case 0
      a=GetGadgetState(0)*100
    Case 1
      b=GetGadgetState(1)*100
  EndSelect
Until Event=#PB_Event_CloseWindow
Und hier nicht

Code: Alles auswählen

Global a
Global b

Procedure.q DELAYUS(t.l) ; Rechnerabhängig!
  Shared hitimecount1.q,hitimecount2.q,hitimefreq.q
  QueryPerformanceFrequency_(@hitimefreq)
  QueryPerformanceCounter_(@hitimecount1)
  Repeat 
    QueryPerformanceCounter_(@hitimecount2)
  Until (hitimecount2 - hitimecount1)/(hitimefreq/1000000)=>t
Result.q=(hitimecount2 - hitimecount1)/(hitimefreq/1000000)
ProcedureReturn Result
EndProcedure 

Procedure DeineProzedur(Wert.l)
    Repeat
      Debug Str(DELAYUS(a) ) + "  "+Str(DELAYUS(b))
      Delay(0)
    ForEver

    EndProcedure
    
a=1500:b=1500  
CreateThread(@DeineProzedur(), 0)
If OpenWindow(0,0,0,250,100,"Delayus",#PB_Window_SystemMenu) And CreateGadgetList(WindowID(0))
  TextGadget    (0, 5,15, 30, 20,"Joy-A")
  TrackBarGadget(1,35,10,200,30,10,20)
  TextGadget    (2, 5,55, 30, 20,"Joy-B")
  TrackBarGadget(3,35,50,200,30,10,20)
EndIf
SetGadgetState(1,15)
SetGadgetState(3,15)
Repeat
  Event=WaitWindowEvent()
  Select EventGadget()
    Case 0 ; [edit] musste hier noch geändert werden (1)[/edit]
      a=GetGadgetState(1)*100
    Case 1 [edit] musste hier noch geändert werden (3)[/edit];
      b=GetGadgetState(3)*100
  EndSelect
Until Event=#PB_Event_CloseWindow
Zuletzt geändert von Falko am 30.04.2006 16:11, insgesamt 1-mal geändert.
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Ähmm... wenn du schon die GadgetIDs änderst, solltest du auch den Select EventGadget() ganz unten entsprechend anpassen...
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Oh, man. Hab ich's doch übersehen.

Die cases... :oops:

Danke
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Nicht nur die Cases sind verkehrt

Code: Alles auswählen

Global a
Global b

Procedure.q DELAYUS(t.l) ; Rechnerabhängig!
  Shared hitimecount1.q,hitimecount2.q,hitimefreq.q
  QueryPerformanceFrequency_(@hitimefreq)
  QueryPerformanceCounter_(@hitimecount1)
  Repeat
    QueryPerformanceCounter_(@hitimecount2)
  Until (hitimecount2 - hitimecount1)/(hitimefreq/1000000)=>t
Result.q=(hitimecount2 - hitimecount1)/(hitimefreq/1000000)
ProcedureReturn Result
EndProcedure

Procedure DeineProzedur(Wert.l)
    Repeat
      Debug Str(DELAYUS(a) ) + "  "+Str(DELAYUS(b))
      Delay(0)
    ForEver

    EndProcedure
   
a=1500:b=1500 
CreateThread(@DeineProzedur(), 0)
If OpenWindow(0,0,0,250,100,"Delayus",#PB_Window_SystemMenu) And CreateGadgetList(WindowID(0))
  TextGadget    (0, 5,15, 30, 20,"Joy-A")
  TrackBarGadget(1,35,10,200,30,10,20)
  TextGadget    (2, 5,55, 30, 20,"Joy-B")
  TrackBarGadget(3,35,50,200,30,10,20)
EndIf
SetGadgetState(1,15)
SetGadgetState(3,15)
Repeat
  Event=WaitWindowEvent()
  If Event = #PB_Event_Gadget
    Select EventGadget()
      Case 1
        a=GetGadgetState(1)*100
      Case 3
        b=GetGadgetState(3)*100
    EndSelect
  EndIf
Until Event=#PB_Event_CloseWindow
If Event = #PB_Event_Gadget fehlte auch :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Danke Thomas, das fehlte auch :allright:

Was noch nicht richtig ist, das Delayus für Microsekunden.
Hängt wohl mit dem Thread und die Windowsereignisse zusammen.

Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Gesperrt