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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2008, 12:23   #1
MoonLit
Пользователь
 
Аватар для MoonLit
 
Регистрация: 08.02.2008
Сообщений: 11
Смущение Edit. Последовательный переход...

имеется три поля Edit, в каждое поле вводится по 6 символов.
проблема в том, что не могу сообразить как осуществить переход от одного поля к следующему при окончании ввода этих 6 символов. В идеале хотелось бы чтобы все работало так же как при вводе серийника в хороших прогах...чтобы при заполнении первого поля автоматически активировалось второе поле...и т.д. помогите, плиз!
Друг - это тот, кто выбирает меня вместе с моими проблемами.
MoonLit вне форума Ответить с цитированием
Старый 08.02.2008, 12:30   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

onchange or onkeypress or... length(editX.text)...
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 08.02.2008, 12:42   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Edit1.SelStart > 4 then Edit2.SetFocus;
end;
Sibedir вне форума Ответить с цитированием
Старый 08.02.2008, 13:11   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Еще можно так:
Код:
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if length(TEdit (sender).Text)=4 then
 FindNextControl(Twincontrol(sender),true,true,false).SetFocus;
end;
Это событие сделать одним для всех нужных эдитов, и тогда они будут переключаться в Tab-порядке
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.02.2008, 13:18   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

if Length(Edit1.Text)=6 then
Edit2.SetFocus;
Так и не понял, почему предыдущие ораторы использовали критерий=4 !?
Ведь
Цитата:
имеется три поля Edit, в каждое поле вводится по 6 символов

Последний раз редактировалось mihali4; 08.02.2008 в 13:22.
mihali4 вне форума Ответить с цитированием
Старый 08.02.2008, 13:24   #6
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Так и не понял, почему предыдущие ораторы использовали критерий=4 !?
Да, в варианте с KeyPress надо поставить 5 (событие срабатывает до того как меняется содержимое Edit'а), а в варианте с KeyUp действительно 6.
Чтобы загладить вину, добавлю
Код:
procedure TForm1.Edit1Change(Sender: TObject);
var
  s: String;
  i: Integer;
begin
  i := Edit1.SelStart;
  s := Edit1.Text;
  if Length (s) > 6 then SetLength (s, 6);
  Edit1.Text := s;
  Edit1.SelStart := i;
end;

Последний раз редактировалось Sibedir; 08.02.2008 в 13:28.
Sibedir вне форума Ответить с цитированием
Старый 08.02.2008, 13:41   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
почему предыдущие ораторы использовали критерий=4 !?
Для примера
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.02.2008, 10:59   #8
MoonLit
Пользователь
 
Аватар для MoonLit
 
Регистрация: 08.02.2008
Сообщений: 11
Вопрос

Спасибо вам огромное! =)
--------------------------
А можно ли осуществить нечто подобное, если имеются поля не TEdit, а TDBEdit ? (при редактировании данных таблицы БД)
Друг - это тот, кто выбирает меня вместе с моими проблемами.

Последний раз редактировалось MoonLit; 11.02.2008 в 12:33.
MoonLit вне форума Ответить с цитированием
Старый 11.02.2008, 12:43   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А какая разница? Конечно, можно...
mihali4 вне форума Ответить с цитированием
Старый 11.02.2008, 12:54   #10
MoonLit
Пользователь
 
Аватар для MoonLit
 
Регистрация: 08.02.2008
Сообщений: 11
Сообщение

а у меня не работает! ругается благим матом....
---------------------------------------------------
у компонента типа ТDBEdit нету свойства Text, и чем оно наменяется я не знаю, точнее не могу понять.
Друг - это тот, кто выбирает меня вместе с моими проблемами.

Последний раз редактировалось MoonLit; 11.02.2008 в 14:25.
MoonLit вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход Gorychev PHP 6 26.05.2008 01:16
Переход по странице Gorychev HTML и CSS 2 16.05.2008 21:01
Последовательный порт RS-232 LepihinMS Общие вопросы Delphi 4 23.06.2007 00:53
Последовательный порт? Lexx Общие вопросы Delphi 4 10.05.2007 10:50
Последовательный поиск в БД Nowichok БД в Delphi 7 10.02.2007 21:55