AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi WindowsMessage in UpperCase umwandeln
Thema durchsuchen
Ansicht
Themen-Optionen

WindowsMessage in UpperCase umwandeln

Ein Thema von beo · begonnen am 15. Sep 2006 · letzter Beitrag vom 15. Sep 2006
Antwort Antwort
beo

Registriert seit: 7. Sep 2006
13 Beiträge
 
#1

WindowsMessage in UpperCase umwandeln

  Alt 15. Sep 2006, 10:50
Hallo,

ich habe mir ein Object geschrieben, mit dem ich die StandardBelegung der Tastatur übersteuern kann. Funktioniert so weit auch ganz gut.

Der User soll nun mit einer beliebigen Taste in den UpperCase Modus wechseln können. Mein Problem ist, dass ich nicht weiß, wie ich die WindowsMessage von Lower in Upper umwandeln kann:

Hier ein Auszug:

Application.OnMessage := MyKeyMessage; // Um Nachrichten abzufangen

Delphi-Quellcode:
procedure TKeyHandle.MyKeyMessage(var Msg: TMsg; var Handled: boolean);
begin
  if( msg.message = WM_KEYDOWN ) then
  begin
    if FActive then
    begin
      if Assigned(FOnKeyMessage) then
      begin
        FOnKeyMessage(msg,Handled);
        Handled := true;
        exit;
      end
      else
        KeyConvert( msg, Handled );
    end;
  end;
end;


procedure TKasKeyHandle.KeyConvert( var msg: TMsg; var handle:boolean );
var
  k:TMyKey;
  KeyDown:boolean;
begin
  KeyDown := (msg.lParam shr 31) = 0;

  if FActive and KeyDown then
  begin
    k := GetKeyByCode(msg);


    ....

    if FVorStellKey <> nil then
    begin
       if FVorStellKey.id = SHIFTKEY_ID then // zuvor wurde in der UpperModus gewechselt
            hier möchte ich msg, so ändern, dass aus a -> A wird

   ....
Leider konnte ich weder im Web noch in meinem Lieblingsforum etwas dazu finden.

Gruß Christian
Christian
  Mit Zitat antworten Zitat
beo

Registriert seit: 7. Sep 2006
13 Beiträge
 
#2

Re: WindowsMessage in UpperCase umwandeln

  Alt 15. Sep 2006, 11:53
für alle die es interessiert, ich hab es raus, wie einfach:

wenn ich die Taste für den Upper-Modus abfange, einfach mit SetKeyboardState die Tastur umstellen!
Christian
  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: WindowsMessage in UpperCase umwandeln

  Alt 15. Sep 2006, 11:56
kommst du nicht besser einfach die Methode KeyDown bzw. KeyPress zu überschreiben und dort den Key zu wandeln? Ich wäre ganz und gar nicht begeistert wenn ein Programm mit Capslock etc. aktiviert.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
beo

Registriert seit: 7. Sep 2006
13 Beiträge
 
#4

Re: WindowsMessage in UpperCase umwandeln

  Alt 15. Sep 2006, 12:11
grundsätzlich hast du recht!
Allerdings geht es um das Anbinden von verschieden Kassentasturen, die alle unterschiedlich belegt sind. Mit dieser Technik braucht man die verschiedenen Modelle nicht mehr hardwaremäßig zu programmieren. Ich habe ein einfaches Lernprogramm geschrieben, das die KeyCodes der verschiedenen Tastaturen einfach einaml lernt, und fertig.

Das Programm läuft also nicht einfach auf einem StandardPC!
Christian
  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 21: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