AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

keyb_event schreibt kein ñ

Ein Thema von divBy0 · begonnen am 30. Sep 2009 · letzter Beitrag vom 30. Sep 2009
Antwort Antwort
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#1

keyb_event schreibt kein ñ

  Alt 30. Sep 2009, 14:04
Hallo,

ich wollte mir gerade was basteln um den Buchstaben 'ñ' per Mausklick griffbereit zu haben. Allerdings wird das Zeichen nicht mit keyb_event gesendet.

Delphi-Quellcode:
keybd_event(Ord('Ñ'), 0, 0, 0); // - geht nicht

keyb_event(Ord('ñ'), 0, 0, 0); // - geht nicht
Das muss aber doch mit keyb_event funktionieren die Ascii-Codes sind 0241 für ñ oder 0209 für Ñ.

Weiß jemand woran das liegt?
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#2

Re: keyb_event schreibt kein ñ

  Alt 30. Sep 2009, 14:44
Dann mach es so:

Klicke ins Edit1, tippe Strg+a
klicke ins Edit2, tippe Strg+b

Delphi-Quellcode:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if (ssCtrl in Shift) and (Key = 65) then //ctrl a
    SendMessage(Edit1.Handle, WM_CHAR, Ord(#0209), 1);
end;

procedure TForm1.Edit2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if (ssCtrl in Shift) and (Key = 66) then //ctrl b
    SendMessage(Edit2.Handle, WM_CHAR, Ord(#0241), 1);
end;
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: keyb_event schreibt kein ñ

  Alt 30. Sep 2009, 15:22
Der Grund das dies nicht funktioniert ist relativ einfach.
keybd_event erwartet eine Taste und kein Zeichen (und für das von dir gewünschte Zeichen gibt es keine eigene Taste).
Will man ein Zeichen erzeugen welches die Verwendung mehrere Tasten zur Erzeugung benötigt (zum Beispiel Großbuchstaben) so muss man diese auch simulieren.
In der Codelib befindet sich dazu auch eine Funktion der man einfach eine Zeichenkette übergeben kann und diese ermittelt dann welche Tastendrücke dafür notwendig sind und simuliert alle benötigten Tastenaktionen mit keybd_event.

[Edit]
http://www.delphipraxis.net/internal...=562991#562991
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#4

Re: keyb_event schreibt kein ñ

  Alt 30. Sep 2009, 15:41
Die Taste gibts schon, allerdings auf einer spanischen Tastatur.

Dann müsste ich also die Tasten alle einzeln übergeben ALT + 0 + 2 + 4 + 1.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.052 Beiträge
 
Delphi 12 Athens
 
#5

Re: keyb_event schreibt kein ñ

  Alt 30. Sep 2009, 15:43
Wenn man ein entsprechend kombinierendes Eingabeschema hätte, dann ginge auch ~+n

so wie ´+a = á


PS: daß es mit MSDN-Library durchsuchenkeybd_event nicht so geht, sollte eigentlich klar sein, denn dieses verlangt einen Scan-Code und keinen Char
> MSDN-Library durchsuchenMapVirtualKey

[edit] glatt SirThornberry übersehn
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: keyb_event schreibt kein ñ

  Alt 30. Sep 2009, 22:57
Zitat von divBy0:
Die Taste gibts schon, allerdings auf einer spanischen Tastatur.

Dann müsste ich also die Tasten alle einzeln übergeben ALT + 0 + 2 + 4 + 1.
Wenn ein spanisches Tastaturlayout eingestellt ist würde die Funktion aus der Codelib dies auch berücksichtigen und entsprechend andere Tasten simulieren.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz