Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
BaSh
Newbie
Newbie

Anmeldedatum: 16.08.2011
Beiträge: 3

Zusammenrechnen
Verfasst am: 16.08.2011, 20:45

Hi ich versuche grade ein simples Programm zu coden das 2 werte zusammen rechnet.
nur leider nimmt er die werte aus den textboxen an.

Private Sub Command1_Click()
MsgBox = Val(Text1.Text) + Val(Text2.Text)
End Sub

das sollte doch normal funktionieren?

so hab das ganze jetzt umgebaut das alles nur in textboxen abläuft

Private Sub Command1_Click()
Text5.Text = Val(Text2.Text) / 60
Text4.Text = Val(Text1.Text) / 9
Text3.Text = Val(Text4.Text) + Val(Text5.Text)
Text6.Text = Math.Round(Text3.Text, 2)


End Sub

so nächstes problem er zählt nur die zahlen vor dem komma zusammen und ignoriert die nach komma stellen...
 
guido65
Newbie
Newbie

Anmeldedatum: 09.05.2011
Beiträge: 10
Wohnort: Belgien


Verfasst am: 17.08.2011, 07:27

Hi BaSh,
es ist normal dass du die Dezimalstellen verlierst weil der Befehl Val(Text1.Text) den Wert
aus dem Text nimmt und ihn auf die nächste ganze Zahl aufrundet.
Besser ist es im Single-Format zu rechnen, da dieses Format auch Dezimalstellen verarbeitet.

Code:

Private Sub Command1_Click()
    Text5.Text = CSng(Text2.Text) / 60
    Text4.Text = CSng(Text1.Text) / 9
    Text3.Text = CSng(Text4.Text) + CSng(Text5.Text)
    Text6.Text = Math.Round(Text3.Text, 2)
End Sub


Der Befehl "CSng" wandelt hier den Wert des Textes ins Single-Fomat unter beibehaltung der Dezimalstellen.

Gruß
Guido
 
BaSh
Newbie
Newbie

Anmeldedatum: 16.08.2011
Beiträge: 3


Verfasst am: 17.08.2011, 09:08

achso dann schonmal vielen dank werd es nachher zuhause mal ausprobieren. hab aber gleich noch ne frage: wie mache ich das wenn ich in die textbox eine zahl eingeben will, der Text der bereits in der Textbox steht verschwindet ?

geht das irgendwie mit "Clear"
 
guido65
Newbie
Newbie

Anmeldedatum: 09.05.2011
Beiträge: 10
Wohnort: Belgien


Verfasst am: 17.08.2011, 09:32

Hallo,
Du kannst folgendes machen:

Code:

Private Sub Text1_GotFocus()
    Text1.Text = ""
End Sub


Damit wird der Text in der TextBox gelöscht, sobald die TextBox den Focus bekommt um eine neue Zahl einzugeben.

Gruß
 
BaSh
Newbie
Newbie

Anmeldedatum: 16.08.2011
Beiträge: 3


Verfasst am: 17.08.2011, 19:37

so erstmal vielen dank klappt alles wunderbar aber warum ist jetzt text1 automatisch immer im focus sobald die anwendung geöffnet wird ? d.h. der text von text 1 ist automatisch weg...

Private Sub Command1_Click()
Text5.Text = CSng(Text2.Text) / 60
Text4.Text = CSng(Text1.Text) / 9
Text3.Text = CSng(Text4.Text) + CSng(Text5.Text)
Text6.Text = Math.Round(Text3.Text)


End Sub

Private Sub Text1_gotfocus()
Text1.Text = ""

End Sub

Private Sub Text2_gotfocus()
Text2.Text = ""

End Sub
 
guido65
Newbie
Newbie

Anmeldedatum: 09.05.2011
Beiträge: 10
Wohnort: Belgien


Verfasst am: 18.08.2011, 02:40


Hallo BaSh,

Das die TextBox1 automatisch den Focus erhält, liegt an der Eigenschaft "TabIndex".
Wenn eine Anwendung startet, wird automatisch der Focus auf das Element mit dem kleinsten TabIndex gesetzt.

Du kannst zb. dem "Command1" einen TabIndex von "0" geben und somit erhält der Button den Focus beim Start.
Die TextBox1 wird dann nicht mehr automatisch aktiviert und löscht somit auch nicht mehr den Text.

Gruß
Guido
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge [Video] VB Programm "stylen" 2916 05.02.2008, 16:09
Keine neuen Beiträge Programm kompilieren ? 905 03.04.2007, 01:08
Keine neuen Beiträge programm erstellen mit schleife und url aufrufen 807 01.04.2007, 09:47
Keine neuen Beiträge Mein erstes Programm 1133 30.01.2007, 21:14
Keine neuen Beiträge Programm 729 27.01.2007, 23:26
 


[ Time: 0.0965s ][ Queries: 95 (0.0535s) ][ GZIP on - Debug on ]