AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi PostMessage - Wert als Hexadezimalzahl übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

PostMessage - Wert als Hexadezimalzahl übergeben

Ein Thema von PatrickB · begonnen am 14. Jun 2008 · letzter Beitrag vom 14. Jun 2008
Antwort Antwort
PatrickB

Registriert seit: 13. Dez 2007
61 Beiträge
 
#1

PostMessage - Wert als Hexadezimalzahl übergeben

  Alt 14. Jun 2008, 12:17
Hi,

ich versuche gerade einen Text in ein Feld einzugeben, diesen dann auslesen zu lassen und dann umzuwandeln damit ich ihn per PostMessage verschicken kann. Nun funktioniert das aber nicht so ganz.

Delphi-Quellcode:
var s:integer;
...
s:=strtoint('$'+IntToHex(Ord(str[i]),2));
PostMessage(h, wm_KeyDown, s,0);
Damit ich den String str verschicken kann muss ich ihn zuerst umwandeln.
Also nehm ich den 1. Buchstaben, z.B. A, und wandle ihn um auf $41.
Dadurch, dass $41 dann aber ein String ist, muss ich ihn in einen Integer umwandeln da ja wparam vom Typ integer ist.
Beim konvertieren wird dann $41 aber gleich umgewandelt wodurch ein anderes Symbol und nicht das A verschickt wird.

Hat jemand ne Ahnung und kann mir bitte helfen?


Mfg

PatrickB
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: PostMessage - Wert als Hexadezimalzahl übergeben

  Alt 14. Jun 2008, 12:20
Ord(str[i]) genügt völlig. Du musst aber sicherstellen, dass in str nur Großbuchstaben stehen.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
PatrickB

Registriert seit: 13. Dez 2007
61 Beiträge
 
#3

Re: PostMessage - Wert als Hexadezimalzahl übergeben

  Alt 14. Jun 2008, 12:22
Und wenn ich aber auch Kleinbuchstaben verschicken will?

Und Ord() liefert ja nur den einzelnen Buchstaben. Muss man das für PostMessage nicht umwandeln?
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#4

Re: PostMessage - Wert als Hexadezimalzahl übergeben

  Alt 14. Jun 2008, 12:27
Zitat von PatrickB:
Und wenn ich aber auch Kleinbuchstaben verschicken will?

Und Ord() liefert ja nur den einzelnen Buchstaben. Muss man das für PostMessage nicht umwandeln?
Hallo,

erst mal zurück auf Anfang: ein 32bit-Integer-Wert besteht aus 4 Bytes, du kannst also max 4 Buchstaben hineinpacken und verschicken. Von String keine Rede. Reicht dir das?

(Gross/klein spielt dabei keine Rolle)

Gruss Reinhard
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: PostMessage - Wert als Hexadezimalzahl übergeben

  Alt 14. Jun 2008, 12:33
WM_KEYDOWN ist keine benutzerdefinierte Nachricht. Windows erwartet einen virtual key code, und die sind für Großbuchstaben nunmal Ord('A')-Ord('Z').
Der von Ord zurückgegebene Wert wird übrigens nicht besser, wenn du ihn mit Inttohex in einen String und dann mit StrToInt wieder zurückwandelst.
WM_KEYDOWN sagt nur, dass eine Taste gedrückt wurde - ob das in einem Groß- oder einem Kleinbuchstaben resultiert, entscheidet das Programm selbst (mit TranslateMessage).
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
PatrickB

Registriert seit: 13. Dez 2007
61 Beiträge
 
#6

Re: PostMessage - Wert als Hexadezimalzahl übergeben

  Alt 14. Jun 2008, 12:46
Okay, jetzt klappts.
Und es gibt ja auch noch nen Befehl der simuliert, dass die Shift-Taste gedrückt ist.
Dann muss ich ja vor nem Großbuchstaben einfach nur diesen Befehl einfügen, dann müsste es ja klappen =)
  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 05:01 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