Maus funktioniert in Win 10 Konsole nicht. [gelöst]

Maus funktioniert in Win 10 Konsole nicht. [gelöst]

Beitragvon thosch » 29. Sep 2017, 13:56 Maus funktioniert in Win 10 Konsole nicht. [gelöst]

Hallo!

Ich habe ein Kosolenprogramm, das die Maus benutzt. Leider erhalte ich die Mausereignisse nicht.

Code: Alles auswählen
 
begin
   repeat
      pollMouseEvent(MouseEv);
      case MouseEv.Buttons of
         ButtonLeft: writeln('BUTTON_DOWN');
         ButtonRight: writeln('BUTTON_UP');
      end;
   until MouseEv.Buttons = ButtonRight;
   writeln('Zurück mit <<ENTER>> ... ');
   Readln;
end.
 


Ich erhalte die Writeln() - Ausgabe nicht. Ich komme auch nicht bis zur Aufforderung "Zurück mit <<ENTER>>". DetectMose zeigt mir richtigerweise eine Maus mit 3 Buttons. Nur kann ich deren Klicks nicht auswerten. Auch die Unit Winmouse führt nicht zum Erfolg. Ich verwende Freepascal 3.0.2 mit Lazarus 1.6.4 unter Windows, da ich unter Linux die Ausgabekonsole nicht zum Laufen kriege.


Was muss ich unter Windows noch machen, damit die Maus funktioniert. Tastatureingaben funktionieren, nur Mauseingaben nicht.

Hier:
viewtopic.php?f=19&t=11085

habe ich einen Bugreport gesendet. Wenn das kein Bug ist, sondern ich nur meine Win10 Konsole noch anpassen muss, dann antwortet bitte hier in diesem Strang.


.
.
Zuletzt geändert von thosch am 29. Sep 2017, 22:15, insgesamt 2-mal geändert.
thosch
 
Beiträge: 69
Registriert: 10. Jul 2017, 19:32

Beitragvon wp_xyz » 29. Sep 2017, 16:13 Re: Maus funktioniert in Win 10 Konsole nicht.

thosch hat geschrieben:da ich unter Linux die Ausgabekonsole nicht zum Laufen kriege.

Meinst du damit, dass du in der IDE die Konsolenausgabe nicht siehst? "View" > "Debug Windows" > "Terminal Output" markieren, dann ist es da.

thosch hat geschrieben:Hier:
viewtopic.php?f=19&t=11085

habe ich einen Bugreport gesendet.

Das ist kein Bug-Report, sondern ein (Doppel!-) Post in einem Unterforum, das sich "Bugs" nennt. Kein FPC-Entwickler kriegt diesen Report zu Gesicht. Einen "richtigen" Bug-Report kannst du auf https://bugs.freepascal.org schreiben (auf Englisch). Und füge ein kleines Demoprogramm bei, das den Fehler zeigt.
wp_xyz
 
Beiträge: 2250
Registriert: 8. Apr 2011, 08:01

Beitragvon Mathias » 29. Sep 2017, 17:19 Re: Maus funktioniert in Win 10 Konsole nicht.

sondern ich nur meine Win10 Konsole noch anpassen muss

Was passiert, wen du dieses Miniprogramm startest ?
Hast du dort ein Mauspfeil ?
Beendet sich dann das Programm, wen du unten links auf Alt-X klickst ?
Code: Alles auswählen
program Project1;
uses
  App;
var
  MyApp: TApplication;
begin
  MyApp.Init;
  MyApp.Run;
  MyApp.Done;
end.

Der Code sollte unter allen OS laufen.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3193
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon thosch » 29. Sep 2017, 18:58 Re: Maus funktioniert in Win 10 Konsole nicht.

In der GUI wie das Beispiel oben im vorigen Beitrag funktioniert die Maus. Nur in der Konsole nicht.
thosch
 
Beiträge: 69
Registriert: 10. Jul 2017, 19:32

Beitragvon thosch » 29. Sep 2017, 19:03 Re: Maus funktioniert in Win 10 Konsole nicht.

wp_xyz hat geschrieben:
thosch hat geschrieben:da ich unter Linux die Ausgabekonsole nicht zum Laufen kriege.

Meinst du damit, dass du in der IDE die Konsolenausgabe nicht siehst? "View" > "Debug Windows" > "Terminal Output" markieren, dann ist es da.


