Visual Basic 6(logischer Fehler)

Dieses Thema im Forum "Software Probleme" wurde erstellt von ahlitripoli, 23.06.2011.

  1. #1 ahlitripoli, 23.06.2011
    ahlitripoli

    ahlitripoli Neuer Benutzer

    Dabei seit:
    22.06.2011
    Beiträge:
    14
    Zustimmungen:
    0
    Hallo...

    Ich hab ein programm gemacht der die fleache von einem Dreieck rechnet.

    Private Sub Form_Load()
    Base = InputBox("put base")
    Height = InputBox("put height")
    Area = Base * Height
    Print Area

    End Sub

    wenn ich auf run druecke erscheinen mir wie gewoehnlich 2 fenster(nacheinander),ich tippe z.b fuer base 3,und fuer height 4.es sollte eig. 12 ergeben.aber stattdessen erscheint 1720 ????

    Aber bei einfache programme wie 2*4 ist die lousung korrekt.

    Was ist das problem:confused:

    PS:ich habe natuerlich Autoredraw auf True geaendert.
     
  2. AdMan

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. #2 xandros, 23.06.2011
    Zuletzt bearbeitet: 23.06.2011
    xandros

    xandros IT Consultant, Cisco Registered Partner
    Moderator

    Dabei seit:
    05.07.2007
    Beiträge:
    25.891
    Zustimmungen:
    91
    Ort:
    Umkreis Duisburg, neben Mannheim, hinter Hamburg
    kein logisches, sondern ein stilistischer Fehler!

    Du verwendest Variablen, ohne diese zu initialisieren. Das ist a) unsauber und b) automatisch fuer VB die Anweisung intern ein Variant zu erstellen und kein Integer!
    Variant wird nicht zwangslaeufig als Integer oder Double interpretiert! Es kann auch als String herhalten.

    Ergo: Zuerst einmal ordentlich die Variablen initialisieren und dann schauen, was damit passiert.

    BTW: Warum werden die Werte in Inputboxen abgefragt?
    Du verwendest ein Form! Pack ein paar Felder und ein Label da drauf.
    Im Feldereignis "Nach Aktualisierung" kann dann die Berechnung bereits durchgefuehrt und das Ergebnis an das Label uebergeben werden.
    Im Form_Load werden Anweisungen abgelegt, die beim Laden des Forms durchgefuehrt werden.
    Form_Load ist erst abgeschlossen, wenn dein Programm bereits beendet ist. Das ist so nicht gedacht!
    Das Form muss vollstaendig geladen und dargestellt sein, damit man damit arbeiten kann.
     
  4. #3 ahlitripoli, 23.06.2011
    ahlitripoli

    ahlitripoli Neuer Benutzer

    Dabei seit:
    22.06.2011
    Beiträge:
    14
    Zustimmungen:
    0
    Ab dem 6 satz hab ich nicht gut versanden.
    Ich hab es schon versucht dass mit integer aber es hat nicht geklappt.
    Also du meinst nach Base und Height und Area solle ein % rein. wie folgend

    Base% = InputBox("put base")
    Height% = InputBox("put height")
    Area% = Base% * Height%
    Print Area%

    es hat aber nichts gebracht!

    Kann das problem daran liegen,dass ich Windos7 benutze,obwohl VB6 eig. fuer XP gedacht ist?
     
  5. #4 xandros, 23.06.2011
    Zuletzt bearbeitet: 23.06.2011
    xandros

    xandros IT Consultant, Cisco Registered Partner
    Moderator

    Dabei seit:
    05.07.2007
    Beiträge:
    25.891
    Zustimmungen:
    91
    Ort:
    Umkreis Duisburg, neben Mannheim, hinter Hamburg
    Code:
    Dim Base as Integer
    ist die offizielle Syntax, um eine Variable als Integer zu deklarieren und initialisieren.
    Danach kann diese Variable auch verwendet werden.
    Welches OS unter VB6 verwendet wird, ist der IDE reichlich egal.

    Inputbox liefert einen String zurueck und keine Zahl. Du muesstest somit eine Typkonvertierung vornehmen.

    Der komplette Code muesste genau genommen so aussehen: (kann in VB6 eventuell etwas abweichen - das ist schon zu lange her! Und VB.NET hat diverse Aenderungen in dem Bereich!)
    Code:
    DIM Base as Integer
    DIM Height as Integer
    DIM Area as Integer
    
    Base = Convert.ToInt16(Inputbox("put base"))
    Height = Convert.ToInt16(Inputbox("put height"))
    Area = Base * Height
    
    'Print Area <- Print ist fuer die Ausgabe in der Konsole oder in einen Filestream, 
    'nicht fuer die Ausgabe in einer Forms-Anwendung. 
    'Setze ein Label-Element auf das Form 
    'und uebergib diesem das Ergebnis als String!
    
    Me.Label1.Text=Convert.ToString(Area)
     
  6. AdMan

    Es ist generell erstmal empfehlenswert alle ggf. veralteten oder fehlerhaften Treiber zu scannen und auf neue zu aktualisieren. Hier kannst du einen Treiber-Scanner downloaden. Das erspart oftmals viel Ärger und hilft gegen diverse Probleme.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
Thema: Visual Basic 6(logischer Fehler)
Besucher kamen mit folgenden Suchen
  1. visual basic 6 windows 7 form paint problem

    ,
  2. visual basic ausrufezeichen

Die Seite wird geladen...

Visual Basic 6(logischer Fehler) - Ähnliche Themen

  1. Nach Fehler beim Flashen geht gar nichts mehr

    Nach Fehler beim Flashen geht gar nichts mehr: Hallo zusammen, ich hoffe dass mir jemand von euch weiterhelfen kann. Es geht um Folgendes: Ich habe ein DraginTouch Y88X, das ist ein ganz...
  2. Lenovo Ideapad G700 - Grafiktreiberinstallation Fehler

    Lenovo Ideapad G700 - Grafiktreiberinstallation Fehler: Hallo, vor ca. einem Jahr hab ich ein neues Lenovo Ideapad G700 bekommen, in welchem eine gt 720m verbaut ist. Ich hatte damals alle Treiber,...
  3. CryEngine First Time Login Fehler?

    CryEngine First Time Login Fehler?: Hallo, habe mir heute die CryEngine 3.5.8 SDK geholt und wollte mich anmelden. Es ging aber nicht. Dort steht das ich ein falsches Passwort oder...
  4. Fehler Aufruf GMX - application/octet-stream

    Fehler Aufruf GMX - application/octet-stream: Fehler Aufruf GMX - application/octet-stream Hallo zusammen! Ich habe seit einiger Zeit ein Problem beim Aufruf der GMX Seite. Ich kann die...
  5. Waths-app fehler

    Waths-app fehler: hallo zusammen, möchte für eine Bekannte das Handy einrichten und von play store apps runterladen hab soweit Internet eingerichtet und wenn ich...