Toon posts:

[VB]Toetsenbord form voor touchscreen applicatie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil graag voor een applicatie die onder andere op een pc met touchscreen (geen toetsenbord) moet gaan draaien, een toetsenbord form gebruiken.

Hierbij stel ik me een form met knoppen voor die ieder een knop voorstellen die ook op het toetsenbord staan.
Letters, cijfers, tab, enter, en een paar speciale tekens als @,%,&,* etc.

Wanneer een invulscherm geopend word, dan moet ook het toetsenbord form weergegeven worden. In het invulscherm moet het mogelijk zijn een veld te selecteren, en vervolgens moet het mogelijk zijn middels het toetsenbordform de letters en tekens te typen die vervolgens in het geselecteerde veld verschijnen.

In eerste instantie leek me dit niet zo lastig. Maar ik loop toch tegen enkele problemen.

- Hoe kan ik vanuit het TB-form het juiste veld in het invul-form aanspreken.
- Hoe kan ik als ik dat juiste veld eenmaal heb met behulp van het TB-form naar het volgende veld.
(Als je met het toetsenbord werkt kun je met TAB een stapje (tabstopje) verder.

Heeft iemand hier ervaring mee.
Kan iemand mij de juiste richting heenduwen.
Tnx

  • rjsomeone
  • Registratie: Juli 2001
  • Laatst online: 20-11-2023

rjsomeone

a.k.a. Tuslsh

Private Sub Knop_Click()
If Label6.Caption = "t1" Then
Text1.SelText = Knop.Caption
Text1.SetFocus
else if Label6.Caption = "t2"
Text2.SelText = Knop.Caption
Text2.SetFocus
End If

Private Sub Text1_GotFocus()
Label6.Caption = "t1"
End Sub

edit:
je kan ipv label6 natuurlijk ook een variabele gebruiken.. maar die label was gewoon ff om aan te tonen hoe en wat.

edit2:
select case label6.caption
is mooier..

Hier had uw advertentie kunnen staan :).


Verwijderd

Topicstarter
Op woensdag 27 maart 2002 14:56 schreef rjsomeone het volgende:
Private Sub Knop_Click()
If Label6.Caption = "t1" Then
Text1.SelText = Knop.Caption
Text1.SetFocus
else if Label6.Caption = "t2"
Text2.SelText = Knop.Caption
Text2.SetFocus
End If

Private Sub Text1_GotFocus()
Label6.Caption = "t1"
End Sub

edit:
je kan ipv label6 natuurlijk ook een variabele gebruiken.. maar die label was gewoon ff om aan te tonen hoe en wat.

edit2:
select case label6.caption
is mooier..
Sorry ik heb de code even uitgeprobeerd maar het is niet wat ik bedoel.
Ik snap ook je code niet goed !

Zou je deze aub wat kunnen toelichten

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 10-09 14:16

Crazy D

I think we should take a look.

Focus is makkelijk te realiseren door ze gewoon op het tekstvlak en/of het beschrijvende labeltje ervoor te laten klikken. Kun je het eventueel met bv kleurtjes verduidelijken welk veld ze dan aan het vullen zijn. En als ze dan een ander veld willen invoeren, klikken ze op dat betreffende veld (net zoals dat je dat doet met je muis...).
Of je maakt een tab-knop op het toetsenbord, maar dat zegt weer niet zoveel ("naar volgende invoerveld" button is dan duidelijker, maar ik denk dat het voor een gebruiker logischer is om te moeten klikken op het veld wat ze willen vullen, dat doet 90% van de windowsgebruikers tenslotte ook met de muis als ze een ander veld willen invullen).
En in code uiteraard bijhouden welk invoerveld de focus heeft...

Afhankelijk van wat het is, zou je ook een form met 1 invoerveld en het toetsenbord kunnen maken, en op je hoofdform achter ieder veld een button "vul in" maken waar je dan, als er op geklikt wordt, het form met toetsenbord op laten komen.

Aangezien een touchscreen werkt alsof het een computer is met alleen een muis aangesloten, kun je natuurlijk vrij makkelijk een beetje spelen om te kijken wat het handigste werkt zonder dat je echt een touchscreen aan hoeft te sluiten :)

Exact expert nodig?


  • AceRimmer
  • Registratie: Maart 2001
  • Laatst online: 10-09 12:48

AceRimmer

What a guy...

Ik zou van het hele toetsenbord een usercontrol maken. Daar je eigen events op aangeven, die je vervolgens op ieder gewenst form kunt gebruiken.

Smoke me a kipper, I'll be back for breakfast


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Volgens mij begrijpen heel veel mensen niet precies hoe een touchscreen werkt.

In principe is het een muis, alleen geef je meteen een klik waar je op drukt.

Als je het programma met muis kan maken werkt het ook meteen voor een touchscreen, met het enige verschil dat je voor de touchscreen je de muiscursor uit kan zetten zodat die niet opvalt. En dan lijkt het net echt dat je de buttons induwt.

Niet meer, Niet minder.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 10-09 14:16

Crazy D

I think we should take a look.

Klopt hoewel je er wel wat rekening mee moet houden. Je vinger is meestal wat groter dan een muiscursor :P maar verder is het in principe gewoon een programma wat je volledig met de muis moet kunnen bedienen (geen rechtermuis klik ;)).

Exact expert nodig?


Verwijderd

Topicstarter
Mijn ontwikkelomgeving is gewoon zonder touchscreen hoor. Ik gebruik ook gewoon een muis.

Maar de gehele app moet dus bediend kunnen worden zonder toetsenbord.

Iemand nog meer tips

Uit de tips tot nu toe ben ik tot het volgende resultaat.

Toetsenbord form krijgt een variabele control welke ik set doormiddel van een klik op de betreffende control.
Vervolgens TB scherm tonen. En de btnClicks van het TB-Form in de control verwerken.

Werkt op zich prima, en komt aardig in de buurt.

Hoe kan ik echter een TAB geven in het Aanroep form.
Als ik VBTab invul in bijvoorbeeld een tekstveld dan voert hij in het betreffende veld een vreemd teken in. Terwijl ik graag wil dat hij een tabstop verder gaat.

Is dit mogelijk (Moet ik nu RTFineM) of zit ik verkeerd te denken.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 10-09 14:16

Crazy D

I think we should take a look.

Je weet voor welke control er tekst ingevoerd wordt, dan moet het niet zo heel moeilijk zijn om de volgende control te vinden.

Exact expert nodig?


Verwijderd

Topicstarter
Op donderdag 28 maart 2002 00:28 schreef Crazy_D het volgende:
Je weet voor welke control er tekst ingevoerd wordt, dan moet het niet zo heel moeilijk zijn om de volgende control te vinden.
Zonder meteen om een script te vragen
Hoe dan?

Iets als:
dim lvobjControl as Control
For each lvobjControl in Form1
if lvobjControl.tabindex = HuidigeControl.tabindex+1 then
Set HuidigeControl = lvobjControl
endif
next

????

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 10-09 14:16

Crazy D

I think we should take a look.

Yup zo ben je een aardig eind op weg. Niet vergeten 'm naar 0 te laten springen als het de laatste control is in je tabindex mjah dat zijn details waar je vanzelf tegen aan loop ;)

Exact expert nodig?


  • Kix@$$
  • Registratie: December 2001
  • Laatst online: 09-09 15:10
wat je ook kan doen, is die control een focus geven, en dan een Sendkeys "{TAB}" :)

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 10-09 14:16

Crazy D

I think we should take a look.

Sendkeys vind ik niet de netste oplossing, en er zit (zat?) een bug in. Zet maar eens een rij controls neer, en in de keydown vang de Enter af, en gebruik die om naar het volgende veld te gaan. Na een tijdje de enter vasthouden gaat ie vanzelf een keer op z'n bek :)

Exact expert nodig?

Pagina: 1