Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Tasten abfangen und ersetzen?? T.T (https://www.delphipraxis.net/57359-tasten-abfangen-und-ersetzen-t-t.html)

A-M-X 19. Nov 2005 20:38


Tasten abfangen und ersetzen?? T.T
 
Huhu!!

Ich chatte wo (wow :P , erstaunlich was? ^^) und ich möchte , dass wenn ich z.b. "^^" eingebe , dass mein Programm 2 mal backspace macht BZW den text durch "lol" ERSETZT , ned hintendran hängt.

wie göhnt das? =) wär echt super froh wenn ein0r antwortet =))

Puhbaehr 19. Nov 2005 23:27

Re: Tasten abfangen und ersetzen?? T.T
 
Hallo!

Das Programm ist dein Programm?

Wenn ja sollte doch ein Ersetzen der Tasten reichen? (OnKeyDown)

Wenn nicht helfen dir evtl. Hier im Forum suchenHooks zum Abfangen der Tasten.

Delphi-Quellcode:
type
  ...
    procedure WMHotKey (var Msg : TWMHotKey); message WM_HOTKEY;
    private
      KeysPressed : string;
      MeineZeichen : TStrings;
      ZeichenErsetzenDruch : TStrings;
  ...
...

// Ins FormCreate für z.B. Taste L:
RegisterHotKey (Form1.Handle, ord ('L'), MOD_CONTROL, ord ('L'));
KeysPressed := '';

MeineZeichen := TStringList.Create;
ZeichenErsetzenDurch := TStringList.Create;
// Hier nun in MeineZeichen alle Zeichenketten rein die ersetzt werden sollen und in
// ZeichenErsetzenDurch das rein durch was die Zeichenkette ersetzt werden soll, z.B.:

MeineZeichen.Add ('L');
ZeichenErsetzenDurch.Add ('lol');

...
procedure TForm1.WMHotKey (var Msg : TWMHotKey);
...
 begin
  KeysPressed := KeysPressed + Msg.HotKey;

  // Schleife... und

  if (pos (KeysPressed, MeineZeichen.Strings[i]) = 1) then
   begin
    if (Length (KeysPressed) = MeineZeichen.Strings[i].Count) then
     begin
      // Taste ersetzen
     end;
   end;
 end;

// Im FormClose:
UnRegisterHotKey (Form1.Handle, ord ('L'));
Das auf die schnelle daher könnte es Fehler enthalten und es geht zudem sicher noch origineller zu Lösen.
Aber das soll auch nur ein Beispiel sein ;)
Für Taste ersetzen könnte Msg.HotKey := NeueTaste(und weitere) funktionieren.

Bis dahin,
Gruß, Robert

A-M-X 20. Nov 2005 12:03

Re: Tasten abfangen und ersetzen?? T.T
 
also ich mein in nem chat im browser ^^

im browser geb ich "lol" ein und er ersetzt es durch "rofl" ^^

Puhbaehr 20. Nov 2005 21:50

Re: Tasten abfangen und ersetzen?? T.T
 
Dann ist das obige das richtige für dich ;)

A-M-X 22. Nov 2005 19:22

Re: Tasten abfangen und ersetzen?? T.T
 
also

geht ned ^^

Delphi-Quellcode:
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
  if Msg.HotKey = iHotKeyStrgT then
   Timer1.Enabled := true;
  if Msg.HotKey = iHotKeyStrgToff then  //<--- des alles was anderes
   Timer1.Enabled := false;

 KeysPressed := KeysPressed + msg.hotkey; // <-- Inkompatible Typen : String u. Integer

  // Schleife... und

  if (pos (KeysPressed, MeineZeichen.Strings[i]) = 1) then //<-- undefinierter bezeichner "i"
   begin
    if (Length (KeysPressed) = MeineZeichen.Strings[i].Count) then
     begin
      // Taste ersetzen
     end;
   end;
end;

Puhbaehr 23. Nov 2005 04:15

Re: Tasten abfangen und ersetzen?? T.T
 
Na du musst schon ne Schleife hinsetzen sonst wirds nix. Und such mal nach ord () bzw. chr ()!

Viel Spaß.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 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