VTX application programmers: Read this carefully




In verband met de nieuwe Wellcom release van de VCP+, volgen hier wat
regels en uitleg i.v.m. lezen en schrijven van velden.

1. Een pagina, geladen met vtxput(), wordt niet automatisch geflushed.
Dit is geen verandering.

2. Velden, geschreven met vtxwrite(), worden niet automatisch geflushed.
Dit is geen verandering.

3. Velden, gelezen met vtxread(), worden eerst automatisch geschreven. Voor
deze velden hoeft dus niet eerst een vtxwrite() uitgevoerd te worden. Dit
is geen verandering.

4. Een vtxread() voert eerst automatisch een flush uit van alle vtxput() en vtxwrite()
acties. Dit is geen verandering.

5. Er is een groot verschil tussen een vtxflush() en de automatische flush van een
een vtxread(). Een vtxflush() stuurt alle data die met een vtxput() en vtxwrite() gedaan
zijn naar de VAP, net als een vtxread(). Alleen: als de gebruiker tevoren een toets
heeft ingedrukt (type-ahead), dan verwacht de VAP altijd een lees-actie van velden
door de EC (External Computer, onze systemen dus). Als er dan een vtxflush() wordt
uitgevoerd, negeert de VAP deze data en flushed alle input van de gebruiker. Hence:
de gebruiker is alle type-ahead kwijt en zit tegen een zwart scherm aan te kijken.

Remedie: verwijder alle vtxflush() calls uit de source en laat deze door
een vtxread() uitvoeren. Dit heeft als nadeel dat er geen schermupdate kan plaatsvinden
voordat het programma alle data heeft vergaard en input gaat vragen van de gebruiker.
De gebruiker kan dan (enige seconden?) geen schermactie waarnemen. Het is aan de klant
of dit opweegt tegen het verlies van type-ahead....

6. Een vtxmessage kan nooit met een vtxflush() verstuurd te worden onder
X25. Een vtxmessage hoort niet tot de pagina info, zoals velden daar wel toe behoren.
Een message worden direct verstuurd en is direct voor de gebruiker zichtbaar.
Indien hierna een vtxread() wordt uitgevoerd, blijft de message staan, totdat de
gebruiker de eerste toets heeft ingedrukt.

7. Een vtxmessage("1=bla, 2=blabla") etc. kan direct gevolgd worden door een inkey(0,-1)
aanroep. Onder X25 lees je hiermee selector 1, 2 enz. van de pagina terug. Je
kunt zodoende een keuze van de gebruiker vragen zonder een vtxread() actie uit te
voeren. De geldige selectoren worden uit de te verzenden string gevist, in dit geval
dus selector '1' en '2'. Tussen de calls naar vtxmessage() en inkey(0,-1) mag
geen enkele andere
vtxflush() of vtxread() voorkomen. De selectoren zijn dan
niet meer geldig (de VAP 'vergeet' ze dan). Selectoren met de pagina editor opgeven.

Als aan de hand van zo'n leesactie later een vtxflush() uitgevoerd moet worden om
een schermupdate af te dwingen, is de gebruiker weer alle type-ahead kwijt, met het
risico van zwarte schermen!

8. Als in een veld omschakelkarakters voorkomen, worden deze vervangen door een
spatie. Als kleuromschakelingen o.i.d. in velden moeten voorkomen, moeten de velden
in de ACL source worden voorzien van de vlag OUTPUT:

deffield out3 as 3,OUTPUT

Dit was al zo in VCP+ versie 5.1 (uitgave feb. 1996) en is nu dus geen verandering.
Velden die als OUTPUT worden gegeven, worden met een vtxread() actie overgeslagen. Je
kunt ze dus niet lezen!



Tot tiepens maar weer, Greetz Erik Lijten
Fido 2:2802/168, X.75 only


Main Page .... MM Workgroup (RIP) .... Back to VideoTex programming .... AX25 protocol description .... Skiplists vs. B-Trees .... Special Products homepage .... Telephony related documents .... Borland programming tips