Seite 1 von 2

Text aus Zeile lesen und anzeigen..

Verfasst: 05.12.2007 23:48
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

Verfasst: 05.12.2007 23:56
von HeX0R
Vielleicht zeigst du der Einfachheithalber mal was du schon "gebastelt" hast.
Inhalte einzelner Zellen bekommst du via GetGadgetItemText().

Verfasst: 06.12.2007 00:44
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 ;)

Verfasst: 06.12.2007 01:04
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 

Verfasst: 06.12.2007 12:56
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)

Verfasst: 06.12.2007 12:59
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

Verfasst: 06.12.2007 22:18
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

Verfasst: 06.12.2007 23:07
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

Verfasst: 06.12.2007 23:08
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

Verfasst: 07.12.2007 08:46
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