Seite 1 von 1

Fenster mit Gadgets erstellen

Verfasst: 10.06.2011 16:13
von DoubleDee
Hallo Gemeinde,
habe mir einen kleinen Code geschrieben, welcher in dem Konsolenfenster funktioniert. Nun hätte ich aber gerne eine Windows-Oberfläche ... :roll:
Die Eingaben sollten jeweils in einem eigenen kleinen Fenster (Gadget?) gemacht werden, ebenso die Ausgaben (Ergebnisse). Das Ganze soll aber logischerweise in einem großen Fenster geschehen und nicht immer wieder ein Fenster mehr auf der Bildschirmoberfläche. Mir würde schon reichen, wenn mir ein Beispiel in die Hand gegeben würde, von welchem ich dann mein weiteres Vorhaben ausbauen kann (z.B.: [ 1 ] + [ 1 ] = [ 2 ] ) ....... [ x ] = kleines Fenster.

Ungefähr so:
Bild

Vielen Dank
'DD'

Re: Anfängerfrage

Verfasst: 10.06.2011 16:20
von ts-soft
Willkommen DoubleDee

Wie Du Dir vielleicht vorstellen kannst, haben in diesem Anfänger-Forum alle eine "Anfängerfrage", somit ist dieser
Thread-Titel für die Funktionalität eines Forums einfach nur Kontraproduktiv.
Nutze bitte den Edit-Button und gebe Deinem Beitrag einen sinnvollen Titel :wink:
(dann hättest Du statt meines Kommentars vielleicht schon eine Antwort <) )

Gruß
Thomas

Re: Fenster mit Gadgets erstellen

Verfasst: 10.06.2011 16:24
von RSBasic
Hi,


ich hab erstmal dein Thread-Titel angepasst. Aber bitte zukünftig einen aussagekräftigen Thread-Titel verwenden und nicht einfach nur "Anfängerfrage".

Um ein Fenster erstellen zu können, würde ich dir zuerst empfehlen, dein Fenster selber zu schreiben statt den Visual Designer zu benutzen. Soweit ich weiß, ist der Quellcode nicht fehlerfrei.

Also um ein Fenster zu erstellen, kannst du diese Vorlage benutzen:

Code: Alles auswählen

EnableExplicit

Define EventID

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
 
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Menu
      Select EventMenu()
        Case 1
         
      EndSelect
    EndIf
    If EventID = #PB_Event_Gadget
      Select EventGadget()
        Case 1
         
      EndSelect
    EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
Oder diese:

Code: Alles auswählen

EnableExplicit

Define EventID

Enumeration
  #MainWindow
EndEnumeration

If OpenWindow(#MainWindow, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Menu
      Select EventMenu()
        Case 1
          
      EndSelect
    EndIf
    If EventID = #PB_Event_Gadget
      Select EventGadget()
        Case 1
          
      EndSelect
    EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
Damit hast du schon mal ein Fenster.
Alles weitere kannst du in der PB-Hilfe erfahren, wie du beispielsweise Gadgets erstellst. Und in der Hilfe gibt es auch viele Beispielcodes, die du verwenden kannst.

Re: Fenster mit Gadgets erstellen

Verfasst: 10.06.2011 16:29
von STARGÅTE
Hier mal ein Beispielcode zum Beispiel von dir:

Code: Alles auswählen

Enumeration
	#Window
	#Gadget_Durchmesser
	#Gadget_Laenge
	#Gadget_Flaeche
	#Gadget_Berechnen
EndEnumeration

OpenWindow(#Window, 0, 0, 300, 150, "Beispiel", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
	TextGadget(#PB_Any, 20, 23, 120, 20, "Rohrdurchmesser (mm):")
	StringGadget(#Gadget_Durchmesser, 150, 20, 130, 20, "0")
	TextGadget(#PB_Any, 20, 53, 120, 20, "Rohrlänge (mm):")
	StringGadget(#Gadget_Laenge, 150, 50, 130, 20, "0")
	TextGadget(#PB_Any, 20, 83, 120, 20, "Fläche (cm²)")
	StringGadget(#Gadget_Flaeche, 150, 80, 130, 20, "0", #PB_String_ReadOnly)
	ButtonGadget(#Gadget_Berechnen, 150, 110, 130, 20, "Berechnen")

Define Durchmesser.f, Laenge.f, Flaeche.f

Repeat
	
	Select WaitWindowEvent()
			
		Case #PB_Event_CloseWindow
			End
			
		Case #PB_Event_Gadget
			Select EventGadget()
				Case #Gadget_Berechnen
					Durchmesser = ValF(GetGadgetText(#Gadget_Durchmesser))
					Laenge = ValF(GetGadgetText(#Gadget_Laenge))
					Flaeche = Durchmesser * #PI * Laenge * 0.01
					SetGadgetText(#Gadget_Flaeche, StrF(Flaeche))
			EndSelect
			
	EndSelect
	
ForEver

Re: Fenster mit Gadgets erstellen

Verfasst: 10.06.2011 16:48
von ts-soft
Ich bin zu langsam :lol:

Code: Alles auswählen

EnableExplicit

Enumeration ; Gadgets
  #txtDurchmesser
  #txtLaenge
  #txtFlaeche
  #strDurchmesser
  #strLaenge
  #strFlaeche
  #btnCalculate
EndEnumeration

OpenWindow(0, #PB_Ignore, #PB_Ignore, 200, 180, "Rohrberechnung")

TextGadget(#txtDurchmesser, 20, 20, 100, 20, "Rohrdurchmesser:")
TextGadget(#txtLaenge,      20, 50, 100, 20, "Rohrlänge:")
TextGadget(#txtFlaeche,     20, 80, 100, 20, "Fläche:")

StringGadget(#strDurchmesser, 140, 20, 40, 20, "")
StringGadget(#strLaenge,      140, 50, 40, 20, "")
StringGadget(#strFlaeche,     140, 80, 40, 20, "")

ButtonGadget(#btnCalculate, 80, 130, 60, 30, "berechnen")
Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Break
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #strDurchmesser
          If EventType() = #PB_EventType_LostFocus
            ; überprüfen ob Eingabe gültig
          EndIf
        ; ... dasselbe für die anderen EingabeStrings
        Case #btnCalculate
          ; kalkulation durchführen und z.B. per MessageBox darstellen
      EndSelect
  EndSelect
ForEver
Noch ein Grundgerüst :wink:

Re: Fenster mit Gadgets erstellen

Verfasst: 10.06.2011 19:14
von DoubleDee
STARGÅTE hat geschrieben:Hier mal ein Beispielcode zum Beispiel von dir:
Hallo STARGÅTE,

vielen Dank für die schnelle Hilfe ... genau so etwas habe ich gesucht. Nun kann ich dementsprechend 'weiterbasteln' :wink:
Man hat es halt schwer als Anfänger, weil man nicht weiß, wo man in der Hilfe suchen soll. Sämtliche Suchbegriffe landeten im Nirwana ....
Nachdem sich das BASIC seit den 80er Jahren immens verändert hat, komme ich mit den früher mal erlernten Befehlen hier nicht mehr
weiter. Da gab's z.B.: den INPUT-Befehl, der sowohl numerisch als auch für Strings hergenommen werden konnte. Meine ganzen Proggi's
wurden damals in BASIC (und später CP/M) geschrieben ... naja .... das war damals :|

Nochmals herzlichen Dank :allright:

Gruß 'DD'

Re: Fenster mit Gadgets erstellen

Verfasst: 10.06.2011 19:22
von DoubleDee
ts-soft hat geschrieben:Ich bin zu langsam :lol:
Noch ein Grundgerüst :wink:
.... ebenso vielen Dank. Jetzt kann's ich mir aussuchen :wink:

Ihr wart mir eine große Hilfe

Grüße 'DD'

Re: Fenster mit Gadgets erstellen

Verfasst: 10.06.2011 19:33
von ts-soft
Du brauchst von beiden Codes etwas und noch etwas drüber hinaus :wink:
Lies Dir also unbedingt die Hilfe zu den verwendeten Gadgets, sowie den allgemeinen Teil
durch, so wirst Du z.B. Flags wie #PB_String_Numeric finden.
Das sicherstellen, das nur gültige Werte eingegeben werden, bzw. die Überprüfung ist unbedingt
erforderlich. Laß Deine GUI durch einen Bekannten testen um zu sehen, was da noch schiefgehen
kann.
Der jetzt noch fehlende Teil wird der wichtigste sein, aber den kannst Du Dir vielleicht selbst er-
arbeiten. Die Bedienung einer Console unterscheidet sich grundsätzlich von einem Fenster. Bei
einer Console ist die Reihenfolge fest vorgegeben, bei einem Fenster sollte es bezüglich der
Reihenfolge möglichst wenig Einschränkungen geben.

Gruß
Thomas

Re: Fenster mit Gadgets erstellen

Verfasst: 10.06.2011 20:01
von rolaf
Eigendlich sollte auch das Einsteigerhandbuch hier sehr nützlich sein, zumal nun ins Deutsche übersetzt: http://www.purebasic.fr/german/viewtopi ... =1&t=23627