Gadget Wert in Variable setzen

Anfängerfragen zum Programmieren mit PureBasic.
rebnet
Beiträge: 7
Registriert: 16.03.2010 11:32

Gadget Wert in Variable setzen

Beitrag von rebnet »

Hallo Leute
Nach meinen First Steps stehe ich wiedereinmal an. Ich versuche krampfhaft ein paar Abfrage Gadget zu bauen und dessen Werte in eine Variable abzufüllen. Leider ohne Erfolg :cry:
Hat mir einer ein klitzekleines Beispiel wie das geht ? Ich habe da an ein SpinGadget oder StringGadget gedacht. Es geht darum, dass der Benutzer ein paar Variablen über eine Windows Oberfläche setzen kann.
Zuletzt geändert von rebnet am 18.03.2010 10:25, insgesamt 1-mal geändert.
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: Gadget Wert in Variable setzen

Beitrag von WPö »

Hallo, René!

Seit vorgestern an Bord - willkommen im Forum!
Um es Dir letztlich einfacher zu machen und uns sowieso, solltst Du ein paar grundsätzliche Verhaltensweisen berücksichtigen:
  • Der Titel ist unglücklich gewählt. Verbessern!
  • Deine Signatur fehlt. Hier hinein gehören Deine Rechnerausstattung, das Betriebssystem und Deine Purebasic-Version, möglichst detailliert. Es gibt Unterschiede in der Programmierung, nicht nur bei der Unterscheidung Windows/Linux/Mac/Amiga. Du willst uns doch nicht im Nebel stochern lassen?
  • Die Idiotenleerzeichen und Anglizismen solltest Du sein lassen. Sie sind lächerlich. Siehe meine Netzpräsenz und dort "Deutsch für Deutsche"
  • Lies Dir Deine Beiträge am besten nochmals durch, bevor Du sie absendest und korrigiere Fehler. Dann wäre Dir nicht passiert, ein neues Windows bauen zu wollen!
Mit Deinem Quelltext sehe ich nur böhmische Dörfer. Versuche es doch zunächst mit den Beispielen aus der Purebasic-Hilfe, z.B. dem SpinGadget. Ohne Fleiß kein Preis - wie bei jeder anderen Programmiersprache auch wirst Du einige Stunden oder vielleicht Tage benötigen, um eigene GUIs schreiben zu können. Konzentriere Dich auf die Ereignisschleife.

Zuletzt noch: Viel Spaß im Forum!

Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
rebnet
Beiträge: 7
Registriert: 16.03.2010 11:32

Re: Gadget Wert in Variable setzen

Beitrag von rebnet »

OK habe verstanden. Leider kann ich mein Eintrag nicht mehr ganz löschen.
Vielleicht kann das jemand von Euch.
Danke und Grüsse
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: Gadget Wert in Variable setzen

Beitrag von WPö »

rebnet hat geschrieben:Leider kann ich mein Eintrag nicht mehr ganz löschen.
Vielleicht kann das jemand von Euch.
Sollst Du doch gar nicht. Du bist uns willkommen, nur die üblichen Fehler bei Anfängern (war auchmal einer!) solltest Du beseitigen.

Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Gadget Wert in Variable setzen

Beitrag von Kiffi »

@rebnet:

Für eine Oberfläche, die der Anwender bedienen kann, benötigst Du
folgende Elemente in Deinem Code:

* Ein Fenster, das die Gadgets trägt, in dem die Eingabe erfolgt

* Die Gadgets selber (Textbox, Button, ...)

* und eine Schleife, in der die Ereignisse, die in dem Fenster und den Gadgets auftreten, abgearbeitet werden.

Für ein minimales Beispiel erstellst Du also Dein Fenster mit OpenWindow(),
platzierst dann darauf ein Text-, ein String- und ein ButtonGadget und fragst
mit WaitWindowEvent() die Ereignisse ab:

Code: Alles auswählen

EnableExplicit

