wildjam Skrevet 29. april 2004 Del Skrevet 29. april 2004 Jeg prøver og prøver, men det tar lang tid på bli god her... proglemet er dette: Private Sub txtChat_KeyDown(KeyCode As Integer, Shift As Integer) If 13 Then 'enter knappen If "nickname(textbox) er i focus" then Call CmdConnect End If If "Chattxt(textbox) er i focus" then Call cmdSend_Click End If End If End Sub Tror dere kan se at det vil ikke funke å skrive "er i focus" men hva kan jeg bytte dette ut med for at det skal fungere...? (og ja, jeg er n00b) -William- Lenke til kommentar
d0ppler Skrevet 29. april 2004 Del Skrevet 29. april 2004 først litt opprydding i koden: Private Sub txtChat_KeyDown(KeyCode As Integer, Shift As Integer) If 13 Then 'enter knappen If "nickname(textbox) er i focus" Then Call CmdConnect End If If "Chattxt(textbox) er i focus" Then Call cmdSend_Click End If End If End Sub legg merke til formateringen! Det er hat å lese kode hvor alt er på samme linje! uansett så vil ikke dette fungere, siden du ALDRI kan ha fokus i noen av de andre tekstboksene fordi denne koden intreffer kun når txtChat er i fokus. Prøv å forklar nøye hva du vil, så tar vi det på nytt igjen.. Lenke til kommentar
d0ppler Skrevet 29. april 2004 Del Skrevet 29. april 2004 (endret) jo.. nå tror jeg at jeg skjønner hva du mener... først, lag en hjelpevariabel på topp nivå (øverst i koden) : Dim LastUsedTB as Integer deretter lager du dette: Private Sub txtNickname_Change() LastUsedTB = 1 End Sub og så dette: Private Sub txtChattxt_Change() LastUsedTB = 2 End Sub husk å endre navnet på sub'ene til det respektive navnet dem har i din applikasjon deretter editerer du KeyDown-eventet ditt til dette: Private Sub txtChat_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then 'enter knappen If LastUsedTB = 1 Then Call CmdConnect ElseIf LastUsedTB = 2 Then Call cmdSend_Click End If End If End Sub Dette er vel egentlig ingen kode jeg vil vedkjenne meg , men antar at dette vil funke i ditt tilfelle. Jeg tror jeg ville gjort dette på en helt annen måte i virkeligheten. EDIT : legg merke til at jeg har endret på det første If-statementet også, slik at jeg faktisk får en logisk setning som tester på om tastekoden har verdien 13 (If keycode = 13 Then) Endret 29. april 2004 av dga01 Lenke til kommentar
wildjam Skrevet 29. april 2004 Forfatter Del Skrevet 29. april 2004 (endret) Ok... ska vi se her... Jeg har en del textbokser... Nickname boksen Ip boxen Port boxen Local IP boxen (som er inactiv) Maintxt (hovedvinduet) Chattxt (chat text vinduet) Når jeg trykker "enter" og fokusen er i nickname boksen, skal connectcmd_Click aktiveres... Når jeg trykker "enter" og fokusen er i nickname boksen, skal sendcmd_Click aktiveres.... Men en ting til, pluuutselig funka ikke data arrival!!! :-s (det er sikkert lettere og bedre måter å lage chat på, menmen.) Private Sub Winsock_DataArrival(ByVal bytesTotal As Long) 'declairations '---------------------------- Dim strData As String Dim tempdata As String '----------------------------- If Len(strData) > 11 Then Winsock.GetData strData If Mid$(strData, 0, 7) = "chattext" Then ' chat text kommer inn txtmain.Text = txtmain.Text & vbCrLf & Mid$(strData, 8, Len(strData)) End If If Mid$(strData, 0, 7) = "newlogin" Then ' ny bruker logger seg på nicknames.List(nicknames.ListCount) = Mid$(strData, 8, Len(strData)) End If If Mid$(strData, 0, 10) = "getnicklist" Then ny bruker requester nicklista Winsock.SendData ("nicklist" & Mid$(strData, 8, Len(strData)) & "nick.Text") send ut "nicklist" & "requesterens sitt nick" & Mitt nick DoEvents End If If Mid$(strData, 0, 7) = "nicklist" Then ' ny bruker får tilbake nicklista Dim nicklen As Integer If Mid$(strData, 8, Len(strData)) = "nick.text" Then nicklen = 8 + Len(nick.Text) nicknames.List(nicknames.ListCount) = Mid$(strData, nicklen, Len(strData)) End If End If End Sub Koden er ikke ferdig... Men plutselig funka den ikke nuh... :-s hvorfor egentlig det da? (legger til "send knappen oxo) Private Sub cmdSend_Click() Winsock.SendData Time & " " & nick.Text & " " & txtChat.Text DoEvents txtChat.Text = "" End Sub Edit: Jeg tok bort: "chattext" & fra senddata (det sku jo komme først) Men funka ikke da heller! Endret 29. april 2004 av wildjam Lenke til kommentar
d0ppler Skrevet 29. april 2004 Del Skrevet 29. april 2004 Når jeg trykker "enter" og fokusen er i nickname boksen, skal connectcmd_Click aktiveres... Når jeg trykker "enter" og fokusen er i nickname boksen, skal sendcmd_Click aktiveres.... Poenget er at når du trykker enter, så er fokus satt på chatteboksen din, hvilket betyr at nickname kontrollen ALDRI vil ha fokus når du tester på om den har det eller ikke. Lenke til kommentar
wildjam Skrevet 29. april 2004 Forfatter Del Skrevet 29. april 2004 hmm... ohh.. jeg må lage en for hver da? Private Sub txtChat_KeyDown(KeyCode As Integer, Shift As Integer) Private Sub nick_KeyDown(KeyCode As Integer, Shift As Integer) eller? Lenke til kommentar
Jonas Skrevet 29. april 2004 Del Skrevet 29. april 2004 (endret) Du skriver keydown på ALLE tekstboksene din. Sånn som her: Private Sub txtChat_KeyDown(KeyCode As Integer, Shift As Integer) If Not KeyCode = 13 Then Exit Sub MsgBox "Fokuset er i txtchat!" End Sub Private Sub txtNickname_KeyDown(KeyCode As Integer, Shift As Integer) If Not KeyCode = 13 Then Exit Sub MsgBox "Fokuset er i txtNickname!" End Sub Private Sub txtIp_KeyDown(KeyCode As Integer, Shift As Integer) If Not KeyCode = 13 Then Exit Sub MsgBox "Fokuset er i txtIp!" End Sub Private Sub txtPort_KeyDown(KeyCode As Integer, Shift As Integer) If Not KeyCode = 13 Then Exit Sub MsgBox "Fokuset er i txtPort!" End Sub Private Sub txtLocalIP_KeyDown(KeyCode As Integer, Shift As Integer) If Not KeyCode = 13 Then Exit Sub MsgBox "Fokuset er i txtLocalIP!" End Sub Private Sub txtMaintxt_KeyDown(KeyCode As Integer, Shift As Integer) If Not KeyCode = 13 Then Exit Sub MsgBox "Fokuset er i txtMaintxt!" End Sub Private Sub txtChattxt_KeyDown(KeyCode As Integer, Shift As Integer) If Not KeyCode = 13 Then Exit Sub MsgBox "Fokuset er i txtChattxt!" End Sub Edit: ja, en for hver Edit2: hva betyr Shift i den funksjonen? Hvis man holder shift inne så er den True, ellers er en False? Endret 29. april 2004 av Jonas Lenke til kommentar
d0ppler Skrevet 29. april 2004 Del Skrevet 29. april 2004 hva betyr Shift i den funksjonen? Hvis man holder shift inne så er den True, ellers er en False? Shift er en integer som inneholder en verdi mellom 0-7 1 = Shift er inne 2 = Ctrl er inne 3 = Ctrl OG Shift er inne 4 = Alt-knappen er inne 5 = Alt og Shift er inne 6 = Ctrl og Alt er inne 7 = Ctrl, Shift og Alt er inne 0 = ingen av disse knappene er inne Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå