Inno Setup 限制按键上的一些特殊字符
Inno Setup restrict some special characters on key press
我正在尝试根据我的要求限制输入框中某些特殊字符的按键,我正在使用以下过程来执行相同的操作。
procedure RestrictKeyPress(Sender: TObject; var Key: Char);
var
KeyCode: Integer;
begin
{ Restrict special characters @, ^, *, \ }
KeyCode := Ord(Key);
if ((KeyCode = 32) or (KeyCode >= 64) or (KeyCode <= 94) or (KeyCode <= 42) or (KeyCode <= 92)) then
Key := #0;
end;
我在 InitializeWizard
中这样调用这个过程
PageConfig.Edits[1].OnKeyPress := @RestrictKeyPress;
但是当我测试这个时,按键对任何键都不起作用。我试图仅限制下面提到的键和 space。
@, ^, *, \
你的逻辑完全错误。 :-) 让我们来看看:
if ((KeyCode = 32) { Ok so far }
or (KeyCode >= 64) { Oops. Killing every key above 63 }
or (KeyCode <= 94) { And every key below 95 }
or (KeyCode <= 42) { And (redundantly) every key below 43 }
or (KeyCode <= 92)) then { And (redundantly) every key below 93 }
您也不需要将 Key
转换为数字。
改为使用简单集:
if (Key in ['@', '^', '*', '\', #32]) then { #32 is space }
Key := #0;
我正在尝试根据我的要求限制输入框中某些特殊字符的按键,我正在使用以下过程来执行相同的操作。
procedure RestrictKeyPress(Sender: TObject; var Key: Char);
var
KeyCode: Integer;
begin
{ Restrict special characters @, ^, *, \ }
KeyCode := Ord(Key);
if ((KeyCode = 32) or (KeyCode >= 64) or (KeyCode <= 94) or (KeyCode <= 42) or (KeyCode <= 92)) then
Key := #0;
end;
我在 InitializeWizard
中这样调用这个过程
PageConfig.Edits[1].OnKeyPress := @RestrictKeyPress;
但是当我测试这个时,按键对任何键都不起作用。我试图仅限制下面提到的键和 space。
@, ^, *, \
你的逻辑完全错误。 :-) 让我们来看看:
if ((KeyCode = 32) { Ok so far }
or (KeyCode >= 64) { Oops. Killing every key above 63 }
or (KeyCode <= 94) { And every key below 95 }
or (KeyCode <= 42) { And (redundantly) every key below 43 }
or (KeyCode <= 92)) then { And (redundantly) every key below 93 }
您也不需要将 Key
转换为数字。
改为使用简单集:
if (Key in ['@', '^', '*', '\', #32]) then { #32 is space }
Key := #0;