[gelöst] StringGrid-- Bei DblClick wird auch OnKey ausgef.

Rund um die LCL und andere Komponenten
thomas55
Beiträge: 12
Registriert: So 25. Sep 2016, 14:24
OS, Lazarus, FPC: Win7 (L 1.6.xy FPC 3.0.0)
CPU-Target: 64Bit
Wohnort: Berlin, Wetterseite

[gelöst] StringGrid-- Bei DblClick wird auch OnKey ausgef.

Beitrag von thomas55 »

Hallo liebe Forumsmiglieder.
Nach einiger Weile befasse ich mich wieder mit Lazarus und bin dabei die Examples durchzugehen.
Dabei habe ich in 'stringgrideditor' für StringGrid1 ein Ereignis 'OnKeyPress' eingerichtet. Dabei soll bei jedem Tastendruck ein ShowMessage angezeigt werden.
Funktioniert wunderbar mit allen Tasten wie erwartet.

Mit der Maus ein DblClick in Spalte Auto (oder eine andere Spalte) führt aber auch zu dieser Anzeige. So geht das auch bei 'OnKeyDown' und 'OnKeyUp'.
Nun möchte ich 'OnDblClick' und 'OnKeyUp' verwenden. Da sollen dann nur die jeweiligen Ereignisroutinen gestartet werden.

Bitte, wenn jemand weiß welchen Fehler ich gemacht habe, zögere nicht mich darauf hizuweisen.

Danke im Voraus
Zuletzt geändert von thomas55 am Do 6. Okt 2016, 12:36, insgesamt 1-mal geändert.

Michl
Beiträge: 2340
Registriert: Di 19. Jun 2012, 12:54

Re: StringGrid-- Bei DblClick wird auch OnKeyxxx ausgeführt

Beitrag von Michl »

Ich habe das Beispiel mal getested und OnKeyUp und OnKeyDown verlinkt. Bei mir werden diese mit einer Mausaktion (Klick/Doppelklick) nicht ausgeführt (Lazarus 1.7 32bit, Windows 7). Welchen Eventhandler hast du bei OnClick bzw. OnDblClick verlinkt?

Anonsten könntest du dein Beispiel (ohne Executable und Kompilate) als Zip hier hochladen, dann könnte man dir evtl. mehr sagen).

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

thomas55
Beiträge: 12
Registriert: So 25. Sep 2016, 14:24
OS, Lazarus, FPC: Win7 (L 1.6.xy FPC 3.0.0)
CPU-Target: 64Bit
Wohnort: Berlin, Wetterseite

Re: StringGrid-- Bei DblClick wird auch OnKeyxxx ausgeführt

Beitrag von thomas55 »

Hallo,

Das ist aber superschnell. Die .zip ist angehängt.

Danke im Voraus
Thomas
Dateianhänge
columneditors.zip
Hier tritt der Zustand auf in win7 mit Lazarus1.6
(942.66 KiB) 17-mal heruntergeladen

Michl
Beiträge: 2340
Registriert: Di 19. Jun 2012, 12:54

Re: StringGrid-- Bei DblClick wird auch OnKeyxxx ausgeführt

Beitrag von Michl »

thomas55 hat geschrieben:Mit der Maus ein DblClick in Spalte Auto (oder eine andere Spalte) führt aber auch zu dieser Anzeige.
Das kann ich auch nicht bei deinem Projekt sehen. Welches Betriebssystem nutzt du?

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

thomas55
Beiträge: 12
Registriert: So 25. Sep 2016, 14:24
OS, Lazarus, FPC: Win7 (L 1.6.xy FPC 3.0.0)
CPU-Target: 64Bit
Wohnort: Berlin, Wetterseite

Re: StringGrid-- Bei DblClick wird auch OnKeyxxx ausgeführt

Beitrag von thomas55 »

Hallo Michl,

BS ist win7 und Lazarus 1.6 mit FPC 3.0.0.
Verstehe ich das richtig dass es bei Dir nicht auftritt?

In der .zip habe ich absichtlich die bei mir erzeugte .exe mitgegeben. probier bitte die aus. Da tritt das bei mir garantiert auf.
... Jetzt denke ich ... Du bist bestimmt auf Linux oder ...

Gruß Thomas

Michl
Beiträge: 2340
Registriert: Di 19. Jun 2012, 12:54

Re: StringGrid-- Bei DblClick wird auch OnKeyxxx ausgeführt

Beitrag von Michl »

Nö, nutze auch Windows 7. Ich mag zwar keine fremden Executables ausführen, da aber zwei Virenscanner keine Bedenken hatten, habe ich sie eben doch getestet. Bei mir wird nur bei Tastatureingaben der Dialog gezeigt, nicht bei Mausklicks oder Doppelklicks (bin gerade unterwegs und habe hier ein Notebook mit Touchpad).

Hast du eine besondere Maus?


Bin jetzt leider aber auch erstmal weg.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

thomas55
Beiträge: 12
Registriert: So 25. Sep 2016, 14:24
OS, Lazarus, FPC: Win7 (L 1.6.xy FPC 3.0.0)
CPU-Target: 64Bit
Wohnort: Berlin, Wetterseite

