Text aus Zeile lesen und anzeigen..

Anfängerfragen zum Programmieren mit PureBasic.
maeffjus
Beiträge: 5
Registriert: 05.12.2007 15:45

Text aus Zeile lesen und anzeigen..

Beitrag von maeffjus »

Hallo zusammen,
also erst mal zu meiner schmach muss ich gestehen, ich habe nur sehr wenig erfahrung im programmieren...vor allem mit ner GUI.

So, ich möchte ein programm schreiben, welches werte einliest aus zellen die ich in ner gui eingebunden sind...aus diesen soll dann was berechnet werden...und das wieder ausgegeben werden in ner zelle...
So das optische habe ich schön einfach mit dem tool gebaut und als quellcode gespeichert..

Jetzt erstens, wie lese ich die zahlen ein?
Wie mache ich das vor allem auf "button-durck" (habe ich schon gebastelt)
und wie gebe ich das aus?

Ich habe früher halbwegs viel mit qbasic programmiert, des weiteren ist mir ccbasicc+ von der ccontrol (ne sps) auch bekannt (regelt unsere heizung)...
nur hiermit komme ich net klar...
hilfe :-)

Danke schonmal,
MfG
Matthias
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Vielleicht zeigst du der Einfachheithalber mal was du schon "gebastelt" hast.
Inhalte einzelner Zellen bekommst du via GetGadgetItemText().
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

also erst mal zu meiner schmach muss ich gestehen, ich habe nur sehr wenig erfahrung im programmieren...vor allem mit ner GUI.
In diesem Falle kann ich Dir erstmal die Hilfe wärmstens empfehlen !!!
Per F1 bekommst du diese zu sehen ;)

Das Auslesen... Schaue bei Befehlen in der Rubrik Gadgets unter (wie HeXor
schon sagt) GetGadgetText, GetGadgetitemText nach.

Da kannst Du mit Sicherheit flink was zusammenbauen.
Ist verständlich geschrieben, also keine Angst... und Copy&Paste ist da dein Freund, falls du Autovervollständigen nicht anhaben solltest...

Es könnten Dir hier ne Menge Leute ein Stück Code präsentieren, aber wenn man es nicht begreift, hat man schlechte Karten wenn man es wieder und anders braucht ;)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
Sebastian
Beiträge: 322
Registriert: 14.06.2006 16:46
Wohnort: Kiel

Beitrag von Sebastian »

So in etwa könnte Dein Programm aussehen:

Code: Alles auswählen


