ReadInsert Getfelder

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
__WEY
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 25
Registriert: Do, 11. Sep 2008 9:01

ReadInsert Getfelder

Beitrag von __WEY »

Hallo zusammen!

Ich habe in meiner Applikation eingebaut, dass man in einem XbpSLE() mit der Taste INS in den Einfügemodus/Überschreibemodus wechseln kann. Dies habe ich mit ReadInsert() von Xbase++ geregelt. Nun hab ich aber das Problem, dass wenn ich nicht im Einfügemodus bin und einen Text einfüge, dieser mir trotzdem überschrieben wird. Wie kann ich dies umgehen?

Herzlichen Dank

WEY
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12913
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: ReadInsert Getfelder

Beitrag von AUGE_OHR »

__WEY hat geschrieben:Ich habe in meiner Applikation eingebaut, dass man in einem XbpSLE() mit der Taste INS in den Einfügemodus/Überschreibemodus wechseln kann. Dies habe ich mit ReadInsert() von Xbase++ geregelt. Nun hab ich aber das Problem, dass wenn ich nicht im Einfügemodus bin und einen Text einfüge, dieser mir trotzdem überschrieben wird. Wie kann ich dies umgehen?
hm ... ReadInsert() ist für GET gedacht ... ein XbpSLE hat ja auch keine PICTURE ...

Wenn man sich nun c:\ALASKA\XPPW32\Source\samples\solution\xbpget\xbpget.prg ansieht stellt man fest das dort mit

Code: Alles auswählen

CLASS InvisibleGet FROM Get
gearbeitet wird.
In der METHOD XbpGet:Keyboard( nKey ) findest du auch ein

Code: Alles auswählen

   CASE nKey == xbeK_INS
        Set( _SET_INSERT, ! Set( _SET_INSERT) )
weiter unten dann die

Code: Alles auswählen

   CASE nKey >= 32 .AND. nKey <= 255
      cChar := Chr(nKey)
Verarbeitung wo dann auch das

Code: Alles auswählen

         IF Set(_SET_INSERT)
            IF Abs( aMarked[2]-aMarked[1]) > 0
               ::deleteMarked()
            ENDIF
            ::Get:Insert( cChar )
         ELSE
            IF Abs(aMarked[2]-aMarked[1]) > 1
               ::deleteMarked()
               ::Get:Insert( cChar )
            ELSE
               ::Get:Overstrike( cChar )
            ENDIF
         ENDIF
auftaucht

alternative gibt es auch noch SLEpic was ebenfalls PICTURE und "insert" beherrscht.
gruss by OHR
Jimmy
__WEY
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 25
Registriert: Do, 11. Sep 2008 9:01

Re: ReadInsert Getfelder

Beitrag von __WEY »

HEY AUGE_OHR!

Du bist ein Schatz :D Hat bestens funktioniert!

WEY
Antworten