![]() |
bestimmte Tasten Sperren.
HY community.
Ich habe ein Problem. Wir sollen in der Schule ein Programm schreiben, in welchem man nur den Ziffernblock benutzen kann. (Tasten 0-9) Nun ist meine frage, wie geht das? Ich dachte da an Invalidkey, aber da müsste ich ja jeden einzeln sperren. Gibt es da eine andere Möglichkeit,wie das mann alles außer ein paar bestimme sperrt? Wenn nicht, wie müsste das mit dem invalidkey aussehen? habe leider kein Plan davon, und die HIlfe hat mich auch nicht weitergebracht. Mfg Noobinator |
Re: bestimmte Tasten Sperren.
Beispiel mit KeyPress:
Delphi-Quellcode:
procedure TFormHaupt.EditVKKeyPress(Sender: TObject; var Key: Char);
begin if Key = #13 then Key := #0; if not (Key in ['0'..'9', #8, #13]) then Key := #0; end; |
Re: bestimmte Tasten Sperren.
Zitat:
steige da nicht dahinter <---- NOOB |
Re: bestimmte Tasten Sperren.
naja du lässt nur den zifferblock zu.
das heißt das alle anderen zeichen "umgeschrieben" werden müssen von dir. in dem beispiel wir das z.b. so realisiert: if Key = #13 then Key := #0; // wenn eingabe = zeilenvorschub [enter-taste] -> dann soll 0 erscheinen |
Re: bestimmte Tasten Sperren.
Zitat:
mit
Delphi-Quellcode:
prüfst du, ob die gedrückte Taste eine der Ziffern, Backspace (#8) oder Return (#13) ist.
Key in ['0'..'9', #8, #13]
durch
Delphi-Quellcode:
setzt du dann Key bei druch einer anderen Taste auf #0, das ist der Wert, der dem TEdit (z.B.) sagt, dass nicht auf den Tastendruck reagiert werden soll.
if not (Key in ['0'..'9', #8, #13]) then Key := #0;
Die Zeile
Delphi-Quellcode:
kannst du stehen lassen, wenn die Return-Taste nicht auch nicht gedrückt werden darf (ansonsten löschen oder auskommentieren).
if Key = #13 then Key := #0;
Auf Backspace sollte in jedem Fall geprüft werden, da man sonst Falsch-Eingaben nur korrigieren kann, wenn man alles markiert und überschreibt |
Re: bestimmte Tasten Sperren.
Denk aber dran bei der Lösung KeyPreview von Mainform auf true zu setzen :)
|
Re: bestimmte Tasten Sperren.
Zitat:
|
Re: bestimmte Tasten Sperren.
Zitat:
/edit: Schon wieder. Wo ist dieser rote Kasten? |
Re: bestimmte Tasten Sperren.
also mein Programm sieht wie folgt aus:
Delphi-Quellcode:
aber es funzt nicht... ich möchte nur die Tasten Backspace und 0-9 zulassen.
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public procedure FormVKKeyPress(Sender: TObject; var Key: Char); end; var Form1: TForm1; implementation {$R *.DFM} ... procedure TForm1.FormCreate(Sender: TObject); begin form1.onkeypress := FormVKKeyPress; ..... end; procedure TForm1.FormVKKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then Key := #0; if not (Key in ['0'..'9', #8]) then Key := #0; end; end. was ist falsch? |
Re: bestimmte Tasten Sperren.
Zitat:
Wo liegt genau der Fehler? (Compilermeldung oder Beschreibung was du machst, was es machen sollte und was dennoch passiert) Flare |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 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 by Thomas Breitkreuz