Fenster mit Gadgets erstellen

Anfängerfragen zum Programmieren mit PureBasic.
DoubleDee
Beiträge: 8
Registriert: 08.06.2011 17:41

Fenster mit Gadgets erstellen

Beitrag 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'
Zuletzt geändert von DoubleDee am 10.06.2011 18:57, insgesamt 1-mal geändert.
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: Anfängerfrage

Beitrag 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
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
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Fenster mit Gadgets erstellen

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Fenster mit Gadgets erstellen

Beitrag 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
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
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: Fenster mit Gadgets erstellen

Beitrag 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:
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
DoubleDee
Beiträge: 8
Registriert: 08.06.2011 17:41

Re: Fenster mit Gadgets erstellen

Beitrag 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'
DoubleDee
Beiträge: 8
Registriert: 08.06.2011 17:41

Re: Fenster mit Gadgets erstellen

Beitrag 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'
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: Fenster mit Gadgets erstellen

Beitrag 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
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
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: Fenster mit Gadgets erstellen

Beitrag 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
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Antworten