AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Message-Name in Windows-Message-Code zurückwandeln
Thema durchsuchen
Ansicht
Themen-Optionen

Message-Name in Windows-Message-Code zurückwandeln

Ein Thema von fylo · begonnen am 9. Apr 2008 · letzter Beitrag vom 9. Apr 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von fylo
fylo

Registriert seit: 18. Feb 2004
Ort: Rostock
155 Beiträge
 
Delphi 7 Personal
 
#1

Message-Name in Windows-Message-Code zurückwandeln

  Alt 9. Apr 2008, 00:44
Moin,

ich habe div. Messages (z.B. WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_LBUTTONUP usw.) als String vorliegen, jetzt möchte ich diese jedoch wieder als original Konstante/Integer, so wie in der Unit Messsages definiert, zurückhaben?

Muss ich das alles in einer großen if-then-Schleife durch gehen, z.B. wie im folgenden Code:
Delphi-Quellcode:
if s='WM_MOUSEMOVEthen msg := WMMOUSEMOVE;
if s='WM_LBUTTONDOWNthen msg := WM_LBUTTONDOWN;
if s='WM_LBUTTONUPthen msg := WM_LBUTTONUP;
oder gibt es da auch was eleganteres? z.B.msg := stringToMessage(s); // <--- diese Funktion gibt es leider nicht :-( [edit]
Ich hab mal den Titel geändert, damit er besser zum Post im DF passt.
[/edit]
have fun
fylo
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Messages von String wieder zurück wandeln

  Alt 9. Apr 2008, 00:50
1. Es gibt keine If-Schleifen!
2. Wenn er einmal in ein If reingegangen ist und den String umgewandelt hat, muss er dann wirklich noch alle anderen If Abfragen durchgehen? Schliessen die sich nicht irgendwie gegenseitig aus?
3. Du könntest eine Tabelle anlegen mit dem Ordinalwert und der String-Entsprechung.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: Messages von String wieder zurück wandeln

  Alt 9. Apr 2008, 01:00
Zu 2. von Muetze. Es gibt "else". Rest : jetzt nicht mehr.
Gruß
Hansa
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Messages von String wieder zurück wandeln

  Alt 9. Apr 2008, 02:22
Zitat von Hansa:
Zu 2. von Muetze. Es gibt "else". Rest : jetzt nicht mehr.
Ist mir bewusst und genau darauf wollte ich hinaus, aber eigentlich hatte ich gehofft er kommt selber drauf und lernt das dadurch eher für's nächste mal als dass es ihm vorgesagt wurde. Danke.
  Mit Zitat antworten Zitat
Benutzerbild von fylo
fylo

Registriert seit: 18. Feb 2004
Ort: Rostock
155 Beiträge
 
Delphi 7 Personal
 
#5

Re: Messages von String wieder zurück wandeln

  Alt 9. Apr 2008, 02:51
Zitat von Muetze1:
1. Es gibt keine If-Schleifen!
Sorry ich meinte natürlich if-then-else-Konstrukte, war wohl doch schon einwenig spät
Zitat von Muetze1:
2. Wenn er einmal in ein If reingegangen ist und den String umgewandelt hat, muss er dann wirklich noch alle anderen If Abfragen durchgehen?
Nein, wenn eine Entsprechung gefunden wurde, dann ist er und fertig und braucht nicht alle anderen auch noch prüfen.
Zitat von Muetze1:
3. Du könntest eine Tabelle anlegen mit dem Ordinalwert und der String-Entsprechung.
Ist diese Tabelle nicht schon in einer Art in der Messages.pas in Form der Const-Definition drin?
have fun
fylo
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Messages von String wieder zurück wandeln

  Alt 9. Apr 2008, 03:20
Zitat von fylo:
Nein, wenn eine Entsprechung gefunden wurde, dann ist er und fertig und braucht nicht alle anderen auch noch prüfen.
Na dann mal schnell überall ein ELSE einfügen...

Zitat von fylo:
Ist diese Tabelle nicht schon in einer Art in der Messages.pas in Form der Const-Definition drin?
Nein, wozu auch? Die Messages.pas braucht nur die Ordinalwerte, die Strings interessieren sie nicht die Bohne. Windows versendet und verarbeitet Ordinalwerte für die Nachrichten und keine Strings. Das wäre viel zu aufwendig.
  Mit Zitat antworten Zitat
Benutzerbild von fylo
fylo

Registriert seit: 18. Feb 2004
Ort: Rostock
155 Beiträge
 
Delphi 7 Personal
 
#7

Re: Messages von String wieder zurück wandeln

  Alt 9. Apr 2008, 09:04
Zitat von Muetze1:
Na dann mal schnell überall ein ELSE einfügen...
*done* Hab ich gemacht. Danke.

Zitat von Muetze1:
Nein, wozu auch? Die Messages.pas braucht nur die Ordinalwerte, die Strings interessieren sie nicht die Bohne. Windows versendet und verarbeitet Ordinalwerte für die Nachrichten und keine Strings. Das wäre viel zu aufwendig.
Das ist mir schon klar, das da keine Strings versendet werden.

Muss ich mir diese Tabelle mit den Ordinalwerten jetzt selbst bauen oder gibt es da eine Funktion (das war ja eigentlich meine Frage)?
have fun
fylo
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Messages von String wieder zurück wandeln

  Alt 9. Apr 2008, 11:18
Zitat von fylo:
Muss ich mir diese Tabelle mit den Ordinalwerten jetzt selbst bauen oder gibt es da eine Funktion (das war ja eigentlich meine Frage)?
Definitiv: JA, selbst bauen.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Messages von String wieder zurück wandeln

  Alt 9. Apr 2008, 11:26
Eventuell geht sogar selbst bauen nicht. Ich bin fast sicher das sich hinter einigen Konstanten der gleiche Ordinalwert verbirgt. Das heißt du kannst anhand des Ordinalwertes (der Message) nicht eindeutig auf den String schließen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#10

Re: Messages von String wieder zurück wandeln

  Alt 9. Apr 2008, 11:29
Zitat von SirThornberry:
Eventuell geht sogar selbst bauen nicht. Ich bin fast sicher das sich hinter einigen Konstanten der gleiche Ordinalwert verbirgt. Das heißt du kannst anhand des Ordinalwertes (der Message) nicht eindeutig auf den String schließen.
Da er aber den String wieder zum Ordinalwert wandeln will, geht diese Richtung.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:43 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