Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

VB Taschenrechner

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
shiZZle



Anmeldungsdatum: 18.11.2007
Beiträge: 11

BeitragVerfasst am: 14.02.2008, 18:04    Titel: VB Taschenrechner Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
raph ael



Anmeldungsdatum: 12.04.2006
Beiträge: 472

BeitragVerfasst am: 14.02.2008, 18:41    Titel: Antworten mit Zitat

verwundert 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 durchgeknallt
_________________
Zitat:
1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
shiZZle



Anmeldungsdatum: 18.11.2007
Beiträge: 11

BeitragVerfasst am: 14.02.2008, 18:45    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
raph ael



Anmeldungsdatum: 12.04.2006
Beiträge: 472

BeitragVerfasst am: 14.02.2008, 19:03    Titel: Antworten mit Zitat

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" zwinkern [/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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
shiZZle



Anmeldungsdatum: 18.11.2007
Beiträge: 11

BeitragVerfasst am: 14.02.2008, 19:11    Titel: Antworten mit Zitat

naja es ist ne hausaufgabe...von daher kann ich da nichts machen

die frage ist, warum es nicht funktioniert
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 14.02.2008, 20:33    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
raph ael



Anmeldungsdatum: 12.04.2006
Beiträge: 472

BeitragVerfasst am: 14.02.2008, 20:43    Titel: Antworten mit Zitat

Mit Tags gehts auch, oder man verwendet einfach den TabIndex dafür. Dann hat man auch eine bessere Navigation eingebaut lächeln .
_________________
Zitat:
1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
A.K.



Anmeldungsdatum: 02.05.2005
Beiträge: 467
Wohnort: HH

BeitragVerfasst am: 15.02.2008, 10:21    Titel: Antworten mit Zitat

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.
happy
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
Ferdi



Anmeldungsdatum: 10.03.2007
Beiträge: 284
Wohnort: Berlin

BeitragVerfasst am: 26.03.2008, 12:26    Titel: Antworten mit Zitat

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   cmdCancelZcmdCancelEntryiƒ cmdOperatorw
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.  @ N t  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  @ N t  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 zwinkern

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz