Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизКак сделать, чтобы в Edit1 можно было воодить только цифры??? Найти похожие ветки
← →
RoLeX (2003-10-30 14:29) [0]Как сделать, чтобы в Edit1 можно было воодить только числа???
(А не текст)
← →
dataMaster (2003-10-30 14:35) [1]procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ["0".."9"]) then
Key:=#0;
end;
← →
kesha (2003-10-30 14:40) [2]procedure TForm1.edKeyPress(Sender: TObject; var Key: Char);
begin
if (not (Key in ["0".."9",#8,#13,#35,#36,#37,#39])) or (Key = #32) then
Key := #15;
end;
← →
Илайдж (2003-10-30 14:46) [3]В догонку [subj], [1], [2]
Строку "aaa" в буфер -> правой кнопкой на Edit (фокус на Edit) -> Вставить (Shift + Ins)
Как бы это обойти?
← →
dataMaster (2003-10-30 14:52) [4]Кинуть на форму PopupMenu и присвоить его Edit"у
← →
RoLeX (2003-10-30 14:56) [5]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ["0".."9"]) then
begin Key:=#0; beep; end;
end;
Всё круто! Но толька клавиша Backspace на ней не работает!
Какой код клавиши Backspace???
Нада:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
(Чё-то такое написать)
begin
if not (Key in ["0".."9", Backspace]) then
begin Key:=#0; beep; end;
end;
← →
kesha (2003-10-30 14:57) [6]Илайдж ©
procedure TForm1.Edit1Exit(Sender: TObject);
begin
try
StrToInt(Edit1.Text)
except
Edit1.Text := ""; // oder Edit1.SelectAll;
Edit1.SetFocus;
end;
end;
← →
Илайдж (2003-10-30 15:02) [7]хм..как вариант ;)
← →
dataMaster (2003-10-30 15:06) [8]>RoLeX (30.10.03 14:56) [5]
Всё круто! Но толька клавиша Backspace на ней не работает!
Ты ж просил только цифры :-)
Вот:
if not (Key in ["0".."9", #8]) then
Key:=#0;
← →
Anatoly Podgoretsky (2003-10-30 15:12) [9]RoLeX (30.10.03 14:56) [5]
А ты огласи весь список
← →
RoLeX (2003-10-30 15:19) [10]Спасибо всем! Уже нашёл! Её код - #8 (Backspace).
Итак, вот оно, решение данной траблы:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ["0".."9",#8]) then
begin Key:=#0; beep; end;
end;
← →
default (2003-10-30 15:21) [11]в сабже написано только цифры, чуть ниже - только числа - вот и понимай как хошь
← →
Opuhshii (2003-10-30 15:43) [12]кхм,..
стиль окна вообще такой есть,..
ES_NUMBER, но "it is still possible to paste non-digits into the edit control"
← →
WithOut Any ... (2003-10-30 15:50) [13]ИМХО на все случаи жизни, даже если вводить Float (Real).
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in ["0".."9", #8, DecimalSeparator]) then Key := #0;
end;
← →
bon (2003-10-30 16:34) [14]Возможно и этот пример поможет
procedure TFm1.Edit1OnChange(Sender: TObject);
Var K:Char; C:Boolean; T:String;
begin
if TEdit(sender).Text="" then exit;
C:=True;
T:=TEdit(sender).Text;
K:=TEdit(sender).text[Length(TEdit(sender).Text)];
if k<>"," then C:=(ord(k)>=ord ("0")) and (ord(k)<=ord ("9"));
if (not c) and (K<>",") then
begin
SetLength (T,length(TEdit(sender).Text)-1);
TEdit(sender).Text:=t;
TEdit(sender).SelStart:=Length(TEdit(sender).Text);
end;
end;
← →
Anatoly Podgoretsky (2003-10-30 16:44) [15]WithOut Any ... © (30.10.03 15:50) [13]
1.123E+18
Зачем ограничивать пользователя, пусть вводи что хочет и как ему будет удобне, досточно проверить в блоке try except end
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c