# Newb: Quadrat berechnen



## MIniMe_ (20. Februar 2002)

hab mal erste gehversuche gemacht, und ein programm gemacht, dass das quadrat einer zahl berechnen soll. geht aba nich. 
den ersten teil könnt ihr überlesen, das is nur son zeug was ich ma wieder nicht verstehe.. 

```
Option Explicit On 
Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        ' Dieser Aufruf ist für den Windows-Formular-Designer erforderlich.
        InitializeComponent()

        ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen

    End Sub

    ' Form überschreibt den Löschvorgang zur Bereinigung der Komponentenliste.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
    Friend WithEvents Button1 As System.Windows.Forms.Button

    ' Für Windows-Formular-Designer erforderlich
    Private components As System.ComponentModel.Container

    'HINWEIS: Die folgende Prozedur ist für den Windows-Formular-Designer erforderlich
    'Sie kann mit dem Windows-Formular-Designer modifiziert werden.
    'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.TextBox1 = New System.Windows.Forms.TextBox()
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(40, 112)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(160, 48)
        Me.Button1.TabIndex = 1
        Me.Button1.Text = "&Quadrat berechnen"
        '
        'TextBox1
        '
        Me.TextBox1.Location = New System.Drawing.Point(40, 40)
        Me.TextBox1.Name = "TextBox1"
        Me.TextBox1.Size = New System.Drawing.Size(160, 20)
        Me.TextBox1.TabIndex = 0
        Me.TextBox1.Text = ""
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(240, 205)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button1, Me.TextBox1})
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)

    End Sub

#End Region
 
//
//        ab hier kommt mein code
//

   Dim Text1 As Double
    Dim ergebnis As Double

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Text1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        if Text1 == "" then 
            MsgBox("Bitte eine Zahl eingeben")
        Else
            ergebnis = Text1 * Text1
            MsgBox(ergebnis)
        End If

    End Sub
End Class
```


----------



## bartman336 (20. Februar 2002)

öhm irgendwie steig ich durch den code auch nicht ganz durch?
mit welcher vb version issen der erstellt?

naja egal also ich geh jetzt mal davon aus du hast ein textfeld(text1) und einen button(command1) dann wäre das ganze folgendermaßenPrivate 


```
Sub Command1_Click()
If IsNumeric(Text1.Text) Then ' fragt ab ob der inhalt in text1 auch wirklich eine zahl ist
    ergebnis = Text1.Text * Text1.Text 'macht die berechnung
    MsgBox ergebnis ' und gibt das ergebnis in einer msgbox aus
End If
End Sub
```

was der ganze andere code bei dir da oben soll weiß ich auch nicht, wie schon oben gefragt mit welcher vb version arbeitest du denn?


----------



## Thomas Kuse (21. Februar 2002)

müsste nich noch VAL eingefügt werden?

```
Sub Command1_Click()
If IsNumeric(Text1.Text) Then ' fragt ab ob der inhalt in text1 auch wirklich eine zahl ist
    ergebnis = val(Text1.Text) * val(Text1.Text) 'macht die berechnung
    MsgBox ergebnis ' und gibt das ergebnis in einer msgbox aus
End If
End Sub
```


----------



## bartman336 (21. Februar 2002)

theorethisch ja, praktisch aber nicht weil durch die abfrage isnumeric schon gewährleistet ist (oder sein sollte) das es sich um eine zahl handelt


----------



## MIniMe_ (21. Februar 2002)

des is ja das komische... ich hab son komisches "beta"-teil von M$, visual studio .NET
das fügt diesen code da oben automatisch dazu...

was ist "VAL"?


----------



## Thomas Kuse (21. Februar 2002)

umwandlung von strings oder gleitkomma zahlen in integer


----------



## Johannes Postler (21. Februar 2002)

du hast geschrieben:

if Text1 == "" then 
            MsgBox("Bitte eine Zahl eingeben")
        Else
            ergebnis = Text1 * Text1
            MsgBox(ergebnis)
        End If

ich glaube du hättest statt Text1 immer text1.text schreiben sollen

cu tirolausserfern


----------



## MIniMe_ (21. Februar 2002)

wieso das? was macht das für einen unterschiedt?


----------



## Johannes Postler (21. Februar 2002)

das weiß ich auch nicht so genau -> mache es deshalb immer mit "text1.text". was bringt dein Visual Basic für eine Fehlermeldung? type mismatch? dann schreib "cdbl(text1.text)" - vielleicht geht das?

cu tirolausserfern


----------



## ambient (21. Februar 2002)

das ist eigentlich egal, denn wen mann einfach Text1 schreibt, dass bekommt er als default "text"

also, "text1.text" ist das gleiche wie "text1"


----------



## MIniMe_ (22. Februar 2002)

versteh ich nicht...


----------



## Johannes Postler (22. Februar 2002)

also jedes objekt hat seine eigenschaften. die text-eigenschaft bei einer Textbox gibt zum Beispiel an, was sich für ein text darin   befindet

cu tirolausserfern


----------



## Daniel Toplak (23. Februar 2002)

Also wenn ich mir den Code so ansehe, dann ist das bestimmt Visual Basic .Net, denk ich mal. Sieh auf alle fälle interessant aus. *g*
Nun ja bezüglich deines Problemes, haben ja die anderen schon einiges gesagt. Aber du solltest nach dem du mit IsNumeric(Text1.Text) abgeprüft hast ob der wert in deinem Textfeld numerisch ist, das ganze doch noch mit CInt(Text1.Text) umwandeln. Achja Val heißt einfach nur VALUE und wandelt nicht um sonder gibt den Inhalt zurück.

Gruss Homer


----------



## Johannes Postler (23. Februar 2002)

ich hätte da noch eine Anmerkung zu homer's post:

cint(text1.text) ist vielleicht nicht so gut, da der datentyp integer nur bis ca. 30000 geht. besser wäre cdbl(text1.text). der datentyp double ist nämlich vieeeeeel größer.

cu tirolausserfern


----------



## MIniMe_ (23. Februar 2002)

kompliziert...
ich glaub da lern ich doch lieba delphie


----------