Enumeration
  #myWindow
  #myText
  #myString
  #myButton
EndEnumeration

Define WWE, Quit 

OpenWindow(#myWindow, #PB_Ignore, #PB_Ignore, 215, 60, "Beispiel")
TextGadget(#myText, 5, 10, 80, 20, "Deine Eingabe:", #ss_centerimage)
StringGadget(#myString, 85, 10, 125, 20, "")
ButtonGadget(#myButton, 5, 35, 205, 20, "OK")

Repeat
  
  WWE = WaitWindowEvent()
  
  Select WWE
      
    Case #PB_Event_Gadget ; Es ist ein Gadget-Ereignis aufgetreten
      
      Select EventGadget() ; Abfrage, welches Gadget das Ereignis ausgelöst hat
          
        Case #myButton ; Das ButtonGadget hat das Ereignis ausgelöst
          
          MessageRequester("Ausgabe", "Deine Eingabe: " + GetGadgetText(#myString))
          
      EndSelect
      
    Case #PB_Event_CloseWindow ; Es ist ein Fenster-Schliessen-Ereignis aufgetreten
      
      Quit = #True ; Variable setzen, um die Eventschleife zu beenden
      
  EndSelect
  
Until Quit = #True

Grüße ... Kiffi
a²+b²=mc²
rebnet
Beiträge: 7
Registriert: 16.03.2010 11:32

Re: Gadget Wert in Variable setzen

Beitrag von rebnet »

Hi Kiffi
Danke für Deine Mühe. Hat mir sehr geholfen.
grüsse
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Gadget Wert in Variable setzen

Beitrag von bobobo »

Tach auch..
wegen des Anfängerstatus eine kleine Umstellung des :allright: Kiffischen Codes die eine Tastatursteuerung beinhaltet
und damit natürlich ein umgestricktes Eventhandling.
(vergesst mir die Tastatur nicht, damit geht vieles meist sehr viel flüssiger von der Hand als mit dem Tischungeziefer)

Code: Alles auswählen

EnableExplicit

Enumeration
  #myWindow
  #myText
  #myString
  #myButton
  #myButtonKey
  #myExitKey
EndEnumeration

Define.i WWE, Quit ,eventMenu ,eventGadget

OpenWindow(#myWindow, #PB_Ignore, #PB_Ignore, 215, 60, "Beispiel")
TextGadget(#myText, 5, 10, 80, 20, "Deine Eingabe:", #SS_CENTERIMAGE)
StringGadget(#myString, 85, 10, 125, 20, "")
ButtonGadget(#myButton, 5, 35, 205, 20, "OK")
AddKeyboardShortcut(#myWindow,#PB_Shortcut_Return,#MyButtonKey)
AddKeyboardShortcut(#myWindow,#PB_Shortcut_Escape,#MyExitKey)
SetActiveGadget(#myString)
Repeat
  WWE = WaitWindowEvent() ; nur einmal in der EventSchleife aufrufen sonst gibt's Chaos !!
  eventMenu=EventMenu()
  eventgadget=EventGadget()
  If WWE=#PB_Event_Gadget Or WWE=#PB_Event_Menu Or WWE=#PB_Event_CloseWindow
    If eventMenu=#myButtonKey Or eventgadget=#myButton
      MessageRequester("Ausgabe", "Deine Eingabe: " + GetGadgetText(#myString))
      SetActiveGadget(#myString)
    EndIf
    If eventMenu=#myExitKey Or WWE =#PB_Event_CloseWindow
      Quit = #True ; Variable setzen, um die Eventschleife zu beenden
    EndIf
  EndIf
Until Quit = #True
noch kürzer geht das natürlich so 8)

Code: Alles auswählen

EnableExplicit
Define.s text
Macro ir
  InputRequester("Beispiel","Deine Eingabe","")
EndMacro
text.s=ir
While text.s 
  MessageRequester("Deine Eingabe war",text)
  text.s=ir
Wend
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Antworten