Nein, das mit der gar nicht funktionierenden Konsolenausgabe habe ich ausschließlich unter Linux. Unter Windows kann ich auf der Konsole Tastatureingaben entgegen nehmen und auswerten aber keine Mausereignisse.

wp_xyz hat geschrieben:habe ich einen Bugreport gesendet.

Das ist kein Bug-Report, sondern ein (Doppel!-) Post in einem Unterforum, das sich "Bugs" nennt. Kein FPC-Entwickler kriegt diesen Report zu Gesicht. Einen "richtigen" Bug-Report kannst du auf https://bugs.freepascal.org schreiben (auf Englisch). Und füge ein kleines Demoprogramm bei, das den Fehler zeigt.[/quote]

Ok, wenn sich keine Lösung für mein Problem ergibt, dass werde ich den Bug Report halt da hin senden. Ich hatte wegen des Threadnamens "Bugs" angenommen, dass ich das auch dort machen kann.
thosch
 
Beiträge: 69
Registriert: 10. Jul 2017, 19:32

Beitragvon Mathias » 29. Sep 2017, 19:09 Re: Maus funktioniert in Win 10 Konsole nicht.

thosch hat geschrieben:In der GUI wie das Beispiel oben im vorigen Beitrag funktioniert die Maus. Nur in der Konsole nicht.

Wen du damit mein Mini-Programm meinst, dies ist eine Konsolenanwendung.

Und füge ein kleines Demoprogramm bei, das den Fehler zeigt

Ich sehen kein Programm.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3193
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon thosch » 29. Sep 2017, 19:43 Re: Maus funktioniert in Win 10 Konsole nicht.

Mathias hat geschrieben:
thosch hat geschrieben:In der GUI wie das Beispiel oben im vorigen Beitrag funktioniert die Maus. Nur in der Konsole nicht.

Wen du damit mein Mini-Programm meinst, dies ist eine Konsolenanwendung.

Und füge ein kleines Demoprogramm bei, das den Fehler zeigt

Ich sehen kein Programm.


Wie jetzt? Versteh ich nicht. Mein MIni Programm ist ein Konsolenprogramm. Das funktioniert unter Windows nicht, da ja die Maus verwendet wird. Das GUI Programm nach Deinem Vorschlag funzt aber. Ich habe nichts weiter gemacht als auf mein Formular der GUI Anwendung nach Deinem Vorschlag einen Button per Maus aus der Komponentenpalette geholt und auf die Form geklickt. Dann Eventhandler geschrieben. Was soll ich sagen, wie drücke ich das normgerecht aus? In der GUI funktioniert die Maus, das Ereignis wird ausgelöst, wenn ich auf den Button in meinem Formular klicke, den ich da zusätzlich drauf gebracht habe. Zur Entwurfszeit mit der Maus. In der GUI funktioniert es. Aber NICHT in meinem Konsolenprogramm unter Windows 10, wie meinem Miniprogramm in MEINEM ersten Beitrag.

Ich habe allerdings auch ein einfaches Freepascal Programm erzeugt, ohne TApplication zu verwenden. Muss doch auch gehen. Zumal Lazarus in Datei->Neu diese Option anbietet. Oder funktioniert die Konsolenmaus generell NUR in einem Konsolenprogramm mit TApplication???

Ist es jetzt verständlich? Wie drücke ich es andernfalls besser aus? Ich weiß echt nicht mehr weiter. Es ist KEIN Hausaufgabenthread. In der GUI fünktioniert die Maus, aber in einem Konsolenprogramm leider nicht. Was soll ich da bloß machen, damit sie auch in der Konsole funktioniert? Ist KEIN Spam, die Konsolenmaus fünktioniert wirklich nicht!

.
thosch
 
Beiträge: 69
Registriert: 10. Jul 2017, 19:32

Beitragvon thosch » 29. Sep 2017, 20:34 Re: Maus funktioniert in Win 10 Konsole nicht.

Wenn ich eine Konsolenanwendung mit TApplication erzeuge und in die dann von mir zu implementierende Methode RUN folgendes schreibe:

Code: Alles auswählen
 
procedure TApplication.Run;
begin
   InitMouse;
   repeat
     if PollMouseEvent(MouseEvent) then GetMouseEvent(MouseEvent);
     if MouseEvent.Buttons = MouseLeftButton then writeln('Linke Maustaste gedrückt');
   until MouseEvent.Buttons = MouseRightButton;
   DoneMouse;
end;
 


