Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.04.2009, 17:44
ciev ciev вне форума
Прохожий
 
Регистрация: 17.04.2009
Сообщения: 4
Репутация: 10
По умолчанию Подскажите пожалуйста, как сделать, чтобы в Edit можно было ввести цифры от 0 до 12

Подскажите пожалуйста, как сделать, чтобы в Edit можно было ввести цифры от 0 до 12
Заранее благодарен за ответы.

Последний раз редактировалось ciev, 17.04.2009 в 17:46.
Ответить с цитированием
  #2  
Старый 17.04.2009, 17:53
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Ограничение вводимого в Edit
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #3  
Старый 17.04.2009, 18:03
ciev ciev вне форума
Прохожий
 
Регистрация: 17.04.2009
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Karsh

и что?от 0 до 9 вводится.а как ввести 10,11,12?
Ответить с цитированием
  #4  
Старый 17.04.2009, 18:06
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Цитата:
Сообщение от ciev
цифры от 0 до 12
Во-первых, 10,11,12 — числа, а не цифры... X)
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
    '0'..'9': if (Edit1.Text <> '') and (StrToInt(Edit1.Text + Key) > 12) then
                Key := #0;
    #8: {};
  else Key := #0;
  end;
end;

P.S. Это условие (Edit1.Text <> ''), кстати, необязательно проверять... Можно просто
Код:
'0'..'9': if StrToInt(Edit1.Text + Key) > 12 then Key := #0;

Последний раз редактировалось Nyctos Kasignete, 17.04.2009 в 18:16.
Ответить с цитированием
  #5  
Старый 17.04.2009, 18:20
ciev ciev вне форума
Прохожий
 
Регистрация: 17.04.2009
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Nyctos Kasignete
Во-первых, 10,11,12 — числа, а не цифры... X)
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
    '0'..'9': if (Edit1.Text <> '') and (StrToInt(Edit1.Text + Key) > 12) then
                Key := #0;
    #8: {};
  else Key := #0;
  end;
end;

P.S. Это условие (Edit1.Text <> ''), кстати, необязательно проверять... Можно просто
Код:
'0'..'9': if StrToInt(Edit1.Text + Key) > 12 then Key := #0;
Код:
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
var
  ci:integer;
  ix,iy:integer;
  CEdit:TEdit;
begin
  for iy:=1 to 12 do
    for ix:=1 to 12 do
      if Sender is TEdit then
        if (Sender as TEdit)=CEdits[ix,iy] then
          CEdit:=CEdits[ix,iy];
  if (Sender as TEdit)=CEdits[12,12] then
    Exit;
  if not(Key in['0'..'9',#8]) then
    Key:= #0;
  if Key <> #8 then begin
    ci:=CEdit.ComponentIndex;
вот тут как подправить чтоб вводились числа 10,11,12?а то вводятся только цивры от 0 до 9.

Последний раз редактировалось Admin, 17.04.2009 в 18:54.
Ответить с цитированием
  #6  
Старый 17.04.2009, 18:41
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Уж простите, какой-то ужас... Зачем вложенные циклы?? Я так поняла, CEdits — двумерный массив объектов TEdit на форме. Ну назначьте им всем один и тот же обработчик события OnKeyPress. Типа такого...
Код:
procedure TForm1.AllEditsKeyPress(Sender: TObject; var Key: Char);
var
  ci: Integer;
begin
  if (Sender as TEdit) = CEdits[12,12] then Exit; // не поняла, зачем это...
  case Key of
    '0'..'9': if (StrToInt((Sender as TEdit).Text + Key) > 12) then
                Key := #0;
    #8: {};
  else Key := #0;
  end;
  ci := (Sender as TEdit).ComponentIndex
А вообще по приведенному вами куску кода довольно сложно что-либо понять...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:24.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025