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 ...
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:
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
(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
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

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'
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
Gruß 'DD'
Re: Fenster mit Gadgets erstellen
Verfasst: 10.06.2011 19:22
von DoubleDee
ts-soft hat geschrieben:Ich bin zu langsam
Noch ein Grundgerüst

.... ebenso vielen Dank. Jetzt kann's ich mir aussuchen
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
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