Seite 1 von 1

Setmouse(.T.) ist ohne Wirkung [gelöst]

Verfasst: Di, 26. Jul 2011 10:55
von uwe.24
Hallo zusammen.

Ich beschäfuige mich seit einiger Zeit damit nach und nach Programme von Clipper auf XBase++ umzustellen.

Das macht (wie ihr wisst) manchmal Probleme.
Nachdem ich nun drucken kann (Danke Hubert), stoße ich auf Mausprobleme.
In einem vorherigen (neu erstellten) PRG lief alles ohne Probleme.
SETMOUSE(.T.) und ich kann in GET - READ Passagen Eingabefelder mit der Maus anspringen.

In einem weiteren, sehr umfangreichen PRG (aus einem Clipper Progarmm umgebaut) geht das jetzt nicht.
SETMOUSE(.T.) steht am Programmanfang, dirkt hinter 'proc main'.
Dann kommt ein Prompt-Menu. Da kann ich die Maus auch noch benutzen.
Wählt man aber einen Menupunkt (z.B. Daten ändern oder was anderes) wird dann die Maus bei GET - READ ignoriert.
Die Abfrage SETMOUSE() in dem betreffenden Progarmmteil zeigt aber .T.

Ich hab viel gesucht:
'Set Key to' oder 'Inkey(X)' sollen Probleme machen - das wird aber im ersten PRG ohne Probleme gemacht.

Ich weiß - ich sollte auf AppEvent() umbauen - aber das dauert noch etwas.

Könnt ihr mir sagen, wo ich weiter suche sollte?

Uwe aus OS

Re: Setmouse(.T.) ist ohne Wirkung

Verfasst: Di, 26. Jul 2011 11:58
von AUGE_OHR
hi,

ich kann das mit SETMOUSE(.T.) nicht nachvollziehen warum des dann nicht mehr arbeiten sollte.

Frage :hast du evtl. einen "eigenen" GET- Reader ?

wenn ja und es noch der Cl*pper GET-Reader sein sollte musst du den "umschreiben" und die GETSYSX.PRG mit einbinden den bei /PM:PM wird

Code: Alles auswählen

      ELSEIF soStatus:useAppEvent
         // Eingabe über AppEvent()
         GetEventReader( oGet )
in C:\ALASKA\XPPW32\Source\SYS\GetSys.prg benutzt

Re: Setmouse(.T.) ist ohne Wirkung

Verfasst: Di, 26. Jul 2011 13:31
von uwe.24
Hallo Jimmy,

ich nutze in beiden PRGs den Standard mit /PM:PM compiliert.

In einem Fall (übersichtliche Sourcelänge) funktionierts.
Im ander Fal (große Source) geht es eben nur zu Anfang im PROMPT Menu
und bei den GETs nicht mehr.

Uwe aus OS.

Re: Setmouse(.T.) ist ohne Wirkung

Verfasst: Di, 26. Jul 2011 14:30
von AUGE_OHR
uwe.24 hat geschrieben:Im ander Fal (große Source) geht es eben nur zu Anfang im PROMPT Menu
und bei den GETs nicht mehr.
und wenn du das PROMPT mal raus nimmst ? ( nur zum testen )

... welchen "o:mouseMode" benutzt du ? XBPCRT_MOUSEMODE_PM oder XBPCRT_MOUSEMODE_VIO ?

Re: Setmouse(.T.) ist ohne Wirkung

Verfasst: Mi, 27. Jul 2011 12:05
von uwe.24
Hallo,

ich hab den Fehler gefunden.

Ein dusseliges 'Clear all' am Anfang des PRGs war die Ursache.
War noch aus der Clipper-Übernahme drin.
Rausgenommen - da geht es mit setmosue(.t.).

Danke für eure Hilfe.
Weitere neue Fragen werden wohl noch kommen.

Und immer dran denken:
Kaum macht man es richtig - schon geht es :D

Uwe us OS.

Re: Setmouse(.T.) ist ohne Wirkung

Verfasst: Mi, 27. Jul 2011 17:51
von brandelh
uwe.24 hat geschrieben: SETMOUSE(.T.) steht am Programmanfang, dirkt hinter 'proc main'.
Dann kommt ein Prompt-Menu. Da kann ich die Maus auch noch benutzen.
Ich hab viel gesucht:
'Set Key to' oder 'Inkey(X)' sollen Probleme machen - das wird aber im ersten PRG ohne Probleme gemacht.
Ich weiß - ich sollte auf AppEvent() umbauen - aber das dauert noch etwas.
Ein Programm mit setMouse(.t.) muss eine andere Include Datei für Lastkey() und andere Events verwenden:
#include "inkey.ch" // NUR solange setMouse(.t.) nicht aufgerufen wurde.
#include "Appevent.ch" // alle GUI Programme oder nach setMouse(.t.)

SET KEY TO Befehle sollten dennoch funktionieren, solange man das GET System benutzt, aber eben mit anderen Defines !