![]() |
kleine VB Frage:
sst + und & das selbe?? es geht darum dass ich daten über die serielle schnittstelle versenden will, und die daten setzen sich aus 2 textfeldern zusammen.
|
Noch eine Frage hätte ich:
Warum funktioniert das nicht: " MSComm1.Output = VScroll1.Value + Text4.Text " (ohne ") |
Zitat:
Vermute das VScroll1.Value irgend eine Zahl enthält. Daher umwandeln in einen String: MSComm1.Output = Trim(Str(VScroll1.Value)) + Text4.Text Mit Str wandelst einen Zahl in einen String um, wobei ein führendes Leerzeichen angehängt wird, welches mittels Trim wieder wegkriegst. |
Hi!
ad + und &: Die zwei Operatoren verhalten sich ident wenn es sich bei beiden (allen) werten/variablen um Strings handelt. Einen Unterschied macht es nur wenn du zahlen und Strings mit + zusammenfügen willst!! Vb nimmt dann nämlich eine Automatische Typenkonvertierung vor. Und addiert unter umständen zie zwei werte! Beispiele: Code:
Dim a As String Deswegen solltest du wenn du Strings zusammen stellen willst immer & benutzen. Das nimmt nie Typenkonvertierungen vor! Und wenn du einen Wert (Zahl oder Variable) in einen String umwandeln willst solltest du lieber CStr benutzen. Dann sparst du dir das trim um das führende leerzeichen wegzuschneiden! Deine Zeile sollte also am Besten so aussehen: Code:
MSComm1.Output = CStr(VScroll1.Value) & Text4.Text |
Vielen Dank für die Hilfe, jetzt funktionierts.
Eine Frage hab ich noch :D Ich will dass der Schiebebalken immer zweistellige Werte schickt. D.h auch wenn der Wert 1 ist soll 01 gesendet werden. Könnt ihr mir sagen wie das geht?? |
public function zweistellig(wert as long) as string
dim dummy as string dummy=cstr(wert) if len(dummy)<2 then dummy="0" & dummy:else dummy=right$(dummy,2) zweistellig = dummy end function aufrufen mit.. MSComm1.Output = zweistellig(VScroll1.Value) & Text4.Text :D |
Danke für die schnelle Antwort... aber, wo schreib ich das hinein?ß Ins haupt Form?? Da kommt dann die Fehlermeldung: End Sub erwartet... obwohl end sub eh da steht.
Gleich noch eine kleine Frage :D Ich möchte, dass ein Shape bei MsComm1.input = "C" seine Farbe von Schwarz auf Rot ändert... wie geht denn das? Ich dachte das geht so: e$ = MSComm1.Input Text1.Text = Text1.Text + e$ If Left$(e$, 1) = "C" Then Shape1.FillColor = &HFF& Else Shape1.FillColor = &H0& End If tut es aber nicht ;) |
Das mit zweistellig hat jetzt funtioniert.. ich muss es natürlich bei Allgemein reinschreiben und nicht bei Form ;)
|
objekt.backcolor=rgb(rot,grün,blau)
wobei rot, grün und blau jeweils eine Zahl von 0 bis 255 sein kann. |
und wie verknüpfe ich das mit mscomm1.input?
|
nimm ein picturebox element dafür.
|
Hast du ICQ??
Oder zufällig max. ähh meine t-mobile :)oder Festnetz Warum PictureBox??? Wenn du weder ICQ noch meine Fragen telefonisch beantworten wills (was ich dir nicht überl nehmen würde) beschreibe ich mein Problem hier genauer. |
warum picturebox..
ganz einfach. mscomm1 ist meines wissens nach ein zur laufzeit NICHT sichtbares element. Um aber jetzt anzuzeigen das etwas passiert nehm ich daher ein SICHTBARES picturebox element und ändere die Farbe dort entsprechend. |
Gut, ich beschreibe das Problem:
Ich will, ein Connect Lamperl erstellen..sprich, kaum über den Input ein "C" hineinkommt soll das sonst schwarze "Lamperl" grün werden. Dieses C soll später von einem PIC MIcrocontroller kommen, und wird laufend gesendet, kaum die Verbindung zum PIc abreißt kommt kein C mehr und das "Lamperl" wird schwarz. Soweit meine Idea. Nun wollt ich mal Text beim VB empfangen -bislang hab ich nur gesendet- und habe desshalb eine Textbox erstellt. Doch da kommt nix??? MsComm1.input = Text1.text ....das muss doch funktionieren, oder? |
An deiner Stelle würde ich nen TIMER verwenden der alle 100ms mscomm1.inputlen abfragt und wenns größer als 0 is holst dir die daten von mscomm1.input
Anders hats keinen Sinn. und in dem timer sub kannst dann auch gleich die Farbe setzen. private sub timer1_timer() if mscomm1.inputlen>0 then text4.text=mscomm1.input if instr(1,text4.text,"C")>0 then picture1.backcolor=rgb(0,255,0):else picture1.backcolor=rgb(255,0,0) end sub das müsste hinhaun. |
He super, so könnte es hinhaun, nur schein mein Input irgendwie geschlossen zu sein, ich empfange einfach keine Daten???
Vielen Dank übrigend für deine Hilfe :) |
Alle Zeitangaben in WEZ +2. Es ist jetzt 05:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag