Startseite

[HWE-News] [HWE-FAQ] [Tests] [Artikel] [Softwareecke] [RC5-Proxy] [Overclocking] [TreiberEcke] [HWE-FanShop] [Links]

Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
20. August 2018, 23:08:41 Uhr

Einloggen mit Benutzername, Passwort und Sitzungslänge
Suche:     Erweiterte Suche
223511 Beiträge in 24105 Themen von 18384 Mitglieder, Neuestes Mitglied: bekommt6

RC5-Teamstats: Gestern: 0 WUs, . Platz,
Gesamt: 0 WUs, . Platz ( Members)

Übersicht Hilfe Suche Kalender Einloggen Registrieren
HWE-Forum.de  |  Internet und Co.  |  HTML, PHP, XML, JavaScript u. Co. (Moderatoren: TMK, American)  |  Thema: Calcutor Probleme (VB) Hilfe!!!
0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Thema versenden Drucken
Autor Thema: Calcutor Probleme (VB) Hilfe!!!  (Gelesen 3108 mal)
slaves
Stammgast
*****

Ranking: 12
Offline Offline

Geschlecht: Männlich
Beiträge: 866


« am: 10. Juli 2007, 19:35:33 Uhr »

weiß nich genau ob das der richtige bereich ist, aber ich habs richtig eilig... ;)

ich soll nen Taschenrechner programmieren für ein Referat,aber ich hab ein Problem:
soweit steht der code schon auch beim debuggen gibt es keine probleme,aber wenn man auf die "tasten" drückt passiert nichts!

p.s.: in virtual basic programmiert

hier der code:

Public Class Form1
    Dim zahl1 As String
    Dim rechenart As String
    Dim Text1 As Integer

    Private Sub Command9_click()
        Text1 = Text1 + "9"
        'Display = Display + 9 '
    End Sub
    Private Sub Command1_click()
        Text1 = Text1 + "1"
        'Display = Display + 1 '
    End Sub

    Private Sub Command2_click()
        Text1 = Text1 + "2"
        'Display = Display + 2 '
    End Sub

    Private Sub Command3_click()
        Text1 = Text1 + "3"
        'Display = Display + 3 '
    End Sub
    Private Sub Command4_click()
        Text1 = Text1 + "4"
        'Display = Display + 4 '
    End Sub

    Private Sub Command5_click()
        Text1 = Text1 + "5"
        'Display = Display + 5 '
    End Sub

    Private Sub Command6_click()
        Text1 = Text1 + "6"
        'Display = Display + 6 '
    End Sub

    Private Sub Command7_click()
        Text1 = Text1 + "7"
        'Display = Display + 7 '
    End Sub

    Private Sub Command8_click()
        Text1 = Text1 + "8"
        'Display = Display + 8 '
    End Sub

    Private Sub Command0_click()
        Text1 = Text1 + "0"
        'Display = Display + 0 '
    End Sub

    Private Sub Command11_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 Command12_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 Command13_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 Command14_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 CommandC_click()
        text1 = ""
        zahl1 = ""
        'Variable und Display löschen'
    End Sub

    Private Sub Commandistgleich_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

End Class


ich hab das gefühl es liegt mit der deklarierung von text1 zusammen...
Gespeichert
Intel E8400 @boxed                          
Asus P5Q                        
2x 1GB Kingston HyperX SLI-Kit DDR2-1066 
Sapphire HD3870 @Arctic Accelero S1+2*120mm Scythe Slipstream
OCZ StealthXStream 500Watt
LG W2443T 24"

MacBook Pro 13" 2,4 GHz / 4 GB RAM  / NVIDIA Geforce 320M
ASUS MS227N 22"
gandal
RC5 [HWE]-Team
*****

Ranking: 212
Offline Offline

Geschlecht: Männlich
Beiträge: 5206


More WU's for HWE

« Antwort #1 am: 10. Juli 2007, 20:35:24 Uhr »

Sieht aus wie VB-Express, oder ?

Mich wundert das ganze ein bischen. In der IDE wird eigentlich jeder syntaktischer Fehler sofort angezeigt.
Zuordnungen zu Textfelder würde ich immer mit "yyyyy.text" machen. Das sagt Dir die IDE doch auch. Typfehler lassen sich auf diese Weise sofort umgehen.

