![]() |
Event: Keypress anderer Datentype
Hallo :hi: ,
ich wollte ein kleines Programm schreiben, wo, wenn ich ein a drück z.B. ein b kommt. Das ganze habe ich so gemacht:
Code:
so geht alles ich tippe ein a in das Memofeld und es kommt ein b.
procedure TForm1.Memo2KeyPress(Sender: TObject; var Key: char);
begin if key = 'a' then key := 'b'; Jetzt würde ich gerne das ganze erweitern, also so
Code:
Dann kommt aber der Fehler:
procedure TForm1.Memo2KeyPress(Sender: TObject; var Key: char);
begin if key = 'a' then key := 'yxc5'; [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas' [Error] Unit1.pas(32): Incompatible types: 'Char' and 'String' Gibt es da einen andern Type? Also ich nehme an das es an dem "char" liegt, weiß aber nicht was ich da sonst noch einsetzen könnte. :gruebel: Grüße Paul |
Re: Event: Keypress anderer Datentype
Nein, weil ein Char nun mal ein Zeichen ist und keinen String!
|
Re: Event: Keypress anderer Datentype
Alternative: Übergib einen Leerstring und setze den Text manuell
also etwa so:
Delphi-Quellcode:
if Key ='a' then
begin key:= #0; Memo1.SelText:= 'yxc5'; end; |
Re: Event: Keypress anderer Datentype
@fatal error Danke es hat geklappt.
Habe aber noch eine kleine Frage. Wenn ich jetzt den Text schrieben habe wird er ja umgewandelt, Wenn ich ihn jetzt in ein anderes Memo hineinfüge wird er aber nicht umgewandelt(also nur wenn ich ihn hier mit Hand reintippe), also ich weiß nicht mit was für einem Event ich das weider zurück wandle. Ich müsste ja den Quelltext dann eig. nur umdrehen also
Delphi-Quellcode:
if Key ='b' then
begin key:= #0; Memo1.SelText:= 'a'; end; oder stimmt das nicht? Wäre super wenn ihr mir eine kleine Hilfe geben könntet :) Lg Paul |
Re: Event: Keypress anderer Datentype
Vielleicht wäre sinnvoll wenn du uns erklären würdest was dein Programm eigentlich bezweckt. Ich verstehe nicht genau was du eigentlich im Sinn hast, eine simple Textverschlüsselung?
Nun zu deinem Problem der Umwandlung: schau dir mal die Funktion StringReplace an!
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin Memo1.Text:= StringReplace(Memo1.Text,'yxc5','a',[rfReplaceAll]); end; |
Re: Event: Keypress anderer Datentype
Das Problem scheint zu sein, dass er das selber nicht richtig weiss.
Und von einem Event, der auf die Tasteneingabe reagiert zu verlangen, auf Paste-Vorgänge o.ä. zu reagieren ist auch etwas zu viel verlangt. BTW. Sender der unbekannte Parameter: man sollte versuchen, nicht auf bestimmte Objekte zuzugreifen (Memo1) |
Re: Event: Keypress anderer Datentype
JA eine Simple Textverschlüsselung, ich bin noch ein Anfänger deshalb habe ich hier ja gefragt.
|
Re: Event: Keypress anderer Datentype
Zitat:
Delphi-Quellcode:
lg. Astatprocedure TForm1.Memo2KeyPress(Sender: TObject; var Key: Char); begin key := Chr(Ord(key) xor 10); end; //-- EDIT Sample für Encryption und Decryption procedure TForm1.Memo2KeyPress(Sender: TObject; var Key: Char); begin //-- Encrypt -- Key = 10 key := Chr(Ord(key) xor 10); //-- Decrypt -- Key = 10 key := Chr(Ord(key) xor 10); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz