FileMaker - Tip 32

 

Klik op om terug te keren naar het hoofdmenu.

Tip 32 - Problemen met "Trapping for Caps Lock"

Hoofdletters horen thuis waar de spraakkunstregels dat bepaald hebben. Ook op Internet wordt een tekst volledig in hoofdletters als onhoffelijk beschouwd (er wordt dan wel eens geantwoord "Don't shout like this!"). In FileMaker-rapporten en tabellen wordt het helemaal vervelend: hoofdletters nemen veel meer ruimte in, en wanneer de kolom- of veldbreedte beperkt is, dan kan een deel van de tekst aan het oog onttrokken worden (zeker op papier).

Hier enkele voorbeeldjes:
HIER ENKELE VOORBEELDJES:

Wouter van Immerzeele
WOUTER VAN IMMERZEELE

Wouter van Immerzeele zal niet aanwezig kunnen zijn.
WOUTER VAN IMMERZEELE ZAL NIET AANWEZIG KUNNEN ZIJN.

Aantal stemmen Ja: 12
AANTAL STEMMEN JA: 12

Heel wat FileMaker bestanden worden tegen dit probleem beveiligd door vele scripts te laten beginnen met een controle op de CAPS Lock toets: wanneer die ingedrukt blijkt te zijn, dan verschijnt een waarschuwingsboodschap gevolgd door Exit Script (of Halt Script indien dat nodig is). . Hiertoe gebruiken we de functie Status(CurrentModifierKeys). Deze functie kent de waarde 2 toe aan de CAPS Lock-toets. Voor de Shift-toets is de waarde 1, voor CTRL is het 4 en voor Alt (Option bij de Mac) is het 8. De Command-toets van de Macintosh heeft dan weer waarde 16.

Een voorbeeldje: wanneer de functie Status(CurrentModifierKeys) de waarde 13 aangeeft, dan betekent dat dat zowel Alt (8) als CTRL (4) en Shift (1) ingedrukt zijn.

Tot hiertoe dus geen enkel probleem. Maar in FMPro versie 5 werd een actieve CAPS Lock plots niet meer herkend. Dit probleem is inmiddels weer opgelost in 5.5.

Nog een raad voor degenen die Tip 7 graag toepassen: dit werkt alleen als de gebruiker enkel de CTRL-toets ingedrukt houdt (dit geeft waarde 4). Is die gebruiker gewoon alles in hoofdletters in te tikken, en is bij hem of haar zo goed als altijd de CAPS Lock-toets ook ingedrukt, dan loopt het mis (we krijgen dan immers waarde 6, nl. 4 + 2). In dit geval moeten we dat voorzien in het script:

Status(CurrentModifierKeys) = 4

or

Status(CurrentModifierKeys) = 6

 
avd@avd-ci.be - contactformulier