Ich kann Dir jetzt nicht alle Fragen beantworten, aber hier schon mal
ein Beispiel, wie du es mit dem Komma machen könntest.
Weitere Fragen bezüglich Datenbanken würde ich nach und nach
empfehlen, wenn du ein Beispiel postest, worauf man eben besser
antworten kann.
Schau Dir mal die WaitWindowEvent() im Repeat / Until - Beispielen
in der PB-Hilfe an. Am Besten unter Gadget bzw. GadgetID.
Dort kann man die GadgetID() prüfen, welche z.B. für das Auslösen
eines bestimmten Buttons vor und zurück nötig ist. Beispiele zur
Repeatschleife sind in der normalen PB-Hilfe genug vorhanden. Wir
werden Dir aber garantiert weiterhelfen, wenn es irgendwo im Source
hakt
So, nun hier das Komma - Beispiel. Sicher kann man hier und da was kürzen. Das wollte ich aber hier vermeiden.
Code: Alles auswählen
#WindowWidth = 420
#WindowHeight = 170
Enumeration
#zahl1
#zahl2
#gesamt
#text_1
#text_2
#text_gesamt
#button_berechne
EndEnumeration
Global zahl1.s
Global zahl2.s
Global gesamt.f
If OpenWindow(0, 100, 200, #WindowWidth, #WindowHeight, "TEST-RECHNENPROGRAMM", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget)
StringGadget(#zahl1, 70, 40, 90, 20, "")
StringGadget(#zahl2, 70, 80, 90, 20, "")
StringGadget(#gesamt, 70, 120, 90, 20, "")
TextGadget(#text_1, 10, 40, 250, 20, "Zahl 1:")
TextGadget(#text_2, 10, 80, 250, 20, "Zahl 2:")
TextGadget(#text_gesamt, 10, 120, 250, 20, "Gesamt:")
ButtonGadget(#button_berechne, 190, 60, 200, 20, "BERECHNE")
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #button_berechne
If EventType() = #PB_EventType_LeftClick
zahl1 = GetGadgetText(#zahl1)
zahl2 = GetGadgetText(#zahl2)
If FindString(zahl1,",",0)
zahl1=ReplaceString(zahl1,",",".");Da PB mit Punkt rechnet, korrigiert dieser und folgender Replace das Ergebnis von Komma nach Punkt.
EndIf
If FindString(zahl2,",",0)
zahl2=ReplaceString(zahl2,",",".")
EndIf
;gesamt.l = zahl1 + zahl2
gesamt = ValF(zahl1) + ValF(zahl2)
SetGadgetText(#gesamt, ReplaceString(StrF(gesamt,2),".",",")); Maximal 2 Stellen hinterm Komma (.), wobei das Replace hier den String korrekt mit einem (,) ausgibt.
EndIf
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
EndIf
End
Anstelle der beiden IF-Abfragen für zahl1 und zahl2 könntest du es
diese IF's weglassen und die beiden Zeilen tauschen. Nur so nebenbei.
Code: Alles auswählen
;... Sorry kommentierte Zeile weglassen :)
zahl1 = ReplaceString(GetGadgetText(#zahl1),",",".")
zahl2 = ReplaceString(GetGadgetText(#zahl2),",",".")
;... Sorry kommentierte Zeile weglassen :)
Gruß Falko