Requester

Anfängerfragen zum Programmieren mit PureBasic.
Gast

Requester

Beitrag von Gast »

Code: Alles auswählen

Select EventGadget()
    Case 6
      farbe = ColorRequester()
      SetGadgetColor(2,#PB_Gadget_FrontColor,farbe)
  EndSelect
Bei diesem Code öffnet sich der Requester immer wieder nachdem ich Beendet habe. Ich denke mal das ist deswegen, weil es in der Repeat : Until Schleife steht. Aber davor oder dahinter kann ich das ja glaube ich nciht setzten, aber wohin denn dann ?
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Prüfst du denn auch WindowEvent()? Nein? Dann haben wir den Grund. Lösung: Prüfe das Ergebnis von WindowEvent()!

Sieh dir den Befehl einfach mal in der PB Hilfe an.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

frag noch zusätzlich den EventType() ab, damit die aktion nur beim mausklick (oder so) ausgeführt wird.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Unnötig! Ich hatte auch mal das Problem, dass es ohne EventType() nicht ging, diese Projekte habe ich dann meist verworfen oder neu angefangen und siehe da: Das Problem war weg.

Mittlerweile passiert mir dieser mysteriöse Fehler nicht mehr. OK, ich will hier nichts vorschreiben, wenn du willst, kannst du selbstverständlich auf EventType() testen.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Gast

Beitrag von Gast »

wo soll ich denn den windowevent() prüfen
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 »

Ich hab keine Lust zum hellsehen, wie wäre es mit einem Codeschnippsel,
der uns in die Lage versetzt das Problem zu erkennen? Möglichst ausführbar!

Der bisherige Schnippsel bietet nicht die benötigten Infos.
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
Gast

Beitrag von Gast »

Code: Alles auswählen

Repeat 
  Text.s = Name+": "+GetGadgetText(2)
 ExamineKeyboard()
id = WaitWindowEvent()
event = WindowEvent()

    If KeyboardReleased(#PB_Key_Return)
      If SendUDPBroadcast(port,Text) = 0
        SetGadgetText(2,"")
        SetGadgetText(5,"Nachricht wurde erfolgreich gesendet")
      Else
        SetGadgetText(5,"Nachricht wurde nicht erfolgreich gesendet")
      EndIf
    EndIf
  
  sevent = NetworkServerEvent()
  clientid = EventClient()
  
  If sevent = 2
    Text = Space(5000)
    ReceiveNetworkData(clientid, @Text, 5000)
    If Text= "qw"
      SendUDPBroadcast(port,Name)
    Else
      AddGadgetItem(1,e-1,Text)
    EndIf
    ReceiveNetworkData(clientid, @Name, 500)
    If Name <> ""
      AddGadgetItem(4,f-1,Name)
    EndIf
  EndIf

  Select EventGadget()
    Case 3 
      If SendUDPBroadcast(port,Text) = 0
        SetGadgetText(2,"")
        SetGadgetText(5,"Nachricht wurde erfolgreich gesendet")
      Else
        SetGadgetText(5,"Nachricht wurde nicht erfolgreich gesendet")
      EndIf
    Case 6
      farbe = ColorRequester()
      SetGadgetColor(2,#PB_Gadget_FrontColor,farbe)
  EndSelect
ich weiß der ist noch sehr fehlervoll aber bin auch noch ein anfänger und noch nciht fertig^^
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 »

Code: Alles auswählen

id = WaitWindowEvent()
event = WindowEvent() 
Das kann so niemals gutgehen, soll wahrscheinlich EventWindwo() sein

Hier mal ein Beispiel zu Deiner ursprüngliche Frage, ohne den erneuten Code.

Code: Alles auswählen

If OpenWindow(0, #PB_Ignore, 0, 640, 480, "blub")
  CreateGadgetList(WindowID(0))
  ; bla blub
  StringGadget(2, 10, 10, 50, 30, "Text")
  ; bla blub
  ButtonGadget(6, 10, 80, 50, 30, "Color")
Else
  Debug "Erstellen fehlgeschlagen"
  End
EndIf

Repeat
  event = WaitWindowEvent()
  
  Select event
    
    Case #PB_Event_CloseWindow
      quit = 1
      
    Case #PB_Event_Gadget
    
      Select EventGadget()
        ; bla blub
        Case 6
          farbe = ColorRequester()
          SetGadgetColor(2,#PB_Gadget_FrontColor,farbe)          
 
      
      EndSelect
  EndSelect
  
Until quit = 1
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
Gast

Beitrag von Gast »

hm das event = WindowEvent() sollte garnicht dahin vergessen weg zu machen ^^

aber an deinem Beispiel hab ich meinen fahler gesehen und behoben, jetzt geht es.
danke schön :)
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

"Voraus" schreibt man mit nur einem "r".
im laufenden text kann ich darüber hinwegsehen,
aber in einer signatur sollte das schon richtig sein....
Zuletzt geändert von Kaeru Gaman am 09.11.2006 21:49, insgesamt 1-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten