keyPress-Event

01/10/2007 - 01:51 von F. M. Piller | Report spam
hi füxe...

kann mir einer sagen, warum folgender code nur funzt, wenn ich einen BP in
diese proc setze?
Zweck der geschichte ist, dass ich in einer textbox einen definierten
textbaustein bekomme und im regelfall nicht àndern soll. Jedoch über die
(standard)-funktionstaste F2 eine ànderung ermöglicht werden soll. Beim
verlassen (LostFocus) wird diese Box wieder auf ReadOnly gesetzt.

Procedure TextBox.KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl

DO case
CASE nShiftAltCtrl == 0 .and. nKeyCode == -1 && F2
This.ReadOnly = .f.
ThisForm.Refresh() &&Hilft auch nicht

CASE nShiftAltCtrl == 0 .and. nKeyCode == -2 && F3
** Suchfunktion starten

ENDCASE
 

Lesen sie die antworten

#1 Jürgen Wondzinski
01/10/2007 - 07:33 | Warnen spam
Hallo F.

Ich geh mal davon aus, dass die Textbox spàtestens beim GotFocus einmalig
das ReadOnly auswertet, und einfach nicht damit rechnet dass ein
"Perversling" ihr das wàhrend einer ReadOnly-Darstellung per Keypress wieder
umstellen möchte

Wie wàr denn der umgekehrte Weg:
Du làsst die Textbox auf Editierbar, umd im Keypress nimmst du einfach alle
Änderungen raus:

IF This.KeineÄnderung AND IsAlpha(CHR(nKeyCode))
NODEFAULT
ENDIF

IF nShiftAltCtrl == 0 .and. nKeyCode == -1 && F2
This.KeineAenderung = .F.
ENDIF


D.h. nicht das vorhandene ReadOnly hernehmen, sondern eigenes Property. Und
die Abprüfung auf zu entfernende Tastendrücke hab ich hier testweise mit
ISAlpha verwirklicht, da musst du aber in der Praxis noch etwas feilen.



Jürgen Wondzinski

Microsoft Visual FoxPro Technologieberater
Microsoft Most Valuable Professional seit 1996
"*´¨)
¸.•´¸.•*´¨) ¸.•*¨)
(¸.•´. (¸.•` *
.•`.Visual FoxPro: It's magic !
(¸.•``••*

Ähnliche fragen