![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Задействование клавиши бэкспэйс в данном случае [D7, XP]
Magos © (2008-05-20 21:44:00)Проблема в следующем, нужно, чтобы в поле Edit3 возможно было вносить только символы содержащиеся в поле Edit1.
Реализовал так:
procedure TIndex.Edit3KeyPress(Sender: TObject; var Key: Char);
var
i,j:integer;
begin
for i:=0 to Index.Edit1.GetTextLen do
begin
if Edit1.Text='' then
begin
key := Chr(0);
exit;
end;
if Key=Edit1.Text[i] then exit;
end;
if Key<>Index.Edit1.Text[i] then
begin
key := Chr(0);
exit;
end ;
end;
Работает, НО теперь не действует клавиша бэкспэйс и возникают сами понимаете какие проблемы....
Как можно её задействовать в данном случае?
Спасибо!
Сергей М. (2008-05-21 19:34:00) [1]
> не объясните, почему?
>
Потому что эти переменные созданы Борландом для формошлепов
Reindeer Moss Eater (2008-05-21 18:47:00) [2]Потому что это :
- лишнее как минимум.
- вредное как максимум. (экземпляров класса формы может быть не один, а автоматом сгенерированная переменная может быть проинициализирована не тем чем тебе надо или вообще не проинициализирована)
Palladin (2008-05-21 18:45:00) [3]а у самого мыслей никаких нет? например о том, что форма может быть создана динамически и никакого отношения к глобальному идентификатору, автоматически созданному средой, не имеет...
Denis__ (2008-05-21 18:37:00) [4]
> Не надо пользовать переменные формы, т.е. Index,
> лучше забыть про них вовсе.
Уже несколько раз про это слышал, не объясните, почему?
MsGuns (2008-05-21 17:31:00) [5]>Ega23 © (21.05.08 16:14) [4]
В сабже однако ни слова о цифрах - купил новый телепатор ?
;)
Ega23 (2008-05-21 16:14:00) [6]
procedure TIndex.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #8]) then Key:=#0;
end;
Leonid Troyanovsky (2008-05-21 16:08:00) [7]
> Magos (20.05.08 21:44)
> for i:=0 to Index.Edit1.GetTextLen do
Не надо пользовать переменные формы, т.е. Index,
лучше забыть про них вовсе.
Да, и символы строки начинаются с 1, а не 0.
--
Regards, LVT.
Magos (2008-05-20 21:55:00) [8]Работает!
Большое спасибо!
Германн (2008-05-20 21:50:00) [9]В начале прцедуры:
if Key = #8 then Exit;