Re: StringGrid-- Bei DblClick wird auch OnKeyxxx ausgeführt

Beitrag von thomas55 »

Hallo Michl,
ich habe jetzt mehrere Mouses und einen anderen PC mit win7 getestet. Das tritt immer auf.

Dann: win10 auf wieder einem anderen PC und siehe da: Alles ok. Keine Meldung.

Da scheit es als wäre es ein Problem mit win7.

Dazu fällt mir nichts ein.

Wenn es eine einfache Möglichkeit, oder wenigstens eine gut beschriebene Möglichkeit gäbe Lazarus auf Linux zu installieren, würde ich das noch ausprobieren.
So wie das bisher geht, dazu bin ich zu wenig Linux-Insider.

Gruß
Thomas

wp_xyz
Beiträge: 3333
Registriert: Fr 8. Apr 2011, 09:01

Re: StringGrid-- Bei DblClick wird auch OnKeyxxx ausgeführt

Beitrag von wp_xyz »

thomas55 hat geschrieben:Wenn es eine einfache Möglichkeit, oder wenigstens eine gut beschriebene Möglichkeit gäbe Lazarus auf Linux zu installieren, würde ich das noch ausprobieren.

Mit dem Script, das von der GetLazarus-Seite angeboten wird, (http://www.getlazarus.org/setup/, Abschnitt Installation / Linux) habe ich das jedesmal auf Anhieb hinbekommen, und ich bin jetzt auch nicht der Linux-Guru. Es wird allerdings die gedockte Variante von Lazarus installiert, die eher den aktuellen Delphi-Versionen entspricht; wenn du das nicht willst, musst du nachher die anchordocking und sparta-Packages wieder deinstallieren.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2304
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.8, FPC 3.0.4)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: StringGrid-- Bei DblClick wird auch OnKeyxxx ausgeführt

Beitrag von m.fuchs »

thomas55 hat geschrieben:Wenn es eine einfache Möglichkeit, oder wenigstens eine gut beschriebene Möglichkeit gäbe Lazarus auf Linux zu installieren, würde ich das noch ausprobieren.
So wie das bisher geht, dazu bin ich zu wenig Linux-Insider.

Linux auf Debian Basis (Debian, Ubuntu, Mint)?

Dann einfach auf diese Seite gehen: https://sourceforge.net/projects/lazaru ... rus%201.6/

Die beiden FPC-Pakete herunterladen und installieren.