repeat
EventID=WaitWindowEvent() ; Wartet auf ein Event im Fenster
if EventID=#PB_Event_Gadget
 if EventGadget()=#Button1 ; Wurde der Button geklickt?
  Zahl1=Val(GetGadgetText(#StringGadget1)) ; Text 1 auslesen und in Integer wandeln
  Zahl2=Val(GetGadgetText(#StringGadget2))
  AusgabeZahl=Zahl1*Zahl2 ; Integerwert1,2 multiplizieren
  SetGadgetText(#StringGadget3,Str(AusgabeZahl)) ; Integer in Text umwandeln und ausgeben
 endif
endif

until EventID=#PB_Event_CloseWindow ; Falls das Fenster geschlossen wird 
(Win 11 64-bit, PB 6.04 und 6.10)
maeffjus
Beiträge: 5
Registriert: 05.12.2007 15:45

Beitrag von maeffjus »

Soooo, das ist mein programm...nur es öffnet sich nichts..:-) warum geht kein fenster auf?

Code: Alles auswählen

;...
;...
;...
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #String_0
  #String_1
  #String_2
  #String_3
  #String_4
  #String_5
  #String_6
  #String_7
  #Listview_0
  #Listview_1
  #Button_0
  #Frame3D_0
  #Frame3D_1
EndEnumeration


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 875, 72, 454, 272, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      StringGadget(#String_0, 20, 20, 150, 20, "Durchmesser außen")
      StringGadget(#String_1, 20, 50, 150, 20, "Durchmesser innen")
      StringGadget(#String_2, 20, 80, 150, 20, "Steigung")
      StringGadget(#String_3, 20, 110, 150, 20, "Steigung")
      StringGadget(#String_4, 20, 140, 150, 20, "Füllungsgrad")
      StringGadget(#String_5, 20, 170, 150, 20, "Faktor Doppelwelle")
      StringGadget(#String_6, 20, 200, 150, 20, "Paddelbreite")
      StringGadget(#String_7, 20, 230, 150, 20, "Anzahl der Paddel")
      ListViewGadget(#Listview_0, 200, 20, 90, 30)
      ListViewGadget(#Listview_1, 200, 70, 90, 30)
      ButtonGadget(#Button_0, 200, 120, 90, 30, "")
      Frame3DGadget(#Frame3D_0, 280, 180, 110, 30, "")
      Frame3DGadget(#Frame3D_1, 280, 220, 110, 30, "")
      
    EndIf
  EndIf
EndProcedure

Repeat 
EventID=WaitWindowEvent() ; Wartet auf ein Event im Fenster 
If EventID=#PB_Event_Gadget 
 If EventGadget()=#Button_0 ; Wurde der Button geklickt? 
  Zahl1=Val(GetGadgetText(#String_1)) ; Text 1 auslesen und in Integer wandeln 
  Zahl2=Val(GetGadgetText(#String_2)) 
  AusgabeZahl=Zahl1*Zahl2 ; Integerwert1,2 multiplizieren 
  SetGadgetText(#String_3,Str(AusgabeZahl)) ; Integer in Text umwandeln und ausgeben 
 EndIf 
EndIf 

Until EventID=#PB_Event_CloseWindow ; Falls das Fenster geschlossen wird
----------
codevertagt (bobobo)
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

antwort: weil du das nicht programmiert hast.

das Fensteröffnen wird in einer Procedure definert und diese Procedure wird
nicht aufgerufen


ein

Code: Alles auswählen

 Open_Window_0()
vor der RepeatSchleife hilft hier
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
maeffjus
Beiträge: 5
Registriert: 05.12.2007 15:45

Beitrag von maeffjus »

Ja super! danke!
aber das nächste problem...das zweite listviewgadget baut sich nicht auf. habe alles mögliche probiert...am besten mal testen, dann seht ihrs..

Code: Alles auswählen

; PureBasic Visual Designer v3.95 build 1485 (PB4Code)

;
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #String_0
  #String_1
  #String_2
  #String_3
  #String_4
  #String_5
  #String_6
  #String_7
  #string_8
  #String_9
  #Text_0
  #Text_1
  #Text_2
  #Text_3
  #Text_4
  #Text_5
  #Text_6
  #Text_7
  #Text_8
  #Listview_0
  #Listview_1
  #Button_0
  #Text_9
EndEnumeration


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 663, 339, 435, 248, "Fördervolumenberechnung",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget | #PB_Window_BorderLess)
    If CreateGadgetList(WindowID(#Window_0))
      
      ListViewGadget(0, 270, 100, 80, 30)
        AddGadgetItem (0, 0, "Einwellig")   ; definieren des Listview-Inhalts
        AddGadgetItem (0, 1, "Zweiwellig")   ; definieren des Listview-Inhalts
        SetGadgetState(0, 0) 
      ListViewGadget(1, 270, 140, 80, 30)
        AddGadgetItem (1, 0, "Vollflügel")   ; definieren des Listview-Inhalts
        AddGadgetItem (1, 1, "Paddel")   ; definieren des Listview-Inhalts
        SetGadgetState(1, 0) 
        
      StringGadget(#String_1, 10, 10, 50, 20, "")
      StringGadget(#String_2, 10, 40, 50, 20, "")
      StringGadget(#String_3, 10, 70, 50, 20, "")
      StringGadget(#String_4, 10, 100, 50, 20, "")
      StringGadget(#String_5, 10, 130, 50, 20, "")
      StringGadget(#String_6, 10, 160, 50, 20, "0.7")
      StringGadget(#String_7, 10, 190, 50, 20, "")
      StringGadget(#String_8, 10, 220, 50, 20, "")
      StringGadget(#String_9, 270, 220, 50, 20, "")
              
      TextGadget(#Text_0, 70, 10, 180, 20, "Durchmesser Außen in mm")
      TextGadget(#Text_1, 70, 40, 180, 20, "Durchmesser Innen in mm")
      TextGadget(#Text_2, 70, 70, 180, 20, "Steigung in mm")
      TextGadget(#Text_4, 70, 100, 180, 20, "Drehzahl in u/min")
      TextGadget(#Text_5, 70, 130, 180, 20, "Füllungsgrad")
      TextGadget(#Text_6, 70, 160, 180, 20, "Faktor Doppelwelle")
      TextGadget(#Text_7, 70, 190, 180, 20, "Breite Paddel")
      TextGadget(#Text_8, 70, 220, 180, 20, "Anzahl Paddel")
      TextGadget(#Text_9, 330, 220, 180, 20, "Volumenstrom in m³/h")
      
      ButtonGadget(#Button_0, 270, 10, 150, 70, "Berechnen")
      
     
    EndIf
EndIf
EndProcedure
 Open_Window_0()
Define Zahl1.f
Define Zahl2.f
Define VolumenSF.f 
Define Foerdervolumen.f
Define Zahl4.f
Define Zahl5.f
Repeat 
EventID=WaitWindowEvent() ; Wartet auf ein Event im Fenster 
If EventID=#PB_Event_Gadget 
 If EventGadget()=#Button_0 ; Wurde der Button geklickt? 
  Zahl1=ValD(GetGadgetText(#String_1)) ; Text 1 auslesen und in Integer wandeln 
  Zahl2=ValD(GetGadgetText(#String_2)) 
  Zahl3=ValD(GetGadgetText(#String_3))
  Zahl4=ValD(GetGadgetText(#String_4))
  Zahl5=ValD(GetGadgetText(#String_5))
  VolumenSF=((Zahl1/1000*Zahl1/1000)-(Zahl2/1000*Zahl2/1000))*((ACos(-1))/4)*(Zahl3/1000) ; Berechnung Volumen zw.SF
  FoerderVolumen=VolumenSF*60*Zahl4*zahl5  ; Berechnung des Volumenstroms
  SetGadgetText(#String_9,StrD(Foerdervolumen,2)) ; Integer in Text umwandeln und ausgeben 
   EndIf 
EndIf 

Until EventID=#PB_Event_CloseWindow ; Falls das Fenster geschlossen wird
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Du:
maeffjus hat geschrieben:

Code: Alles auswählen

      ListViewGadget(0, 270, 100, 80, 30)
      AddGadgetItem (0, 0, "Einwellig")   ; definieren des Listview-Inhalts
      AddGadgetItem (0, 1, "Zweiwellig")   ; definieren des Listview-Inhalts
      SetGadgetState(0, 0) 
      ListViewGadget(1, 270, 140, 80, 30)
      AddGadgetItem (1, 0, "Vollflügel")   ; definieren des Listview-Inhalts
      AddGadgetItem (1, 1, "Paddel")   ; definieren des Listview-Inhalts
      SetGadgetState(1, 0) 
Ich:

Code: Alles auswählen

      ListViewGadget(#Listview_0, 270, 100, 80, 30)
      AddGadgetItem (#Listview_0, 0, "Einwellig")   ; definieren des Listview-Inhalts
      AddGadgetItem (#Listview_0, 1, "Zweiwellig")   ; definieren des Listview-Inhalts
      SetGadgetState(#Listview_0, 0)
      ListViewGadget(#Listview_1, 270, 140, 80, 30)
      AddGadgetItem (#Listview_1, 0, "Vollflügel")   ; definieren des Listview-Inhalts
      AddGadgetItem (#Listview_1, 1, "Paddel")   ; definieren des Listview-Inhalts
      SetGadgetState(#Listview_1, 0)
fällt der Groschen? ;-)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

maeffjus hat geschrieben: aber das nächste problem...das zweite listviewgadget baut sich nicht auf. habe alles mögliche probiert...am besten mal testen, dann seht ihrs..
Alles ? Nö <)
Try this:

Code: Alles auswählen

      ListViewGadget(#Listview_0, 270, 100, 80, 30)
        AddGadgetItem (#Listview_0, 0, "Einwellig")   ; definieren des Listview-Inhalts
        AddGadgetItem (#Listview_0, 1, "Zweiwellig")   ; definieren des Listview-Inhalts
        SetGadgetState(#Listview_0, 0)
      ListViewGadget(#Listview_1, 270, 140, 80, 30)
        AddGadgetItem (#Listview_1, 0, "Vollflügel")   ; definieren des Listview-Inhalts
        AddGadgetItem (#Listview_1, 1, "Paddel")       ; definieren des Listview-Inhalts
        SetGadgetState(#Listview_1, 0)
hdh... scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
maeffjus
Beiträge: 5
Registriert: 05.12.2007 15:45

Beitrag von maeffjus »

oje...da hätte ich auch drauf kommen können....naja was solls:-)
Jetzt noch zwei sachen, wie bekomme ich da ein icon oben links in die fensterleiste? (und ich glaube auch in den tray?)
Und Datei selbst könnte auch ein Icon vertragen...

Vielen, vielen dank schonmal für eure hilfe bisher!

Ach nur noch vorneweg das wird eine executable...und das bild bzw die icons sollen da eingeschlossen sein.

MfG
Matthiass
Antworten