"#PB_Event_Gadget" Abfrage falsch gemacht.

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
GreyEnt
Beiträge: 372
Registriert: 20.07.2006 19:41

"#PB_Event_Gadget" Abfrage falsch gemacht.

Beitrag von GreyEnt »

Hallo. Mahlzeit an Alle.
Hab nen Fehler und komme nicht drauf.... :(
Das Programm soll so etwas wie ein Barcode darstellen.
Der sinn ist in dem vereinfachten Code nicht wirklich ersichtlich.
Es geht mehr um den Button Nr. 12, "Copy to Clip".
Ich weiß nicht warum aber die "#PB_Event_Gadget" Abfrage funktioniert nicht für den Button.
Ich komme einfach nicht drauf was ich da falsch mache.

Könnt Ihr mal drauf gucken?

Gruß
GreyEnt

Code: Alles auswählen


OpenWindow(0, 0, 0, 800, 470+50, "UKB-Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget(1, 20, 0, 760, 60, "UKB Test", #PB_Text_Center )
LoadFont(1,"Segoe Print",30)
SetGadgetFont(1, FontID(1))
SetGadgetColor(1, #PB_Gadget_BackColor , $168822)
LoadFont(3,"Arial",30)
SetGadgetFont(3, FontID(3))
Global a$="AB"
Global b$="01"
Global c$="@#"
Global uan$=""

Procedure.s Attach()
  uan$=a$+","+b$+","+c$
  ProcedureReturn uan$
EndProcedure 
uan$=Attach()
Debug uan$

StringGadget(3, 20, 80, 680, 60, uan$)
LoadFont(3,"Arial",30)
LoadFont(4,"Arial",12)
SetGadgetFont(3, FontID(3))
SetGadgetAttribute(3, #PB_String_MaximumLength, 20)
TextGadget(10, 20, 145, 760, 40, "Syntax",#PB_Text_Border )
SetGadgetFont(10, FontID(4))

;{ Ziffer 1. (a) Gadget 2 Rang 1
ComboBoxGadget(2, 20, 150+45 , 700, 41)
AddGadgetItem(2, -1,"AB (E)")
AddGadgetItem(2, -1,"CD (B)")
AddGadgetItem(2, -1,"EF (C)")
;}

;{ Ziffer 2-3. (b) Gadget 4 Rang 2
ComboBoxGadget(4, 20, 195+45 , 700, 41)
AddGadgetItem(4, -1,"01 (1)")
AddGadgetItem(4, -1,"02 (2)")
AddGadgetItem(4, -1,"03 (3)")
;}    

;{ Ziffer 4-5. (c) Gadget 5 Rang 3
ComboBoxGadget(5, 20, 240+45 , 700, 41)
AddGadgetItem(5, -1,"@# (@#)")
AddGadgetItem(5, -1,"!€ (!€)")
AddGadgetItem(5, -1,"%& (%&)")
;}

ButtonGadget(12, 710, 80, 88, 30, "Copy to Clip")
ButtonGadget(13, 710, 112, 88, 30, "Get from Clip")
SetGadgetFont(2, FontID(4))
SetGadgetFont(4, FontID(4))
SetGadgetFont(5, FontID(4))
SetGadgetState(2, 1)
SetGadgetState(4, 1)
SetGadgetState(5, 1)
a$=GetGadgetItemText(2,GetGadgetState(2))
a$=Left(a$,2)
b$=GetGadgetItemText(4,GetGadgetState(4))
b$=Left(b$,2)
c$=GetGadgetItemText(5,GetGadgetState(5))
c$=StringField(c$, 1, "(")
uan$=Attach()
SetGadgetText(3, uan$ )

Repeat
  Event = WaitWindowEvent()
  Select Event
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 2
          a$=GetGadgetItemText(2,GetGadgetState(2))
          a$=Left(a$,2)
          uan$=Attach()
          SetGadgetText(3, uan$ )
        Case 4
          b$=GetGadgetItemText(4,GetGadgetState(4))
          b$=Left(b$,2)
          uan$=Attach()
          SetGadgetText(3, uan$ )
        Case 5
          c$=GetGadgetItemText(5,GetGadgetState(5))
          c$=StringField(c$, 1, "(")
          uan$=Attach()
          SetGadgetText(3, uan$ )
        Case 12
          SetClipboardText(uan$)
        Case 13
          Text$ = GetClipboardText()
      EndSelect
  EndSelect
  
Until WindowEvent() = #PB_Event_CloseWindow
End
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6813
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: "#PB_Event_Gadget" Abfrage falsch gemacht.

Beitrag von STARGÅTE »

Du hast zwei mal WindowEvent() in deiner schleife.
Somit wird knapp die hälfte der Events verschluckt, bei der Abfrage ob es CloseWindow war:

Code: Alles auswählen

Until Event = #PB_Event_CloseWindow
PB 5.73 ― Win 10, 20H2 ― Ryzen 9 3900X ― Radeon RX 5600 XT ITX ― Vivaldi 3.6 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
GreyEnt
Beiträge: 372
Registriert: 20.07.2006 19:41

Re: "#PB_Event_Gadget" Abfrage falsch gemacht.

Beitrag von GreyEnt »

Jo. Danke
Nun geht´s.
Das Einzige was ich richtig gemacht habe ist hier um Hilfe zu bitten.
Währe ich im Leben nicht drauf gekommen.

Gruß
GreyEnt
Ich progge PureBasic weil Jägermeister nen dicken Kopf macht.
Antworten