Deine Variable "Text1" hast Du aber als Integer definiert und ihr eine String-Wert zugeordnet. Da sollte die IDE gleich motzen.
Hier ist schon der Variablennamen irreführend.
Zahl1 wiederrum ist eine String (Zeichenfeld), welchem Du ohne Umschweife die Zahl zuordnest.
Dies wiederum würde man mit DasisteineZahl.tostring machen.

Hier fehlt bei Aufruf des Klick-Ereignisse eine ganze Menge.
Das Standardereignis würde in Express so aussehen:

Private Sub cmd1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd1.Click

end sub


Probier es mal mit einem Doppelklick auf den Button.


Bei dem Code fehlt noch jede Menge ...
Den Befehlsflächen solltest Du vernünftige Namen geben, z.B.  cmdMult  zum Multiplizieren.

Welche VisualBasic-Version ist es denn ?
« Letzte Änderung: 10. Juli 2007, 20:41:02 Uhr von gandal » Gespeichert
         
Real Programmers code in binary
slaves
Stammgast
*****

Ranking: 12
Offline Offline

Geschlecht: Männlich
Beiträge: 866


« Antwort #2 am: 10. Juli 2007, 21:00:35 Uhr »

Zitat
Mich wundert das ganze ein bischen. In der IDE wird eigentlich jeder syntaktischer Fehler sofort angezeigt.
Zuordnungen zu Textfelder würde ich immer mit "yyyyy.text" machen. Das sagt Dir die IDE doch auch. Typfehler lassen sich auf diese Weise sofort umgehen.

Deine Variable "Text1" hast Du aber als Integer definiert und ihr eine String-Wert zugeordnet. Da sollte die IDE gleich motzen.
Hier ist schon der Variablennamen irreführend.
Zahl1 wiederrum ist eine String (Zeichenfeld), welchem Du ohne Umschweife die Zahl zuordnest.
Dies wiederum würde man mit DasisteineZahl.tostring machen.

also was soll ich da ändern?

Zitat
Probier es mal mit einem Doppelklick auf den Button.
auf welchem von den 16 ? ;)
 
Zitat
Welche VisualBasic-Version ist es denn ?
Microsoft Visual Basic 2005 Express Edition
Gespeichert
Intel E8400 @boxed                          
Asus P5Q                        
2x 1GB Kingston HyperX SLI-Kit DDR2-1066 
Sapphire HD3870 @Arctic Accelero S1+2*120mm Scythe Slipstream
OCZ StealthXStream 500Watt
LG W2443T 24"

MacBook Pro 13" 2,4 GHz / 4 GB RAM  / NVIDIA Geforce 320M
ASUS MS227N 22"
gandal
RC5 [HWE]-Team
*****

Ranking: 212
Offline Offline

Geschlecht: Männlich
Beiträge: 5206


More WU's for HWE

« Antwort #3 am: 10. Juli 2007, 21:06:12 Uhr »

also was soll ich da ändern?
Benenne die Variablen mal vernünftig und weise ihnen sinvolle Typen zu.
Welchen Zahlenraum willst Du überhaupt abdecken ?


auf welchem von den 16 ? ;)
Das spielt doch keine Rolle, es geht darum, daß Du den Rahmen Der Sub-Routine automatisch erhälst.


Unten in der IDE ist ein Fenster, da werden Dir die Warnhinweise und Fehler doch angezeigt.
Ein Doppelklick darauf und Du stehst an der Stelle ...
Im Source werden die kritischen Bereich auch unterkringelt. Wenn Du den Mauszeiger draufhälst weißt Du auch schon mehr.

In den Optionen zur IDE solltest Du strenge Regeln für die Typ-Prüfung, ... verwenden, daß erspart Dir ne Menge Arbeit.
« Letzte Änderung: 10. Juli 2007, 21:08:28 Uhr von gandal » Gespeichert
         
Real Programmers code in binary
slaves
Stammgast
*****

Ranking: 12
Offline Offline

Geschlecht: Männlich
Beiträge: 866


« Antwort #4 am: 10. Juli 2007, 21:09:46 Uhr »

Benenne die Variablen mal vernünftig und weise ihnen sinvolle Typen zu.
Welchen Zahlenraum willst Du überhaupt abdecken ?
aber das benennen is doch egal...außerdem soll das leicht verständlich sein für meine klasse (da hat keiner ahnung von so nem zeug ;) )
zwischen 0-9999 sollte reichen

Zitat
Unten in der IDE ist ein Fenster, da werden Dir die Warnhinweise und Fehler doch angezeigt.
Ein Doppelklick darauf und Du stehst an der Stelle ...
es wird kein einziger fehler,warnung oder meldung angezeigt...
Gespeichert
Intel E8400 @boxed                          
Asus P5Q                        
2x 1GB Kingston HyperX SLI-Kit DDR2-1066 
Sapphire HD3870 @Arctic Accelero S1+2*120mm Scythe Slipstream
OCZ StealthXStream 500Watt
LG W2443T 24"

MacBook Pro 13" 2,4 GHz / 4 GB RAM  / NVIDIA Geforce 320M
ASUS MS227N 22"
gandal
RC5 [HWE]-Team
*****

Ranking: 212
Offline Offline

Geschlecht: Männlich
Beiträge: 5206


More WU's for HWE

« Antwort #5 am: 10. Juli 2007, 21:20:06 Uhr »

aber das benennen is doch egal...außerdem soll das leicht verständlich sein für meine klasse (da hat keiner ahnung von so nem zeug ;) )
Klar, aber wenn aus den Namen schon hervorgeht was das soll, ist es viel leichter.

Eine Stringveriable weißt man eben nicht die Bezeichnung "Zahl" zu, während man der Zahl die Bezeichnung "Text" zuweist.
Da wird schon das lesen des Quelltextes schwer, weil man nie weiß, was die Variable überhaupt macht, und welchen Typ sie hat.


Sollst Du den Quelltext darlegen, oder nur den Rechner als fertiges Produkt vorführen ?
Wie heißt denn das Feld mit der Anzeige in Deinem Programm, das über all den Buttons ...
Gespeichert
         
Real Programmers code in binary
slaves
Stammgast
*****

Ranking: 12
Offline Offline

Geschlecht: Männlich
Beiträge: 866


« Antwort #6 am: 10. Juli 2007, 21:23:54 Uhr »

Sollst Du den Quelltext darlegen, oder nur den Rechner als fertiges Produkt vorführen ?
da keiner davon ahnung hat bleibt das mir überlassen...ich könnte auch diesen code vorlegen und die leute würden keine fehler entdecken :D

Zitat
Wie heißt denn das Feld mit der Anzeige in Deinem Programm, das über all den Buttons ...


TextBox1



edit:
in meinem ganzen text kommt kein einziges mal TextBox1 vor ;)

ich glaube ich hab die ganze zeit text1 statt TextBox1 benutz ...

ok ich hab jetzt 23 fehler ( ;) )
19 hab ich nun gelöst indem ich text1 als string deklariert habe...
« Letzte Änderung: 10. Juli 2007, 21:33:47 Uhr von slaves » Gespeichert
Intel E8400 @boxed                          
Asus P5Q                        
2x 1GB Kingston HyperX SLI-Kit DDR2-1066 
Sapphire HD3870 @Arctic Accelero S1+2*120mm Scythe Slipstream
OCZ StealthXStream 500Watt
LG W2443T 24"

MacBook Pro 13" 2,4 GHz / 4 GB RAM  / NVIDIA Geforce 320M
ASUS MS227N 22"
slaves
Stammgast
*****

Ranking: 12
Offline Offline

Geschlecht: Männlich
Beiträge: 866


« Antwort #7 am: 10. Juli 2007, 21:35:50 Uhr »

die letzten 4 fehler beziehen sich auf:

       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)

edit:
auch gelöst ;) durch die fehlerkorrektur

der code sieht jetzt so aus (funzt immer noch nicht):

Public Class Form1
    Dim zahl1 As String
    Dim rechenart As String
    Dim Text1 As String

    Private Sub Command9_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Text1 = Text1 + "9"
        'Display = Display + 9 '
    End Sub
    Private Sub Command1_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Text1 = Text1 + "1"
        'Display = Display + 1 '
    End Sub

    Private Sub Command2_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Text1 = Text1 + "2"
        'Display = Display + 2 '
    End Sub

    Private Sub Command3_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Text1 = Text1 + "3"
        'Display = Display + 3 '
    End Sub
    Private Sub Command4_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Text1 = Text1 + "4"
        'Display = Display + 4 '
    End Sub

    Private Sub Command5_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Text1 = Text1 + "5"
        'Display = Display + 5 '
    End Sub

    Private Sub Command6_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Text1 = Text1 + "6"
        'Display = Display + 6 '
    End Sub

    Private Sub Command7_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Text1 = Text1 + "7"
        'Display = Display + 7 '
    End Sub

    Private Sub Command8_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Text1 = Text1 + "8"
        'Display = Display + 8 '
    End Sub

    Private Sub Command0_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Text1 = Text1 + "0"
        'Display = Display + 0 '
    End Sub

    Private Sub Command11_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        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 Command12_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        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 Command13_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        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 Command14_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        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 CommandC_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Text1 = ""
        zahl1 = ""
        'Variable und Display löschen'
    End Sub

    Private Sub Commandistgleich_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        If rechenart = "addieren" Then
            Text1 = CStr(CDbl(zahl1) + CDbl(Text1))
            'mit cdbl() wird der jeweilige Inhalt in Zahlen umgewandelt'
        ElseIf rechenart = "subtrahieren" Then
            Text1 = CStr(CDbl(zahl1) - CDbl(Text1))
        ElseIf rechenart = "multiplizieren" Then
            Text1 = CStr(CDbl(zahl1) * CDbl(Text1))
        ElseIf rechenart = "dividieren" Then
            Text1 = CStr(CDbl(zahl1) / CDbl(Text1))
        End If
    End Sub



End Class

« Letzte Änderung: 10. Juli 2007, 21:38:45 Uhr von slaves » Gespeichert
Intel E8400 @boxed                          
Asus P5Q                        
2x 1GB Kingston HyperX SLI-Kit DDR2-1066 
Sapphire HD3870 @Arctic Accelero S1+2*120mm Scythe Slipstream
OCZ StealthXStream 500Watt
LG W2443T 24"

MacBook Pro 13" 2,4 GHz / 4 GB RAM  / NVIDIA Geforce 320M
ASUS MS227N 22"
gandal
RC5 [HWE]-Team
*****

Ranking: 212
Offline Offline

Geschlecht: Männlich
Beiträge: 5206


More WU's for HWE

« Antwort #8 am: 10. Juli 2007, 21:40:51 Uhr »

In den Fehlerhinweisen sollte genau stehen, was falsch ist.


Text1 ist bei Dir eine Stringvariable, der Du den Wert einer Zahl zuweist.
Das kannst Du so ja nicht machen, Du mußt das ganze wieder wandeln.

z.B. so ...

Dim Ergebnis as double
Ergebnis = CDbl(zahl1) - CDbl(Text1)
text1.text = Ergebnis.tostring

Dann wird aber immer noch nichts angezeigt ...
Gespeichert
         
Real Programmers code in binary
slaves
Stammgast
*****

Ranking: 12
Offline Offline

Geschlecht: Männlich
Beiträge: 866


« Antwort #9 am: 10. Juli 2007, 21:41:56 Uhr »

wo liegt das problem? *ichspringgleich* ;)

edit:

egal ... aber vielen,vielen dank für deine hilfe!  :D

ich werd ihnen einfach den quelltext zeigen und ein bild von der windows oberfläche des programms...
in meiner klasse kennt sowieso keiner damit aus...besonders nicht wenn ich das auf Spanisch vortragen muss ;)

 :danke1:
« Letzte Änderung: 10. Juli 2007, 21:50:53 Uhr von slaves » Gespeichert
Intel E8400 @boxed                          
Asus P5Q                        
2x 1GB Kingston HyperX SLI-Kit DDR2-1066 
Sapphire HD3870 @Arctic Accelero S1+2*120mm Scythe Slipstream
OCZ StealthXStream 500Watt
LG W2443T 24"

MacBook Pro 13" 2,4 GHz / 4 GB RAM  / NVIDIA Geforce 320M
ASUS MS227N 22"
Seiten: [1] Nach oben Thema versenden Drucken 
HWE-Forum.de  |  Internet und Co.  |  HTML, PHP, XML, JavaScript u. Co. (Moderatoren: TMK, American)  |  Thema: Calcutor Probleme (VB) Hilfe!!! « vorheriges nächstes »
 

Impressum | SMF 2.0.15 | SMF © 2011, Simple Machines
Seite erstellt in 0.116 Sekunden mit 24 Abfragen.