dann erhalte ich eine SIGSEGV Exception. Wenn ich meine Run Methode innerhalb von DoRun aufrufe, dann reagiert die Konsole nicht auf meine Mausklicks, die Exception bleibt aber dann aus.
thosch
 
Beiträge: 69
Registriert: 10. Jul 2017, 19:32

Beitragvon Mathias » 29. Sep 2017, 20:51 Re: Maus funktioniert in Win 10 Konsole nicht. External SIGS

Mit meinem kleinen FreeVision-Programm wollte ich gucken, ob überhaupt Mausfunktionen in der Konsole unterstützt werden.
Wen es dort schon nicht funktioniert hätte, dann hätte dein OS schon Probleme mit der Maus in der Konsole gehabt.

Weil die Konsole ist etwas ganz anderes als eine GUI alla LCL. :wink:
Die Konsole ist vergleichbar mit MS-DOS.
Ich hoffe du verstehst was ich meine.
Dies sieht man auch gut, wen man Text ausgeben will.
Konsole: Write/Writeln.
GUI: Canvas.TextOut.

PS: Hast du dies mal angeguckt ? http://lazarus-ccr.sourceforge.net/docs ... ousex.html
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3193
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Michl » 29. Sep 2017, 21:37 Re: Maus funktioniert in Win 10 Konsole nicht. External SIGS

Code: Alles auswählen
program Example4;
uses
  Mouse;
var
  MouseEvent: TMouseEvent;
begin
  InitMouse;
  repeat
    if PollMouseEvent(MouseEvent) then
    begin
      GetMouseEvent(MouseEvent);
      case MouseEvent.buttons of
        MouseRightButton: Writeln('Button rechts');
        MouseLeftButton: WriteLn('Button links');
      end;
    end;
  until MouseEvent.buttons = MouseRightButton;
  DoneMouse;
end.

Edit: So'n Quatsch, hatte gar nicht gesehen, daß Mathias den Link schon gepostet hatte. Naja dopplet hält besser :wink:
Edit2: Versehntlich gelöscht, daß dieser Code unter Windows 7 funktioniert. Unter Win 10 nicht? Wenn nein, dann sollte dies im Bugtracker gemeldet werden.
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2169
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon thosch » 29. Sep 2017, 21:51 Re: Maus funktioniert in Win 10 Konsole nicht. External SIGS

Mathias hat geschrieben:Mit meinem kleinen FreeVision-Programm wollte ich gucken, ob überhaupt Mausfunktionen in der Konsole unterstützt werden.
Wen es dort schon nicht funktioniert hätte, dann hätte dein OS schon Probleme mit der Maus in der Konsole gehabt.

Weil die Konsole ist etwas ganz anderes als eine GUI alla LCL. :wink:
Die Konsole ist vergleichbar mit MS-DOS.
Ich hoffe du verstehst was ich meine.
Dies sieht man auch gut, wen man Text ausgeben will.
Konsole: Write/Writeln.
GUI: Canvas.TextOut.


Das habe ich verstanden. Unter Windows gibt es ein Konsolenfenster, das die Ausgaben einer Konsolenanwendung anzeigt. Auch Windows 10 besitzt so eine Konsole (Eingabeaufforderung). Ich glaube allerdings nicht, dass die noch auf DOS basiert.
Ich kann dort aber nach wie vor Textkommandos eingeben, um das Verhalten von Windows zu steuern oder Dateien anzuzeigen oder Programme aufzurufen, ....

Für Tastatureingaben und AUsgaben mit Write/Writeln funktioniert das unter Windows, nur eben leider nicht für die Maus. FPC 3.0.2. Mit dem Go32 Compiler in der DOS BOX habe ich das noch nicht getestet.

Ich habe mein Konsolenprogramm unter Windows für Windows übersetzt. Das Linux Programm unter Linux, das heißt jeweils mit Target = Default. Daher gehe ich stillschweigend davon aus, das unter Linus Lazarus so vorkonfiguriert ist, das für Linux übersetzt wird, das Compilat hat keine Dateierweiterung unter Linux. Unter nWindows bekomme ich eine Exe. Sollte also die jeweils richtige Zielplattform sein.

Ich will mein Programm plattformübergreifend halten, deshalb teste ich auch auf beiden Plattformen. Linux und Windows.

Mathias hat geschrieben:PS: Hast du dies mal angeguckt ? http://lazarus-ccr.sourceforge.net/docs ... ousex.html

