Hardwarebuttons, eigene Funktionen.

noenglish
Beiträge: 36
Registriert: Di 4. Mai 2010, 09:14
OS, Lazarus, FPC: Win10 64Bit, L: 1.8.4 FPC 3.0.4

Hardwarebuttons, eigene Funktionen.

Beitrag von noenglish »

Guten Tag zussammen,

Wie kann ich die Hardwarebuttons eines PDAs mit eigenen Funktionen belegen?

Das möchte ich tun:
- Vorhandene Belegung der Buttons speichern.
- Buttons mit eigenen Funktionen belegen.
- …
- Ursprüngliche Belegung wieder herstellen.

Wie lautet die dazu nötige Funktion und in welcher Unit ist sie zu finden?
Gibt es Kodebeispiele?

Im Voraus vielen Dank
noenglish

u-boot
Beiträge: 302
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von u-boot »

Da ich keine Ahnung habe vermute ich, dass es gleich funktioniert wie bei einer Tastatur eines PC, falls nicht wäre es schön wenn jemand die Unterschiede reinschreibt.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

noenglish
Beiträge: 36
Registriert: Di 4. Mai 2010, 09:14
OS, Lazarus, FPC: Win10 64Bit, L: 1.8.4 FPC 3.0.4

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von noenglish »

Hallo u-boot,

die Buttons eines PDAs kann man m. E. nicht mit der Tastatur eines PCs vergleichen (bestenfalls mit den Funktionstasten).
Siehe Anhang. Markierte Bereiche, das meine ich mit Hardware Buttons.

Was ich suche ist die Implementation von dem: http://msdn.microsoft.com/en-us/library/microsoft.windowsce.forms.hardwarebutton.aspx.

noenglish
Dateianhänge
PDAmod.bmp
PDAmod.bmp (497.91 KiB) 1890 mal betrachtet

noenglish
Beiträge: 36
Registriert: Di 4. Mai 2010, 09:14
OS, Lazarus, FPC: Win10 64Bit, L: 1.8.4 FPC 3.0.4

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von noenglish »

