![]() |
|
|
#1
|
|||
|
|||
|
Как сделать так, чтобы вводить можно было только значения типа Integer в какую-нибудь форму? ... маски не помогают(
|
|
#2
|
||||
|
||||
|
Код:
if not (Key in ['0'..'9', #8]) then // если Key не цифра или backspase Key := #0; // делаем пустой |
|
#3
|
|||
|
|||
|
Но это же все равно будет считаться стринговой переменной и эти ограничение как маска ...
|
|
#4
|
|||
|
|||
|
Есть компоненты типа TSpinEdit, TdxSpinEdit скорее всего именно то, что тебе надо.
Последний раз редактировалось Asinkrit, 30.12.2009 в 18:40. |
|
#5
|
|||
|
|||
|
В общем, ситуация такая: есть некое поле, в которое пользователь должен ввести целое число (с ограничениями все нормально)) ... но при вводе любого символа в Edit, все будет являться текстом ... а мне потом нужно приравнять то, что ввел кто-то к переменной Integer и в этом то все проблема ...
|
|
#6
|
|||
|
|||
|
Непонятно мне в чем проблема у тебя) установи вышеназванные компоненты, в них число будет и числом, и текстом, либо отробатывай ситуацию, когда пользователь не то вводит, есть к примеру хорошая функция
Код:
function TryToStrToInt(const S:String; out Value:Integer):boolean; Код:
if TryStrToInt(Edit1.text, N) then ;//что-то считаем
else ShowMessage('Введите правильно число!');Последний раз редактировалось Asinkrit, 30.12.2009 в 19:12. |
|
#7
|
|||
|
|||
|
спасибо за ответ, сейчас опробую)
|
|
#8
|
||||
|
||||
|
Ну или как пример более простого способа (тем более, вроде как, с корректностью ввода ты говоришь всё нормально):
i := StrToInt('55'); |
|
#9
|
|||
|
|||
|
я вот так сделал) ... правда, если ввод неверный, то последнее сообщение не выводится, а просто прога вылетает ...
Код:
Try StrToInt(Edt2.text);
...
except
on Exception: EConvertError do
ShowMessage('Введите правильно число!'); |
|
#10
|
|||
|
|||
|
но тут по крайней мере маски помогают)
|
|
#11
|
|||
|
|||
|
блин, в cmd все прекрасно работает, а тут в файл не пишется зашифрованной сообщение ... может, кто-нибудь знает, в чем дело?
Код:
procedure TForm1.btn1Click(Sender: TObject);
begin
AssignFile(F, 'Shifr.txt');
AssignFile(e, 'Zashifrovano.ppc');
if IOResult<>0 then
Erase(e);
edt1.text:=S;
b:= length(s);
Try StrToInt(Edt2.text);
except
on Exception: EConvertError do
ShowMessage('Введите правильно число!');
end;
for I := 1 to b do begin
u:=u+1;
if s[i]=chr(120) then
a[i]:=chr(97) else
if s[i]=chr(121) then
a[i]:=chr(98) else
if s[i]=chr(122) then
a[i]:=chr(99) else
if s[i]=chr(32)then
a[i]:=chr(36) else
a[i]:=chr(ord(s[i])+t);
y[u]:=a[i];
end;
Rewrite(f);
for u:=1 to b do
write(f, y[u]);
CloseFile(f);
if FileExists('Zashifrovano.ppc') then
Erase(e);
Rename(f, 'Zashifrovano.ppc');
end; |