StringGadget Problem

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Ironsmurf
Beiträge: 111
Registriert: 04.01.2006 12:57
Computerausstattung: AMD FX(tm)-6300 Six-Core Processor
3.50 GHz / 8 GB Ram
Windows 7 / 64bit / Ultimate
Purebasic 5.20 LTS (Windows - x86)
Wohnort: Deutschland

StringGadget Problem

Beitrag von Ironsmurf »

Hallo zusammen

ich versuche gerade mit StringGadget klar zukommen,
leider bekomme ich es nicht hin.
Der Wert soll an eine Variable übergeben werden, weiterhin will ich den Wert der Variabeln abfragen um in ein Unterprogramm verzweigen zu können.

[/code]
Globaliere String$
Global Eingabe$
Procedure String(text$)
If FindString(Eingabe$, text$, 1)
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
EndProcedure

If OpenWindow(0,000,300,1274,58,"Relais Butler",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget)
If CreateGadgetList(WindowID(0))

;Eingabefeld
StringGadget(00,0010,06,100,20,"",)
Eingabe$ = GetGadgetText(00)
Eingabe$ = LSet(Eingabe$, 05)
Debug Eingabe$

Danke
Es kommt immer auf die Sichtweise des Betrachters an.
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

Re: StringGadget Problem

Beitrag von ts-soft »

Ironsmurf hat geschrieben:Hallo zusammen

ich versuche gerade mit StringGadget klar zukommen,
Und mit dem [ code ] [ /code ] :mrgreen:
Du solltest einen Code Posten, der Testbar ist, zumindest keine offenen
Blöcke (If EndIf usw. ) enthält
Deine Abfrage "Eingabe$ = GetGadgetText(00)" sollte in der Ereignisschleife
erfolgen, sieh am besten nochmal in der Hilfe nach, welche Ereignisse für
das Stringgadget zutreffen.

Code: Alles auswählen

  #PB_EventType_Change    : Der Text wurde durch den Anwender geändert.
  #PB_EventType_Focus     : Das StringGadget erhielt den Fokus.
  #PB_EventType_LostFocus : Das StringGadget verlor den Fokus.
und dann, wenn Du nicht weiterkommst, fragste halt nochmal mit deinem
neuen Code.
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
Riacon
Beiträge: 61
Registriert: 21.01.2008 09:40

Beitrag von Riacon »

eine procedure ist eine beschreibung wie etwas gemacht wird. irgendwo mußt du dann auch sagen, daß es gemacht werden soll.
du rufst deine procedure string() nirgendwo auf





und dann lösch deinen anderen thread. einer langt
pb 4.51 win7 64
Benutzeravatar
Ironsmurf
Beiträge: 111
Registriert: 04.01.2006 12:57
Computerausstattung: AMD FX(tm)-6300 Six-Core Processor
3.50 GHz / 8 GB Ram
Windows 7 / 64bit / Ultimate
Purebasic 5.20 LTS (Windows - x86)
Wohnort: Deutschland

Beitrag von Ironsmurf »

Hallo nochmal

ich kann den Fehler leider nicht finden, es kommt immer eine Fehlermeldung:
Ich kriege es nicht hin, dabei kann es nur eine Kleinigkeit sein, er soll ganze Zahlen annehmen z.B. 12345

Vielen DAnk im voraus

Code: Alles auswählen

