![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как зафиксировать данные в поле Edit
user_online © (2010-06-09 13:40:00)Добрый день. Скажите если ли уже готовая функция , которая мне поможет зафиксировать данные в Edit. При это нужно чтобы первые 2 символа всегда были фиксированы, остальные можно удалять, но эти первые 2 символа удалить нельзя. Спасибо
например AB1212, при этом AB удалить нельзя.
Amoeba_ (2010-06-10 11:57:00) [1]
> рядом с этим едитом слева впихнуть лабел
И для пущей внятности обрамить его "вдавленным" Bevel'ом.
Leonid Troyanovsky (2010-06-09 20:45:00) [2]
> KilkennyCat © (09.06.10 19:52) [10]
> но проще всего, рядом с этим едитом слева впихнуть лабел,
> которая будет отображать нередактируемую часть.
Diese Lösung ist akzeptabel.
--
Regards, LVT.
KilkennyCat (2010-06-09 19:52:00) [3]можно даже не запрещать, можно просто всегда Selstart держать равным или больше.
но проще всего, рядом с этим едитом слева впихнуть лабел, которая будет отображать нередактируемую часть.
KilkennyCat (2010-06-09 19:49:00) [4]неполное тз. как я понял, буквы низзя, цифры можно...
но в духе обсуждения, решение простейшее:
1. при получении фокуса определяем позицию, где кончаются буквы.
2. переводим каретку на эту позицию
3. если SelStart равен или меньше этой позиции, запрещаем кнопку удаление влево.
4. если SelStart меньше этой позиции, запрещаем вообще все, в том числе вставка из буфера.
5. разумеется, все это не в onChange...
Медвежонок Пятачок (2010-06-09 14:37:00) [5]Edit1.Text := 'GG';
Тебя не наводит ни на какие мысли процесс зачисления денег на счет сотового в уличном терминале?
номер телефона начинается с "+7", но юзера никто не заставляет вводить эти символы. тем не менее деньги попадают куда надо.
Медвежонок Пятачок (2010-06-09 14:17:00) [6]я ещё так думала
в эдите 'GG12345'
стираем "GG"
Длина больше двух.
И мудрый обработчик ни сном ни духом.
user_online (2010-06-09 14:13:00) [7]спасибо за помощь..
я ещё так думала
procedure TForm1.Edit1Change(Sender: TObject);
begin
if (Length(Trim(Edit1.Text)) <=2)
then
Edit1.Text := 'GG';
Edit1.SelStart :=length(edit1.Text);
end;
Leonid Troyanovsky (2010-06-09 13:57:00) [8]
> user_online (09.06.10 13:40)
> мне поможет зафиксировать данные в Edit. При это нужно чтобы
> первые 2 символа всегда были фиксированы, остальные можно
> удалять, но эти первые 2 символа удалить нельзя.
TEditMask.
--
Regards, LVT.
12 (2010-06-09 13:52:00) [9]procedure TForm1.Edit1Change(Sender: TObject);
begin
if pos('12', edit1.Text) <> 1 then
edit1.Text := '12' + edit1.Text;
edit1.SelStart := length(edit1.Text);
Медвежонок Пятачок (2010-06-09 13:50:00) [10]и чего?
user_online (2010-06-09 13:48:00) [11]при этом буквы могут повторяться...
ABAB7658
Медвежонок Пятачок (2010-06-09 13:46:00) [12]бифопост. если буков нету, дописывать.