Ich will nicht glauben, dass nach 4 Wochen immer noch keine brauchbare Antwort kommt. :(
Wo bleiben die Experten von FPC und Lazarus? :roll:

noenglish

carli
Beiträge: 656
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von carli »

Die Programmierschnittstelle, die du hier aufzeigst ist .NET-Code.
Das Event müsste auf alle Fälle mit der Hauptschleife als Event reinkommen, aber Lazarus scheint diese Events zu verdrängen. Versuch mal, ankommende Events rauszufischen und zu loggen.

Was machen die Hardware Buttons überhaupt? sind das einfach nur Tasten für das Programm? Oder werden damit Betriebssystem-Funktionen aufgerufen? (z.B. Navi öffnet sich)

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von Maik81ftl »

@noenglish kann ggf auch daran liegen, das sich damit noch nicht all zuviele beschäftigt haben.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

noenglish
Beiträge: 36
Registriert: Di 4. Mai 2010, 09:14
OS, Lazarus, FPC: Win10 64Bit, L: 1.8.4 FPC 3.0.4

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von noenglish »

Hallo carli,
vielen Dank für den Tip. Leider habe ich keine Ahnung wie ich ankommende Events rauszufischen kan.
Mit den Hardware Buttons können wie Du richtig vermutest Betriebssystem-Funktionen und Programme aufgerufen werden. Die Belegung kann eingestellt werden.

noenglish

pluto
Lazarusforum e. V.
Beiträge: 7097
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von pluto »

Schau dir mal die Events von Application an. Da gibt es ein Event "OnUserInput". Ich meine, dass müsste Global gelten. Auch wenn die Anwendung nicht den Focus hat.

Im Schlimmsten Fall musst du mehr Aufwand betreiben.
MFG
Michael Springwald

noenglish
Beiträge: 36
Registriert: Di 4. Mai 2010, 09:14
OS, Lazarus, FPC: Win10 64Bit, L: 1.8.4 FPC 3.0.4

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von noenglish »

Vielen Dank pluto!
Dein Tipp mit dem Event "OnUserInput" ist vermutlich der richtige Weg. Leider komme ich nicht weiter. Ich habe folgendes probiert:

1. Versuch:
DasControl „TapplicationProperties „ auf der Form platziert.
Das Ereignis OnUserInput „procedure ApplicationPropertiesUserInput(Sender: TObject; Msg: Cardinal)“ hinzugefügt.

2. Versuch:
Das Beispiel aus dem letzten Beitrag von http://www.lazarus.freepascal.org/index ... pic=7694.0 .

In beiden Fällen erhalte ich als Rückgabe von 'Msg' für alle Buttons die gleichen Werte. Die Werte sind nur abhängig vom Ereignis. Beispiele: 48384 für Down oder 48385 für Up.
Ein Bezug zum auslösenden Button kann ich nicht finden.

Christian
Lazarusforum e. V.
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von Christian »

Ich nehme mal stark an WM_SYSCOMMAND ist nicht die richtige Message dafür,
http://msdn.microsoft.com/en-us/library/aa932727.aspx
im MSDN findest du für soetwas sämtliche Dokumentation die du brauchst.
Die Seite oben sollte denk ich die richtigen nachrichten liefern, wo die Hardwarebuttons nun genau motkommen konnt ich auf die Schnelle nicht rauslesen.
Viel mehr Hilfe wirst du hier leider nicht erwarten können da Windows Mobile in DE nicht sehr verbreitet ist.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7097
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von pluto »

WM_SYSCOMMAND reagiert auf System Tasten? Von Tasterturen? Auch auf den Auschaltknopf des Rechners?

In der LCL dürfte es nicht WM_SYSCOMMAND heißen sondern LM_SYSCOMMAND. Dürfte aber beides gehen. Wenn du die Windows-Unit einbindest.
MFG
Michael Springwald

Christian
Lazarusforum e. V.
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von Christian »

OMG, pluto häng dich doch nicht in Winapi sachen rein. Davon hast du nun wirklich noch weniger Plan als vom rest.
nein es muss nicht LM_SYSCOMMAND heissen weil es hier um PDAś geht und die LCL von diesen Nachrichten Garantiert nichts weiss.
Und Da es um PDAś geht hat das auch nichts mit auschaltknöpfen am Rechner zu tun.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7097
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von pluto »

Natürlich gibt es eine LM_SYSCOMMAND in der LMessages gerade nach gesehen. Also erzähl kein Unsinn. Ob die auch geht weiß ich nicht. Wäre aber denkbar. Warum sollte das nicht gehen?
Zuletzt geändert von Lori am Sa 23. Apr 2011, 11:35, insgesamt 1-mal geändert.
Grund: Bitte via PN streiten
MFG
Michael Springwald

Christian
Lazarusforum e. V.
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von Christian »

OK, hat mit dem Thread MAL WIEDER nichts zu tun aber ich habs mir angeschaut. Die WM_SYSCOMMAND liefert Nachrichten zu dne Fensterbuttons gibts also natürliuch auch unter Windows. Hat aber weder was mit den PDA Hardwarebuttons zu tun, noch mit irgendwelchen ACPI Buttons am Rechner.
Zuletzt geändert von Lori am Sa 23. Apr 2011, 11:37, insgesamt 1-mal geändert.
Grund: Bitte via PN streiten
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

noenglish
Beiträge: 36
Registriert: Di 4. Mai 2010, 09:14
OS, Lazarus, FPC: Win10 64Bit, L: 1.8.4 FPC 3.0.4

Re: Hardwarebuttons, eigene Funktionen.

Beitrag von noenglish »

Uff, was habe ich da angerichtet!
Bitte bleibt doch sachlich. Streit nutzt niemandem, er ist nur der Gesundheit abträglich.

Ich bin noch zu sehr Anfänger um Eure Antworten verwerten zu können. Wie bekomme ich Zugriff auf LM_SYSCOMMAND bzw. WM_SYSCOMMAND?
Ab jetzt bin ich bis nach Ostern ohne Internet. Werde versuchen mich in der Zeit schlau zu machen.

Ich wünsche schöne und vor allem entspannte Ostern!

noenglish

Antworten