AGB  ·  Datenschutz  ·  Impressum  







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

Alternative für: Chr() gesucht

Ein Thema von napsterxx · begonnen am 22. Okt 2008 · letzter Beitrag vom 23. Okt 2008
Antwort Antwort
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#1

Alternative für: Chr() gesucht

  Alt 22. Okt 2008, 16:06
Moin moin,
also ich lasse mir anzeigen welche Taste gedrückt wurde, genauer gesagt den Virtualkey Code der Taste. Für ein A z.B. 65. Nun wollte ich dies Taste als Klartext einer Editbox anzeigen lassen. Derzeit mache ich das so: Edit1.Text := Chr(MyVK);

aber bei anstatt einem "-" zeigt er komische Symbole an, kann ich da was drehen?^^

// Edit
http://delphi.about.com/od/adptips2006/qt/vkey2char.htm
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Alternative für: Chr() gesucht

  Alt 22. Okt 2008, 23:29
Leider funktionieren beide Methoden hier nicht:
Delphi-Quellcode:
var
  I: Integer;
begin
  for I := 3 to 200 do
  if GetAsyncKeyState(I) = -32767 then
    Edit1.Text := Edit1.Text+chr(i);
end;
Es wird zwar "ABCDE" und "0724" angezeigt, halte ich aber die SHIFT Taste gedrückt so steht kein "$ oder ein !" da.
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Alternative für: Chr() gesucht

  Alt 22. Okt 2008, 23:36
VK-Codes sind ja auch keine ASCII Repräsentation, bzw. gilt das lediglich für die "normalen" Buchstaben, wobei selbst da dann nicht zwischen Groß- und Kleinschreibung unterschieden würde. Du hast, soweit ich das gefunden habe, drei Möglichkeiten:

1) TranslateMessage() um eine WM_KEYDOWN Message in eine WM_CHAR Message konvertieren zu lassen, die das entsprechende Zeichen incl. Berücksichtigung von Alt, Shift usw. enthält.
2) GetKeyNameText() um eine String-Repräsentation des VK-Codes zu erhalten ("VK_1", "VK_F" usw.), was aber wohl eher nicht der Brüller ist, wenn man dann alle Fälle durch ein if-then-else-Monster durchgehen müsste.
3) MapVirtualKey() ist mein Favorit. Nimmt VK-Codes oder Scandcodes entgegen, und bastelt sie je nach Wunsch (Parameter) zu einem Scancode, VK-Code oder eben einem Character um.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Alternative für: Chr() gesucht

  Alt 23. Okt 2008, 13:44
ich mache es derzeit mit einem Tastaturhook, allerdings habe ich ein kleines Problem. Wenn die Tasten ankommen mache ich folgendes:
PostMessage(Edit1.Handle, WM_KEYDOWN, Msg.WParam, Msg.LParam); Dies funktioniert sehr gut, jedoch wenn ich besonders schnell schreibe kann es vorkommen, dass mehrere gleiche Zeichen wie etwas "((((((((((((" angezeigt werden obwohl ich es nur einmal gedrückt und nicht gedrückt gelassen habe.
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  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 04:29 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