Toon posts:

[vb6] enter herkennen, of enter negeren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een programma'tje gemaakt waarmee ik makkelijk berichten over het netwerk kan sturen mbv net send.
Na wat hulp van GOT mensen heb ik het ook voor elkaar gekregen dat het bericht wordt verstuurd als je op ctrl+enter klikt.

Het nadeel nu is alleen dat in het tekstvlak (die ik "" maak) de cursor op de 2e regel gaat staan.
De controle denkt dat het bericht niet leeg is, en dus kun je als je ctrl+enter inhoud honderden berichten versturen.

code:
1
2
3
4
5
6
7
8
Sub controle_bericht()
If Text1.Text = Empty Then
 fout = "geen bericht"
 MsgBox ("Typ een bericht")
 Me.Refresh
Else: fout = "ok"
End If
End Sub


Dit is de controle en hieronder staat de stuk code die bekijkt of ctrl+enter wordt ingevoerd
code:
1
2
3
4
5
6
Private Sub Form_KeyPress(KeyAscii As Integer)
If (KeyAscii = 10 Or KeyAscii = 13) And CtrlDown Then
 Call student_nummer_bepalen
 Call versturen
End If
End Sub


Hoe kan ik ervoor zorgen dat de controle ziet dat het text1.text vlak 1 lege regel heeft en dus eigenlijk leeg is, of dat die lege regel wordt weggehaald?

Als ik zeg dat het textvlak null moet worden blijft de cursor gewoon op de 2e regel staan.

  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

text1.text = ""?

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


  • Tukk
  • Registratie: Januari 2002
  • Laatst online: 16:52

Tukk

De α-man met het ẞ-brein

code:
1
If len(text1.text) = 0 then


tip, maak van die 13 VBEnter, das wat leesbaarder.

Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.


Verwijderd

Topicstarter
Tukk schreef op 16 november 2003 @ 16:59:
code:
1
If len(text1.text) = 0 then


tip, maak van die 13 VBEnter, das wat leesbaarder.
Ik heb er vbenter van gemaakt, maar de if statement doet nog niet wat ik wil.. De lengte is namelijk niet 0, maar het bericht is 1 enter naar beneden... Dus hij moet kunnen herkennen als het vak leeg is en of de eerste regel een harde return is

  • Tukk
  • Registratie: Januari 2002
  • Laatst online: 16:52

Tukk

De α-man met het ẞ-brein

code:
1
if len(text1.text) <= 1 and instr(text1.text,vbenter,1) > 0 then

Die Instr functie moet je even opzoeken in de MSDN, die heb ik uit het hoofd de parameters mee gegeven.

Ik kan je als tip geven de functie van VB in MSDN eens goed te bekijken, een goed VB voorbeelden boek te kopen en eens code te bekijken van anderen (op bv: www.planetsourcecode.com), want je vragen zijn voor tweakers, naar mijn IMHO, vrij n00b.

Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.


  • _the_crow_
  • Registratie: September 2000
  • Laatst online: 30-03-2025

_the_crow_

Rare vogel

Je kan met
code:
1
x = Mid(string, start[, length])
misschien wel wat? Length op 1 zetten en dan de start telkens increasen in een for-loopje. Je zet dan een if-statment erachter, die vergelijkt of het teken gelijk is aan een 'return'. :)

[ Voor 5% gewijzigd door _the_crow_ op 16-11-2003 17:24 ]

Schrödingers cat: In this case there are three determinate states the cat could be in: these being Alive, Dead, and Bloody Furious.


  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 17:52

RayNbow

Kirika <3

Verwijderd schreef op 16 november 2003 @ 16:47:
...
Het nadeel nu is alleen dat in het tekstvlak (die ik "" maak) de cursor op de 2e regel gaat staan.
De controle denkt dat het bericht niet leeg is, en dus kun je als je ctrl+enter inhoud honderden berichten versturen.

...
code:
1
2
3
4
5
6
Private Sub Form_KeyPress(KeyAscii As Integer)
If (KeyAscii = 10 Or KeyAscii = 13) And CtrlDown Then
 Call student_nummer_bepalen
 Call versturen
End If
End Sub

...
code:
1
2
3
4
5
6
7
8
9
10
Private Sub Form_KeyPress(KeyAscii As Integer)
If (KeyAscii = 10 Or KeyAscii = 13) And CtrlDown Then
 Call student_nummer_bepalen
 Call versturen
 ' TOEGEVOEGDE REGELS OM DE ENTER TOETSAANSLAG TE NEGEREN
 ' EN TEKSTVLAK LEEG TE MAKEN
 KeyAscii = 0
 Text1.Text = ""
End If
End Sub


Edit: over vbEnter, dat is NIET de constante voor de Enter toets, maar de constante die wordt gebruikt in Drag en Drop events. Als je constanten wilt gebruiken wordt de code:
code:
1
2
3
4
5
6
7
8
9
10
Private Sub Form_KeyPress(KeyAscii As Integer)
If (KeyAscii = Asc(vbLf) Or KeyAscii = Asc(vbCr)) And CtrlDown Then
 Call student_nummer_bepalen
 Call versturen
 ' TOEGEVOEGDE REGELS OM DE ENTER TOETSAANSLAG TE NEGEREN
 ' EN TEKSTVLAK LEEG TE MAKEN
 KeyAscii = 0
 Text1.Text = ""
End If
End Sub

[ Voor 49% gewijzigd door RayNbow op 16-11-2003 17:33 ]

Ipsa Scientia Potestas Est
NNID: ShinNoNoir

Pagina: 1