|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
shiZZle
Anmeldungsdatum: 18.11.2007 Beiträge: 11
|
Verfasst am: 14.02.2008, 18:04 Titel: VB Taschenrechner |
|
|
Hi ich hab nen Taschenrechner programmiert, der aber irgendwie nicht funktioniert. Pls hilft mir.
Code: | Dim zahl1 As String
Dim rechenart As String
Private Sub cmd_0_Click()
Text1 = Text1 + "0"
'tf_display = tf_display + 0
End Sub
Private Sub cmd_1_Click()
Text1 = Text1 + "1"
'cmd_display = tf_display + 1
End Sub
Private Sub cmd_2_Click()
Text1 = Text1 + "2"
'tf_display = tf_display + 2
End Sub
Private Sub cmd_3_Click()
Text1 = Text1 + "3"
'tf_display = tf_display + 3
End Sub
Private Sub cmd_4_Click()
Text1 = Text1 + "4"
'tf_display = tf_display + 4
End Sub
Private Sub cmd_5_Click()
Text1 = Text1 + "5"
'tf_display = tf_display + 5
End Sub
Private Sub cmd_6_Click()
Text1 = Text1 + "6"
'tf_display = tf_display + 6
End Sub
Private Sub cmd_7_Click()
Text1 = Text1 + "7"
'tf_display = tf_display + 7
End Sub
Private Sub cmd_8_Click()
Text1 = Text1 + "8"
'tf_display = tf_display + 8
End Sub
Private Sub cmd_9_Click()
Text1 = Text1 + "9"
'tf_display = tf_display + 9
End Sub
Private Sub cmd_addieren_Click()
zahl1 = Text1
'die Variable soll genau den Wert des Displays erhalten
rechenart = "addieren"
'variable "rechenart" soll den Wert "addieren" erhalten
Text1 = ""
'Display leeren
End Sub
Private Sub cmd_dividieren_Click()
zahl1 = Text1
'die Variable soll genau den Wert des Displays erhalten
rechenart = "dividieren"
'variable "rechenart" soll den Wert "dividieren" erhalten
Text1 = ""
'Display leeren
End Sub
Private Sub cmd_ergebnis_Click()
If rechenart = "addieren" Then
Text1 = CDbl(zahl1) + CDbl(Text1)
'mit cdbl() wird der jeweilige Inhalt in Zahlen umgewandelt
ElseIf rechenart = "subtrahieren" Then
Text1 = CDbl(zahl1) - CDbl(Text1)
ElseIf rechenart = "multiplizieren" Then
Text1 = CDbl(zahl1) * CDbl(Text1)
ElseIf rechenart = "dividieren" Then
Text1 = CDbl(zahl1) / CDbl(Text1)
End If
End Sub
Private Sub cmd_löschen_Click()
Text1 = ""
zahl1 = ""
'Variable und Display löschen
End Sub
Private Sub cmd_multiplizieren_Click()
zahl1 = Text1
'die Variable soll genau den Wert des Displays erhalten
rechenart = "multiplizieren"
'variable "rechenart" soll den Wert "multiplizieren" erhalten
Text1 = ""
'Display leeren
End Sub
Private Sub cmd_subtrahieren_Click()
zahl1 = Text1
'die Variable soll genau den Wert des Displays erhalten
rechenart = "subtrahieren"
'variable "rechenart" soll den Wert "subtrahieren" erhalten
Text1 = ""
'Display leeren
End Sub
Private Sub Form_Load()
End Sub
|
|
|
Nach oben |
|
|
raph ael
Anmeldungsdatum: 12.04.2006 Beiträge: 472
|
Verfasst am: 14.02.2008, 18:41 Titel: |
|
|
Irgendwie... kompliziert...
Programmiere nicht viel VB (Ja, ich tus, aber weil VB 2008 Express nur unter XP SP 2 und Vista läuft, publiziere ich nix), sieht aber sehr unübersichtlich aus.
Was sind die Buttons hinter "cmd_0", "cmd_1",...?
Code: |
private sub bttplus_Click()
dim erg as single
erg = CSng(Me.txtWert1.text) + CSng(Me.txtWert1.text)
Me.txtErg.text=erg
end sub
usw.
|
Ausgehend von der Tatsache, dass bttplus_Click() die OnClick Prozedur für einen Button ist und txtWert1, txtWert2 und txtErg Inputfelder ist. Ist übersichtlicher und die Methode wird in einem Buch beschrieben _________________
Zitat: | 1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein. |
|
|
Nach oben |
|
|
shiZZle
Anmeldungsdatum: 18.11.2007 Beiträge: 11
|
Verfasst am: 14.02.2008, 18:45 Titel: |
|
|
irgendwie hab ich das net so gerafft, was du mir da gesagt hast.
JA die cmd_X sind buttons.
Vielleicht könnteste mit das bisschen besser erklären |
|
Nach oben |
|
|
raph ael
Anmeldungsdatum: 12.04.2006 Beiträge: 472
|
Verfasst am: 14.02.2008, 19:03 Titel: |
|
|
Sorry bin gerade drauf gekommen wofür die "cmd_x" Buttons gut sind. Vom Konzept her siehts irgendwie aus wie der Standard- Windows- Taschenrechner [spott]"MW - 00-X" [/spott].
Ich meine, das das umständlich programmiert ist, weil
1. Der Windows Taschenrechner schneller sein wird
2. Der Windows Taschenrechner mehr Funktionen haben wird
Jedenfalls ist die Methode mit Textboxen wesentlich leichter (und unterstützt nebenbei auch Drag'n'Drop). So wie ich es gepostet habe. _________________
Zitat: | 1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein. |
|
|
Nach oben |
|
|
shiZZle
Anmeldungsdatum: 18.11.2007 Beiträge: 11
|
Verfasst am: 14.02.2008, 19:11 Titel: |
|
|
naja es ist ne hausaufgabe...von daher kann ich da nichts machen
die frage ist, warum es nicht funktioniert |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 14.02.2008, 20:33 Titel: |
|
|
Falls es VB5 oder VB6 ist, würde ich an deiner Stelle den Buttons ein Index-Feld geben und dafür nur allen Buttons den selben Namen geben (spart viiiiel code und arbeit). Geht AFAIK aber in diesem sch*** VB 2005, 2008 oder was auch immer nicht. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
raph ael
Anmeldungsdatum: 12.04.2006 Beiträge: 472
|
Verfasst am: 14.02.2008, 20:43 Titel: |
|
|
Mit Tags gehts auch, oder man verwendet einfach den TabIndex dafür. Dann hat man auch eine bessere Navigation eingebaut . _________________
Zitat: | 1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein. |
|
|
Nach oben |
|
|
A.K.
Anmeldungsdatum: 02.05.2005 Beiträge: 467 Wohnort: HH
|
Verfasst am: 15.02.2008, 10:21 Titel: |
|
|
Hi,
eine Frage zu dem Programm:
Lautet die Hausaufgabe "programmiere einen Taschenrechner" oder "finde den Fehler in diesem vorprogrammierten Taschenrechner"?
Je nach Aufgabenstellung geht die Lösung ja in eine komplett andere Richtung.
MFG A.K.
PSTipp:
Lass dir mal im cmd_ergebnis_click-sub die Variable "Text1" ausgeben.
Code: |
Private Sub cmd_ergebnis_Click()
MSGBOX (text1)
'...dein Code
End Sub
|
_________________
http://forum.IconSoft.de
http://www.pnpbb.de - hol dir jetzt dein eigenes kostenloses Forum *NEU* |
|
Nach oben |
|
|
Ferdi
Anmeldungsdatum: 10.03.2007 Beiträge: 284 Wohnort: Berlin
|
Verfasst am: 26.03.2008, 12:26 Titel: |
|
|
Sind im VBDOS-Paket nicht beispielprogramme dabei?
Da ist auch ein Taschenrechner vorhanden (Sowohl Standart, als auch Professionell -Edition).
/EDIT:
Ich habs:
Code: | ü ØŅ
L
) E
£ ]
Ø x
„
z Ŗ
² | Æ
· ~ “
¼ ¹
Į ¾
Ę Ć
Ė Č
Š
Ķ
Õ Ņ y
Ś ×
ß Ü ±
å į =
ź ē
ļ ģ
ō ń
ł ö
ž
ū Y
Į
a } µ Ń ķ %AĶé!
Calculator 0 0 1 2 3 4 5 6 7 8 9 . C CE + - * / = % frmCalc
lblReadout- cmdNumber;
cmdDecimalH cmdCancelZcmdCancelEntryicmdOperatorw
cmdPercent
pctKeyTrap 4Q’’$ ’’čÅtę ļ c Ü NV ÷ ¼ +@ g“ É č ž Form_Loadw cmdPercent_Click cmdCancel_Click cmdDecimal_Click¶ cmdCancelEntry_ClickŃ cmdNumber_Click Indx cmdOperator_Click FALSEY TRUE Op15 Op2 DecimalFlag NumOpsŖ LastInput OpFlag Decimal
lblReadout Caption
pctKeyTrap| cmdNumber temp cmdOperator
cmdDecimal Top SCREEN Height Left Width pctKeyTrap_KeyPress KeyAsciiž
H- - Visual Basic for MS-DOS Calculator Program- 6 Calculator program that supports mouse and keyboard input.a 0 Copyright (C) 1982-1992 Microsoft Corporation : You have a royalty-free right to use, modify, reproduce D and distribute the sample applications and toolkits provided with 8 Visual Basic for MS-DOS (and/or any modified version) ; in any way you find useful, provided that you agree thati : Microsoft has no warranty, obligations or liability for . any of the sample applications or toolkits.
H- = Include file containing declarations for called procedures- calc.bi' 1 Procedure declarations for Calculator program. D V D c D w D D D ¶ É D Ń É # d ę # ę t ļ }’’
÷ # Previously input operand. }’’
ž # Second operand. }’’
# Decimal point present yet? }’’
# Number of operands. }’’
" # Indicate type of last keypress. }’’
+ # Indicate pending operation. }’’
5 ( # Decimal indicator (country specific). ’’’’’’’’(
A cmdCancelEntry_Click 8Ž 3 Click event procedure for Cancel Entry (CE) key.f v m 0" @ N ę 1 ( Decimal point here does not indicate fraction. m CE ( Track what user did last. YĮÉ Q ’’’’’’’’ cmdCancel_Click 8Ź , Click event procedure for Cancel (C) key. / Reset the display and initializes variables. v w m 0" @ N ę d m NONE m + YĮÉ Q ’’’’’’’’ cmdDecimal_Click 8| ) Click event procedure for Decimal key.a / If last keypress was an operator, initialize ' readout. Otherwise, append a decimali point to the display. v m NUMSqa m 0" 5 @ N ę M ’’ @ N 5 @ N P ļ - $ Decimal point here does indicate fraction.i m NUMS YĮÉ Q ’’’’’’’’ cmdNumber_Click 8 / Click event procedure for number (0-9) keys.c 3 Appends new number to the number in the display.n v ¶ É m NUMSqa m @ N ę P @ N É g N @ N m NUMS YĮÉ Q ’’’’’’’’
cmdOperator_Click 8X ; Click event procedure for operator (+, -, x, /, =) keys. 7 If the immediately preceeding keypress was part of ae 7 number, increment NumOps. If one operand is present,e 4 set Op1. If two are present, set Op1 equal to the 1 result of the operation on Op1 and the currentt ( input string, and display the result. v Ń É m NUMSa d P 5 If "," is being used as decimal separator, convert ( back to "." for numeric calculations. @ Nt 5m ,"tm ,"$] tm ,"$dm ."tĘ da tZ ÷ d M ’’ tZ ž +t ’’ 0m +"; ÷ ž ÷ 0m -"; ÷ ž w ÷ 0m *"; ÷ ž p ÷ 0m /"; @ ž da Pm Can't divide by zerodm
CalculatorÅ @I ’’ P ÷ ž ÷ @P 0m ="; ž ÷ R 5 If "," is being used as decimal separator, convert "." back to "," for display.m ÷ Q+t 5m ,"tm ."$] tm ."$dm ,"tĘ t @ N d P m OPS" É | N + YĮÉ Q ’’’’’’’’. cmdPercent_Click 8Ž - Click event procedure for percent (%) key." 9 Compute and display a percentage of the first operand. v c 5 If "," is being used as decimal separator, converta 5 back to "." for numeric calculations, then back toa "," for display.n @ Nt 5m ,"tm ,"$] tm ,"$dm ."tĘ ÷ tZped Q+t 5m ,"tm ."$] tm ."$dm ,"tĘ t @ N YĮÉ Q ’’’’’’’’ Form_Load 8ę ' Initialization routine for the form. ' Set all variables to initial values. v V ę d m NONE m + 1 Determine whether "." or "," should be used as / decimal separator based on value returned bya FORMAT$ (country specific). k Ą?m #.#"³t tm ,"$a m ," 5 m ," N I ’’ m ." 5 P Center form on screen. Ŗ Ŗwnd ` ¼ ¼wnd ` “ Q ’’’’’’’’ pctKeyTrap_KeyPress 0| 4 KeyPress event procedure for KeyTrap picture box. : The hidden KeyTrap control acts as the central keyboard ? handler. It processes keyboard input and invokes appropriate 4 Event Procedure. Focus is always returned to the 5 KeyTrap picture box at the end of each click event for the command buttons.h v Å Ü Üt ’’ e0 e9 < 5 5 0-9b , Üe0 w7 ¶ d!; 5 5 Cancel Entry (CE)h ,7 e
; 5 5 Enter is same as Equal (=) ,d7 Ń e ; 5 5 Cancel All (C) ,7 w e% ; 5
5 Percent (%)( ,7 c e* ; 5 5 Multiply (*) ,d 7 Ń e+ ; 5 5 Add (+)y ,d7 Ń e- ; 5 5 Subtract (-) ,d7 Ń e, ; e. ; 5 5 Decimal (.) or Comma (,) ,7 e/ ; 5 5 Divide (/) ,d
7 Ń e= ; 5 5 Equal (=)) ,d7 Ń : 5 Reject all others R Q ’’’’’’’’" |
Einfach in Editor Kopieren und als Calc.frm speichern
/EDIT²:
1) In welcher Sprache ist das? (Versionsnummer)
2) Am besten wäre es, wenn du uns das Projekt (Dateien) gibst, sodass wir es ausprobieren können
/EDIT³:
Hier das komplette Taschenrechnerprojekt
Viel Spaß damit
Mit feundlichen Grüßen aus dem Haus der Bundespressekonferenz in Berlin
wünscht Ferdi _________________ Dieser Post wurde cum grano salis gewürzt! Na dann: Guten Appetit! |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|