[/quote]

Ja, soeben getestet. Mausposition bleibt auf (0,0), egal wie ich die Maus bewege, mit oder ohne gedrückte Maustasten links oder rechts.

Ich habe das Beispiel noch mal neu geschrieben. Nicht ganz wie @Michl, sondern so:

Code: Alles auswählen
 
program Maustest;
 
{$mode objfpc}{$H+}
 
uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes, SysUtils, CustApp, Mouse
  { you can add units after this };
 
type
 
  { TMouseApplication }
 
  TMouseApplication = class(TCustomApplication)
  private
    fromMouse: TMouseEvent;
  protected
    procedure DoRun; override;
  public
    constructor Create(TheOwner: TComponent); override;
    destructor Destroy; override;
    procedure Run;
    procedure WriteHelp; virtual;
  end;
 
{ TMouseApplication }
 
procedure TMouseApplication.DoRun;
var
  ErrorMsg: String;
begin
  // quick check parameters
  ErrorMsg:=CheckOptions('h', 'help');
  if ErrorMsg<>'' then begin
    ShowException(Exception.Create(ErrorMsg));
    Terminate;
    Exit;
  end;
 
  // parse parameters
  if HasOption('h', 'help') then begin
    WriteHelp;
    Terminate;
    Exit;
  end;
 
  { add your program here }
 
  // stop program loop
  Terminate;
end;
 
constructor TMouseApplication.Create(TheOwner: TComponent);
begin
  inherited Create(TheOwner);
  StopOnException:=True;
  InitMouse;
end;
 
destructor TMouseApplication.Destroy;
begin
  DoneMouse;
  inherited Destroy;
end;
 
procedure TMouseApplication.Run;
begin
  //DoRun;
  repeat
    if PollMouseEvent(fromMouse) then GetMouseEvent(fromMouse);
    if fromMouse.buttons = MouseLeftButton then writeln('Linke Maustaste gedrückt!');
  until fromMouse.buttons = MouseRightButton;
  //writeln('Zurück mit Enter ...');
  //Readln;
  Terminate;
end;
 
procedure TMouseApplication.WriteHelp;
begin
  { add your help code here }
  writeln('Usage: ', ExeName, ' -h');
end;
 
var
  Application: TMouseApplication;
begin
  Application:=TMouseApplication.Create(nil);
  Application.Title:='My Mouse Application';
  Application.Run;
  Application.Free;
end.
 


Das Sourceforge Beispiel mit GetMouseX, GetMouseY habe ich dann anstelle der obigen Run Methode getestet. Die Mausposition bleibt da (0,0).
Zuletzt geändert von thosch am 29. Sep 2017, 21:58, insgesamt 1-mal geändert.
thosch
 
Beiträge: 69
Registriert: 10. Jul 2017, 19:32

Beitragvon wp_xyz » 29. Sep 2017, 21:52 Re: Maus funktioniert in Win 10 Konsole nicht. External SIGS

Übrigens, bei mir ging die Maus in Mathias' und Michls Demos auch nicht. Das konnte ich jetzt beheben: Systemmenü des Konsolenfensters öffnen, und unter Eigenschaften > Optionen den QuckEdit-Modus abwählen (der ermöglicht direktes Einfügen mit Rechtsklick, ansonsten erhält man bei Rechtsklick ein Kontextmenü, über dem man auch einfügen kann --> also in der Regel verschmerzbar).
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
wp_xyz
 
Beiträge: 2250
Registriert: 8. Apr 2011, 08:01

Beitragvon thosch » 29. Sep 2017, 22:14 Re: Maus funktioniert in Win 10 Konsole nicht. External SIGS

Juhuuuuuuuu, Danke wie verrückt! @wp_xyz!!! Das war es. Den Quick Edit Modus ausschalten und die Maus funktioniert. Problem gelöst! :D
thosch
 
Beiträge: 69
Registriert: 10. Jul 2017, 19:32

Beitragvon Mathias » 30. Sep 2017, 17:33 Re: Maus funktioniert in Win 10 Konsole nicht. [gelöst]

Juhuuuuuuuu, Danke wie verrückt! @wp_xyz!!! Das war es. Den Quick Edit Modus ausschalten und die Maus funktioniert.

Dies ist doch wieder mal typisch Win10. :roll: Unter XP ist es abgewählt und Win10 ist es angewählt.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3193
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Windows



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried