Tastenzustand EINFG/NUMLOCK anzeigen
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21248
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 211 Mal
- Danksagung erhalten: 71 Mal
Re: Tastenzustand EINFG/NUMLOCK anzeigen
Hallo Ingo,
in der Doku gibt es einen Punkt Hinweise für Clipper Programmierer. Vieleicht hilft der Dir ja weiter?
in der Doku gibt es einen Punkt Hinweise für Clipper Programmierer. Vieleicht hilft der Dir ja weiter?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- BJelinek
- Rekursionen-Architekt
- Beiträge: 221
- Registriert: Sa, 02. Jun 2012 20:57
- Wohnort: 73257 Köngen
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 3 Mal
Re: Tastenzustand EINFG/NUMLOCK anzeigen
Hallo Ingo,
Ich habe auch ein Programm das fast 1 zu 1 in Clipper und Xbase++ läuft.
Bei mir ändert sich der Cursor nicht wenn man mit "ins" umschaltet.
sowohl im Clipper als auch im Xbase++ Programm.
Ich nehme an, dass in Deinem alten Clipper-Programm auch in der GETSYS.PRG
ein Änderung zum Standard vorgenommen wurde.
Falls Ja, diese Änderungen ins Xbase++ GETSYS.PRG übertragen.
Ich benutze auch keine Standard GETSYS.PRG sowohl in Clipper als auch Xbase++.
Ich habe auch ein Programm das fast 1 zu 1 in Clipper und Xbase++ läuft.
Bei mir ändert sich der Cursor nicht wenn man mit "ins" umschaltet.
sowohl im Clipper als auch im Xbase++ Programm.
Ich nehme an, dass in Deinem alten Clipper-Programm auch in der GETSYS.PRG
ein Änderung zum Standard vorgenommen wurde.
Falls Ja, diese Änderungen ins Xbase++ GETSYS.PRG übertragen.
Ich benutze auch keine Standard GETSYS.PRG sowohl in Clipper als auch Xbase++.
Grüße
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Re: Tastenzustand EINFG/NUMLOCK anzeigen
Hallo Bernd,
ich habe nichts an GETSYS.PRG geändert.
Du hast mir trotzdem einen heißen Tipp gegeben; es waren die CA-Tools!
ich habe nichts an GETSYS.PRG geändert.
Du hast mir trotzdem einen heißen Tipp gegeben; es waren die CA-Tools!
Viele Grüße
Ingo
Ingo
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Tastenzustand EINFG/NUMLOCK anzeigen
siehe doch mal in die "Online Knowledge Base" http://www.alaska-software.com/support/kbase-old.cxpIngoM hat geschrieben:Gibt es Aussagen von Alaska, dass es hier Fehler gibt?
wenn du unter "Volltext Suche" mal
"SET OPTIMIZE","SET RUSHMORE" oder "SET SMARTFILTER" eingibst wirst du einige Treffer finden.
das betrifft nun primär DBFNTX und OEM DBF wo die "Optimierung" manchmal zuviel des Guten ist.
deshalb kann ich beim Umstieg von Cl*pper nach Xbase++ nur dazu raten zunächst solche "Optimierungen" nicht zu verwenden.
das ist natürlich wiedermal ein running Gag ...IngoM hat geschrieben:es waren die CA-Tools!
gruss by OHR
Jimmy
Jimmy
Re: Tastenzustand EINFG/NUMLOCK anzeigen
Zusammenfassend halte ich die Darstellung des Einfügemodus durch einen geänderten Cursor für sinnvoll.
Schade, dass das hier nicht standardmäßig dabei ist.
Hat jemand diese Funktionalität in seine GETSYS.PRG eingebaut und kann mir damit helfen?
Schade, dass das hier nicht standardmäßig dabei ist.
Hat jemand diese Funktionalität in seine GETSYS.PRG eingebaut und kann mir damit helfen?
Viele Grüße
Ingo
Ingo
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Tastenzustand EINFG/NUMLOCK anzeigen
IngoM hat geschrieben:Zusammenfassend halte ich die Darstellung des Einfügemodus durch einen geänderten Cursor für sinnvoll.
Schade, dass das hier nicht standardmäßig dabei ist.
also geht es "so" nicht.KbdStat() --> nKeyState
Return
Win95 - The function returns always 0 under Windows 95.
WinNT - The insert key is not supported under Windows NT. Scroll-Lock, Caps-Lock and Num-Lock are only detected when the corresponding keyboard mode is enabled.
---
Frage : funktioniert SetTimerEvent() im VIO Modus ?
ich bin mit nicht sicher aber wenn es geht "könnte" man, mit dem von Tom erwähnten AppKeyState(), den Status abfragen.
hm ... aber irgendwie muss ich ja an den xbeK_INS Event was unter Xbase++ mit AppEvent() passiert und dafür benötigt man (mindestens) den Hybrid Modus.
---
die Arbeit wirst du wohl selbst machen müssen.IngoM hat geschrieben:Oder gibt es eine mir nicht bekannte Standardlösung?
die GetSys.PRG sollte kein Problem sein und der Cl*pper Code für MENU TO sollte auch "passen".
gruss by OHR
Jimmy
Jimmy
Re: Tastenzustand EINFG/NUMLOCK anzeigen
Hi Jimmy,
Du überschätzt meine Fähigkeiten; ich habe bisher die Finger von mitgelieferten Dateien gelassen. Es gab ja auch keinen Bedarf.
Wie würdest Du in Textmodus-Anwendungen dafür sorgen, dass der Anwender weiß, ob er im Einfüge- oder Überschreibmodus ist?
Die Belegung der INS-Taste durch diesen Codeblock funktioniert.
Allerdings bringt ein SET CURSOR OFF mit anschließendem CURSON ON wieder den normalen Unterstrich, auch wenn der Einfügemodus aktiv ist.
Danach habe ich SET CURSOR OFF / On durch eigene Funktionen ersetzt:
Das hilft aber auch nicht, beim nächsten GET ist der Cursor ein Unterstrich, obwohl der Einfügemodus aktiv ist.
ich glaube, dass dieser Weg nicht zum Erfolg führen wird.
Es wäre schön, wenn mir jemand mit einer konkreten Lösung helfen könnte.
Du überschätzt meine Fähigkeiten; ich habe bisher die Finger von mitgelieferten Dateien gelassen. Es gab ja auch keinen Bedarf.
Wie würdest Du in Textmodus-Anwendungen dafür sorgen, dass der Anwender weiß, ob er im Einfüge- oder Überschreibmodus ist?
Die Belegung der INS-Taste durch diesen Codeblock funktioniert.
Code: Alles auswählen
#include "Inkey.ch"
#include "Setcurs.ch"
#include "appevent.ch"
* Cursor fr Einfgemodus
PUBLIC bBlock
bBlock := {||SetCursor(IIf(ReadInsert(!ReadInsert()),SC_NORMAL,SC_SPECIAL1))}
SetKey(K_INS,bBlock)
Danach habe ich SET CURSOR OFF / On durch eigene Funktionen ersetzt:
Code: Alles auswählen
FUNCTION cursor_off
***********************************************************************
* cursor_off() *
***********************************************************************
#include "Setcurs.ch"
SETCURSOR(SC_NONE)
RETURN(.T.)
FUNCTION cursor_on
***********************************************************************
* cursor_on() *
***********************************************************************
#include "Setcurs.ch"
#include "appevent.ch"
IF AppKeyState(xbeK_INS,APPKEY_GET_TOGGLED)<>0
SETCURSOR(SC_SPECIAL1)
ELSE
SETCURSOR(SC_NORMAL)
ENDIF
RETURN(.T.)
ich glaube, dass dieser Weg nicht zum Erfolg führen wird.
Es wäre schön, wenn mir jemand mit einer konkreten Lösung helfen könnte.
Viele Grüße
Ingo
Ingo
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Tastenzustand EINFG/NUMLOCK anzeigen
ich habe mir noch mal das Beispiel SetTimerEvent() angesehen.AUGE_OHR hat geschrieben:Frage : funktioniert SetTimerEvent() im VIO Modus ?
Das läuft ja auch im VIO Modus
Code: Alles auswählen
#include "Appevent.ch"
PROCEDURE Main
LOCAL cVar1:= "Xbase++" , cVar2:="für 32bit"
CLS
// Thread benutzen
SetTimerEvent(100, {|| Statusbar() } )
@ 10, 0 Say "Variable1" GET cVar1
@ 12, 0 Say "Variable2" GET cVar2
READ
// wichtig vor Ende zurücksetzten !
SetTimerEvent(0)
RETURN
PROCEDURE Statusbar()
LOCAL nEvent, mp1, mp2, oXbp, i
// das war original
DispOutAt(0, 0, Time())
// erweitert
nEvent := AppEvent( @mp1, @mp2, @oXbp, 0.5 )
IF nEvent <> xbe_None
oXbp:handleEvent( nEvent, mp1, mp2, oXbp )
ENDIF
DO CASE
CASE nEvent == xbeK_INS
SET( _SET_INSERT, !SET( _SET_INSERT ) )
IF Set( _SET_INSERT )
DispOutAt(0, MaxCol()-3, "INS")
ELSE
DispOutAt(0, MaxCol()-3, " ")
ENDIF
ENDCASE
RETURN
gruss by OHR
Jimmy
Jimmy
Re: Tastenzustand EINFG/NUMLOCK anzeigen
Ich habe leider immer noch keine Lösung für mein Problem gefunden.
Wie sorgt Ihr dafür, dass der Anwender weiß, ob er überschreibt oder einfügt?
Vielleicht gibt es einen anderen Ansatz?
Wie sorgt Ihr dafür, dass der Anwender weiß, ob er überschreibt oder einfügt?
Vielleicht gibt es einen anderen Ansatz?
Viele Grüße
Ingo
Ingo
- BJelinek
- Rekursionen-Architekt
- Beiträge: 221
- Registriert: Sa, 02. Jun 2012 20:57
- Wohnort: 73257 Köngen
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 3 Mal
Re: Tastenzustand EINFG/NUMLOCK anzeigen
Hallo Ingo,
auf Grund deine Frage habe ich mir das in meinem Programm mal angeschaut.
Bei mir ist SET SCOREBOARD ON und beim Get sieht man in der ersten Zeile, ob der
Einfüge-Modus aktive ist. Habe jetzt meine GETSYS.PRG angepasst und bei der Eingabe über
GET ändert sich auch der Cursor, jenachdem welcher Cursor in den Einstellungen vom Programm
gewählt wurde. Funktioniert. Mein Menoedit tuts noch nicht.
Hast Du die Maus aktiv ? Ich nicht.
Ich kann die meine GETSYS.PRG zukommen lassen, wenn Du willst.
Bist Du in Willingen ? Dann könnte ich Dir meine Lösung zeigen
auf Grund deine Frage habe ich mir das in meinem Programm mal angeschaut.
Bei mir ist SET SCOREBOARD ON und beim Get sieht man in der ersten Zeile, ob der
Einfüge-Modus aktive ist. Habe jetzt meine GETSYS.PRG angepasst und bei der Eingabe über
GET ändert sich auch der Cursor, jenachdem welcher Cursor in den Einstellungen vom Programm
gewählt wurde. Funktioniert. Mein Menoedit tuts noch nicht.
Hast Du die Maus aktiv ? Ich nicht.
Ich kann die meine GETSYS.PRG zukommen lassen, wenn Du willst.
Bist Du in Willingen ? Dann könnte ich Dir meine Lösung zeigen
Grüße
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Tastenzustand EINFG/NUMLOCK anzeigen
hi,
mit Verwunderung habe ich nun festgestellt das SetTimerEvent() zwar auch bei MENU TO funktioniert,
die Uhr läuft weiter, aber man bekommt keinen xbeK_INS Event
ich habe es auch mitversucht aber auch dort kommt kein xbeK_INS Event (vielleicht irgend eine andere Konstante oder anderer Thread)
auf Cl*pper Ebene gibt es also nur den einen Wegund eine eigene Function MyMenuTo() nach Vorlage der Demo Source die upgeloadet habe.
wie ich festgestellt hatte funktioniert SetTimerEvent() bei GETIngoM hat geschrieben:Ich habe leider immer noch keine Lösung für mein Problem gefunden.
mit Verwunderung habe ich nun festgestellt das SetTimerEvent() zwar auch bei MENU TO funktioniert,
die Uhr läuft weiter, aber man bekommt keinen xbeK_INS Event
ich habe es auch mit
Code: Alles auswählen
nEvent := LastAppEvent( @mp1, @mp2, @oXbp)
auf Cl*pper Ebene gibt es also nur den einen Weg
Code: Alles auswählen
#command MENU TO <var> ;
=> <var> := MyMenuTo(promptList, <var>, UPPER(#<var>))
wenn KbdStat() von Alaskas XbTools nicht unterstützt wird hat das wohl schon einen Grund.IngoM hat geschrieben:Vielleicht gibt es einen anderen Ansatz?
gruss by OHR
Jimmy
Jimmy
Re: Tastenzustand EINFG/NUMLOCK anzeigen
Hallo Bernd,
vielen Dank für Dein Angebot; leider bin ich nicht in Willingen. Könntest Du mir Deine GETSYS per PN schicken?
Die Maus ist bei mir auch nicht aktiv. MEMOEDIT benutze ich in diesem Programm ebenfalls nicht.
Bei mir ist SCOREBOARD OFF, da in Zeile 0, und um den ganzen Bildschirm herum, ein Rahmen ist.
Ich könnte mir vorstellen, SCOREBOARD einzuschalten, müsste dann aber die Stelle wissen, an der ich den unter der Anzeige von SCOREBOARD liegenden Rahmen rekonstruieren kann. Weißt Du, wo das programmiert ist?
vielen Dank für Dein Angebot; leider bin ich nicht in Willingen. Könntest Du mir Deine GETSYS per PN schicken?
Die Maus ist bei mir auch nicht aktiv. MEMOEDIT benutze ich in diesem Programm ebenfalls nicht.
Bei mir ist SCOREBOARD OFF, da in Zeile 0, und um den ganzen Bildschirm herum, ein Rahmen ist.
Ich könnte mir vorstellen, SCOREBOARD einzuschalten, müsste dann aber die Stelle wissen, an der ich den unter der Anzeige von SCOREBOARD liegenden Rahmen rekonstruieren kann. Weißt Du, wo das programmiert ist?
Viele Grüße
Ingo
Ingo