If OpenWindow(0,000,300,1274,58,"Relais Butler",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget)
  ElseIf CreateGadgetList(WindowID(0))
    
    ;Eingabefeld
     StringGadget(00,0010,06,100,20,"", #PB_String_Numeric)
      
    ;Relais 1
     ButtonGadget(01,0140,06,100,20,"PC Licht Ein")
     ButtonGadget(02,0140,32,100,20,"PC Licht Aus")
    
    ;Relais 2
     ButtonGadget(03,0260,06,100,20,"Dolby Sound Ein")
     ButtonGadget(04,0260,32,100,20,"Dolby Sound Aus")
    
    ;Relais 3
     ButtonGadget(05,0380,06,100,20,"Drucker Ein")
     ButtonGadget(06,0380,32,100,20,"Drucker Aus")
     
    ;Relais 4
     ButtonGadget(07,0500,06,100,20,"HD - T - Ein")
     ButtonGadget(08,0500,32,100,20,"HD - T - Aus")
     
    ;Relais 5
     ButtonGadget(09,0620,06,100,20,"HD - U -  Ein")
     ButtonGadget(10,0620,32,100,20,"HD - U -  Aus")
     
    ;Relais 6
     ButtonGadget(11,0740,06,100,20,"HD - V -  Ein")
     ButtonGadget(12,0740,32,100,20,"HD - V -  Aus")
     
    ;Relais 7
     ButtonGadget(13,0860,06,100,20,"HD - W -  Ein")
     ButtonGadget(14,0860,32,100,20,"HD - W -  Aus")
     
    ;Relais 8
     ButtonGadget(15,0980,06,100,20,"HD - X -  Ein")
     ButtonGadget(16,0980,32,100,20,"HD - X -  Aus")
     
    ;Relais ALLE
     ButtonGadget(17,1100,06,160,20,"A L L E  -  E I N")
     ButtonGadget(18,1100,32,160,20,"A L L E  -  A U S")
     
    ;Buttom Go
     ButtonGadget(19,0010,32,100,20,"G O")
   EndIf
   
   
   If EventGadget()=19
     
             Eingabe = GetGadgetText (00)
             Debug Eingabe
ElseIf Eingabe = (0001) And RE8 = 0 : Delay (10000) : RunProgram("X:\0001 ° YXZ.avi") : RE8 = 1
ElseIf Eingabe = (0001) And RE8 = 1 : Delay (01000) : RunProgram("X:\0001 ° YXZ.avi") 
     EndIf
[/quote]
Es kommt immer auf die Sichtweise des Betrachters an.
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 »

Das Eventloop heißt so, weil es ein Loop ist (Schleife)
Deine Version kann so nicht Funktionieren. Desweiteren mußte Du Strings
in Zahlen umwandeln, um mit Zahlen zu vergleichen

Code: Alles auswählen

Eingabe = Val(GetGadgetText (0))
Vielleicht willste auch umgekehrt vergleichen?
Dann Eingabe.s und die Vergleichswerte auch in Anführungsstriche ""

Da biste aber noch ne Ecke vom funktionierenden Programm weg :wink:

Gruß
Thomas
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
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

wie Thomas bereits erwähnte: Du benötigst eine Event-Schleife.
(bitte in Zukunft die Antworten der Kollegen aufmerksam lesen!)

Code: Alles auswählen

If OpenWindow(0,000,300,1274,58,"Relais Butler",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget)
  
  If CreateGadgetList(WindowID(0))
    
    ;Eingabefeld
    StringGadget(00,0010,06,100,20,"", #PB_String_Numeric)
    
    ;Relais 1
    ButtonGadget(01,0140,06,100,20,"PC Licht Ein")
    ButtonGadget(02,0140,32,100,20,"PC Licht Aus")
    
    ;Relais 2
    ButtonGadget(03,0260,06,100,20,"Dolby Sound Ein")
    ButtonGadget(04,0260,32,100,20,"Dolby Sound Aus")
    
    ;Relais 3
    ButtonGadget(05,0380,06,100,20,"Drucker Ein")
    ButtonGadget(06,0380,32,100,20,"Drucker Aus")
    
    ;Relais 4
    ButtonGadget(07,0500,06,100,20,"HD - T - Ein")
    ButtonGadget(08,0500,32,100,20,"HD - T - Aus")
    
    ;Relais 5
    ButtonGadget(09,0620,06,100,20,"HD - U -  Ein")
    ButtonGadget(10,0620,32,100,20,"HD - U -  Aus")
    
    ;Relais 6
    ButtonGadget(11,0740,06,100,20,"HD - V -  Ein")
    ButtonGadget(12,0740,32,100,20,"HD - V -  Aus")
    
    ;Relais 7
    ButtonGadget(13,0860,06,100,20,"HD - W -  Ein")
    ButtonGadget(14,0860,32,100,20,"HD - W -  Aus")
    
    ;Relais 8
    ButtonGadget(15,0980,06,100,20,"HD - X -  Ein")
    ButtonGadget(16,0980,32,100,20,"HD - X -  Aus")
    
    ;Relais ALLE
    ButtonGadget(17,1100,06,160,20,"A L L E  -  E I N")
    ButtonGadget(18,1100,32,160,20,"A L L E  -  A U S")
    
    ;Buttom Go
    ButtonGadget(19,0010,32,100,20,"G O")
    
    Repeat
      
      WWE=WaitWindowEvent()
      
      Select WWE
        
        Case #PB_Event_Gadget
          
          Select EventGadget()
            
            Case 19
              
              Eingabe = Val(GetGadgetText(00))
              Debug Eingabe
              
          EndSelect
          
      EndSelect
      
    Until WWE = #PB_Event_CloseWindow
    
  EndIf
  
EndIf
Grüße ... Kiffi
a²+b²=mc²
Antworten