Dann von hier (https://sourceforge.net/projects/lazaru ... rus%201.6/) eine der beiden Dateien herunterladen und in ein Verzeichnis deiner Wahl (idealerweise ein Unterverzeichnis in deinem home-Verzeichnis) entpacken.

Auf der Konsole in dieses Verzeichnis wechseln und
aufrufen.

Lazarus wird nun gebaut, nach Abschluss kann es mit

Code: Alles auswählen

./startlazarus
gestartet werden.

Auch das Bauen aus der IDE ist dann problemlos möglich.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

thomas55
Beiträge: 12
Registriert: So 25. Sep 2016, 14:24
OS, Lazarus, FPC: Win7 (L 1.6.xy FPC 3.0.0)
CPU-Target: 64Bit
Wohnort: Berlin, Wetterseite

Re: StringGrid-- Bei DblClick wird auch OnKeyxxx ausgeführt

Beitrag von thomas55 »

Danke, danke, danke für die Installationsanleitungen.

Nun habe ich Lazarus 1.7 unter Ubuntu 14.04 .

Und gleich ausprobiert. Und auch das gleiche Fehlverhalten:
Auf eine Form ein Edit gesetzt, OnKeyUp mit ShowMessage versehen, gestartet, DblClick in das Edit ... und die schöne Message erscheint. Sogar noch schlimmer: Bei DblClick irgendwo auf die Form kommt auch die Message. Das heißt doch, dass das Prog in die Interruptroutine 'Edit1KeyUp' läuft, wenn in Edit gedoubleklickt wird. --- Ein zweites Edit auf die Form gebracht und ein Ereignis OnKeyPress mit Message versehen. Jetzt wird´s aber komisch denn bei Edit2 kommt auch die Message aber da muss man schon sehr sehr häufig wie ein dooofer doppelklicken. Wenn der Focus auf einem Edit liegt und ich dblKlicke auf die Form dann gehts auch.

Aber jetzt kommt der Hammer: Der guten Ordnung halber und weil ich es wissen wollte habe ich diesen Test auch mit VisualStudio 2015 in win7 durchgeführt. Da habe ich mit VisualBasic.net und mit C# getestet. Genau das Ergebnis wie mit Lazarus. Naja, wenn das so ist daß das Verhalten in win7 und Ubuntu14 sowohl mit Lazarus als auch mit VB.net und C# auftritt, was sagt mir das ? Da kommt mir das kalte Grauen. Allerdings muß ich noch nachschieben, daß ich Ubuntu in einer Oracle VM auf win7 habe. Jedenfalls ist eines ganz klar: Das ist ´ne SW-Angelegenheit, die ganz ganz Hardwarenah zu finden ist. Möglicherweise in der Interruptbearbeitung des Betriebssystems. Da, so glaube ich, könnt Ihr mir wohl auch nicht helfen -- außer wenn ein workaround existiert.

Ob sich MS dafür noch interessiert ist fraglich, wahrscheinlich ist es dort längst bekannt.

Also, Danke nochmals und
Grüße aus dem abendlichen Berlin
Thomas

wp_xyz
Beiträge: 3333
Registriert: Fr 8. Apr 2011, 09:01

Re: StringGrid-- Bei DblClick wird auch OnKeyxxx ausgeführt

Beitrag von wp_xyz »

Michl hat geschrieben:
thomas55 hat geschrieben:Mit der Maus ein DblClick in Spalte Auto (oder eine andere Spalte) führt aber auch zu dieser Anzeige.

Selbes Verhalten bei mir wie bei Michl. Aber in deinem Code finde ich nirgendwo ein DblClick-Event. MouseDown/Up gibt es auch nicht. Wie soll dann ein Doppelklick zur Anzeige der Messagebox führen? Bist du sicher, dass du den richtigen Code hochgeladen hast?

wp_xyz
Beiträge: 3333
Registriert: Fr 8. Apr 2011, 09:01

Re: StringGrid-- Bei DblClick wird auch OnKeyxxx ausgeführt

Beitrag von wp_xyz »

thomas55 hat geschrieben:Auf eine Form ein Edit gesetzt, OnKeyUp mit ShowMessage versehen, gestartet, DblClick in das Edit ... und die schöne Message erscheint.

Verstehe ich das jetzt richtig: Es ist nur ein OnKeyUp eingetragen, DblClick ist leer? Dann hast du irgendwelche Maus-Zusatzsoftware, die dir bei einem Doppelklick die ENTER-Taste auslöst, oder sowas?

thomas55
Beiträge: 12
Registriert: So 25. Sep 2016, 14:24
OS, Lazarus, FPC: Win7 (L 1.6.xy FPC 3.0.0)
CPU-Target: 64Bit
Wohnort: Berlin, Wetterseite

Re: StringGrid-- Bei DblClick wird auch OnKeyxxx ausgeführt

Beitrag von thomas55 »

ok,
es ist zu verstehen, dass Ihr mir das kaum glauben könnt. Es ist tatsächlich wirklich wahr. So wie beschrieben. Ich würde euch das gern zeigen können.

Anbei ist nochmal eine Version. Die ist supereinfach. Bei mir AVG-Virenfrei.

Grüße aus Berlin
Thomas
Dateianhänge
win7_Fehler.zip
(128.09 KiB) 23-mal heruntergeladen

wp_xyz
Beiträge: 3333
Registriert: Fr 8. Apr 2011, 09:01

Re: StringGrid-- Bei DblClick wird auch OnKeyxxx ausgeführt

Beitrag von wp_xyz »

Nein, da tut sich gar nichts: Doppelklick im Formular, auf den Edits, keine Reaktion. Ich habe sowohl auf meinem Hauptrechner mit Win10 als auch auf einem Notebook mit Win7 übersetzt. Überall dasselbe.

Wie schon gesagt, ich bin der Meinung, du hast auf den Win7-Rechnern eine Software, die bei einem Doppelklick die ENTER-Taste auslöst. Eigentlich müsste dann dasselbe auch bei anderen Programmen auftreten. Oder was ist, wenn du ein Memo aufs Formular setzt, dessen WantReturn aktivierst, und das ganze Spielchen wiederholst? Kriegst du da beim Doppelklick eine neue Zeile?

thomas55
Beiträge: 12
Registriert: So 25. Sep 2016, 14:24
OS, Lazarus, FPC: Win7 (L 1.6.xy FPC 3.0.0)
CPU-Target: 64Bit
Wohnort: Berlin, Wetterseite

[gelöst] StringGrid-- Bei DblClick wird auch OnKeyxxx ausgef

Beitrag von thomas55 »

Ja, da war ich etwas kopflahm.

@ wp_xyz : Du bist der Held!

In diese Richtung hatte ich nicht gedacht. Die böse SW hat den Namen 'QTranslate'. Sie dient dazu markierte Texte zu übersetzen. Das geht so: zu übersetzenden Text mit der Maus markieren, dann erscheint ein kleines Icon neben dem markierten Text, Icon anklicken startet die Übersetzung. Das Tolle an dem Programm ist, dass es nicht nur im Firefox sondern auch in vielen anderen Programmen funktioniert. Die Bedienung ist komlett ohne DblClick. Da wird nicht gedoppelklickt. Nur einfach. Aber gut, das Programm ist für mich so sehr hilfreich daß ich es behalte. Es ist leicht mit einem Klick auf das Symbol neben der Uhr Ein- oder Aus- zu schalten. Wenn man´s weiß geht es schon. Dazu habe ich noch 'Pop-up Bubble Translator' von 'imTranslator'. Der funktioniert genauso, verursacht allerdings (bisher) keine Verwirrungen.

Danke nochmals an Alle die an der Lösung des Problems beteiligt waren.

Gruß aus Berlin, bewölkt, 10°C,
Thomas

Antworten