Case / Select

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
kunstlust
Beiträge: 259
Registriert: 12.04.2012 23:47
Wohnort: Hannover
Kontaktdaten:

Case / Select

Beitrag von kunstlust »

Ich möchte gerne per Case einen Buttonabfrage erzeugen, das ist ja auch kein Problem, nur der Button löst eine Aktion aus, welche z.B. nur Sinn macht, wen bestimmte Daten eingeben worden sind(Prefs). Klar ist so etwas mit einer IF Abfrage möglich, jedoch finde ich das die Übersichtlichkeit etwas leidet, gibt es eine Möglichkeit wieder zurück in die Select Abfrage zu zu springen?
Drago
Beiträge: 148
Registriert: 02.02.2010 18:22
Computerausstattung: Win XP SP3, AMD Sempron (MMX) 1.2 GHz, 512 MB, Nvidia GeForce FX 5200, 128 MB, DirectX 9.0c
Wohnort: Westerwald

Re: Case / Select

Beitrag von Drago »

Guten Morgen....

Keine Ahnung ob dir die Lösung gefällt:

Code: Alles auswählen

Global quit. b = #False
Global Event.i

Procedure MySelect( Event.i )
     
     Static Anzahl.i
     
     Select Event
          Case 1
               Debug "Feld 1 "
          Case 2
               Debug "Feld 2"
          Case 3
               Debug "Ende "
               quit = #True
     EndSelect
     
EndProcedure

Repeat
     Event = 1 + Random( 2 )
MySelect( Event )     
     Until quit
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: Case / Select

Beitrag von ts-soft »

kunstlust hat geschrieben:nur der Button löst eine Aktion aus, welche z.B. nur Sinn macht, wen bestimmte Daten eingeben worden sind(Prefs).
So ganz verstehe ich Dein Problem nicht, aber der Button sollte nur aktiviert sein, wenn die Bedingung erfüllt ist.
Das gilt für alle Buttons, Menüs usw.
Wenn Du es so handhabst, brauchst Du Dir keine weiteren Gedanken beim Button-Ereignis machen, das kommt ja nur, wenn die
Bedingung erfüllt ist.

Ich hoffe mal, das ich mich verständlich ausgedrückt habe.

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
kunstlust
Beiträge: 259
Registriert: 12.04.2012 23:47
Wohnort: Hannover
Kontaktdaten:

Re: Case / Select

Beitrag von kunstlust »

Danke Thomas,

sowas meinte ich.

Gruß Lars
Caliban
Beiträge: 41
Registriert: 08.09.2004 08:46

Re: Case / Select

Beitrag von Caliban »

Meinst du in etwa sowas, ist nur schnell dahin geschrieben.

Code: Alles auswählen

OpenWindow(0,0,0,100,100,"Test")

StringGadget(1, 5,5,50,20,"")
ButtonGadget(2,5,30,50,20,"Ok")

Repeat
  EventID = WaitWindowEvent()
  
  If EventID = #PB_Event_Gadget
    
    Gadget = EventGadget()
    Text.s = GetGadgetText(1)
    If Gadget = 2 And Text = "123"
      Debug "123"
    ElseIf Gadget = 2 And Text = "abc"
      Debug "abc"
    EndIf 
          
  EndIf 
  
Until EventID = #PB_Event_CloseWindow
Benutzeravatar
kunstlust
Beiträge: 259
Registriert: 12.04.2012 23:47
Wohnort: Hannover
Kontaktdaten:

Re: Case / Select

Beitrag von kunstlust »

Ich habe einfach zuviel reinpackt, da werden Listen und Prefs geschrieben und das ist einfach zu unübersichtlich, da hilft wohl nur eine weitere Prozedur. Danke aber für die Hilfe, ich hatte die Hoffnung das es dafür eine Ausstiegsbefehl gibt, welche ich übersehen habe.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Case / Select

Beitrag von STARGÅTE »

Vllt meinst du ja dies:
Break im Case eines Select ?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
kunstlust
Beiträge: 259
Registriert: 12.04.2012 23:47
Wohnort: Hannover
Kontaktdaten:

Re: Case / Select

Beitrag von kunstlust »

Danke STARGÅTE, genau so meinte ich.
Gruß Lars
Antworten