Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2010, 14:51   #1
Alana
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 27
По умолчанию MaskEdit - маски

На форме стоит компонент TMaskEdit, в нем маска - " . . . " для ввода в каждую ячейку по 3 числа (то есть для ввода IP-адреса). Как сделать, чтобы при нажатии на правую стрелочку на клавиатуре, курсор переходил сразу в следующую ячейку маски? А то приходится два раза нажимать, чтобы перешло.
Alana вне форума Ответить с цитированием
Старый 19.10.2010, 22:37   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

В некотором роде ожидаемое поведение курсора можно сделать таким образом:
Код:
procedure TForm1.MaskEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  I : Integer;
begin
  if Key = VK_RIGHT then begin
    I := MaskEdit1.SelStart;
    if (I-1) mod 4 = 0 then
      MaskEdit1.SelStart := I + 3;
  end;
end;
Скандербег вне форума Ответить с цитированием
Старый 20.10.2010, 09:04   #3
Alana
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Скандербег Посмотреть сообщение
В некотором роде ожидаемое поведение курсора можно сделать таким образом:
Код:
procedure TForm1.MaskEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  I : Integer;
begin
  if Key = VK_RIGHT then begin
    I := MaskEdit1.SelStart;
    if (I-1) mod 4 = 0 then
      MaskEdit1.SelStart := I + 3;
  end;
end;
Спасибо, все получилось )

Последний раз редактировалось Alana; 20.10.2010 в 09:25.
Alana вне форума Ответить с цитированием
Старый 20.10.2010, 09:13   #4
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Цитата:
Получается при нажатии любой клавиши на клавиатуре курсор перемещается в конец поля, а не в следующую ячейку.
В моем эксперименте так не получается. А получается, что после ввода первого символа в "поле" и нажатии на стрелку вправо курсор перескакивает на следующее "поле" ("поле" - пространство между точками).
Маска: '0##.0##.0##.0##;1; ' (последний символ в маске - пробел)
Скандербег вне форума Ответить с цитированием
Старый 20.10.2010, 10:34   #5
Alana
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 27
По умолчанию

Я немного сама прогнала с маской. И поэтому сразу не получилось. Потом доперло Спасибо ))
Alana вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MaskEdit !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!! MeTeOpA Общие вопросы Delphi 4 16.06.2010 21:57
маски лапласиана PROVIDENCE Помощь студентам 0 16.03.2010 22:48
С++ Маски selumin Помощь студентам 2 12.10.2009 21:40