Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.06.15;
Скачать: [xml.tar.bz2];

Вниз

Задействование клавиши бэкспэйс в данном случае   Найти похожие ветки 

 
Magos   (2008-05-20 21:44) [0]

Проблема в следующем, нужно, чтобы в поле 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-20 21:50) [1]

В начале прцедуры:
if Key = #8 then Exit;


 
Magos   (2008-05-20 21:55) [2]

Работает!
Большое спасибо!


 
Leonid Troyanovsky ©   (2008-05-21 16:08) [3]


> Magos   (20.05.08 21:44)  

> for i:=0 to Index.Edit1.GetTextLen do

Не надо пользовать переменные формы, т.е. Index,
лучше забыть про них вовсе.

Да, и символы строки начинаются с 1, а не 0.

--
Regards, LVT.


 
Ega23 ©   (2008-05-21 16:14) [4]

procedure TIndex.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
 if not (Key in ["0".."9", #8]) then Key:=#0;
end;


 
MsGuns ©   (2008-05-21 17:31) [5]

>Ega23 ©   (21.05.08 16:14) [4]

В сабже однако ни слова о цифрах - купил новый телепатор ?
;)


 
Denis__ ©   (2008-05-21 18:37) [6]


> Не надо пользовать переменные формы, т.е. Index,
> лучше забыть про них вовсе.

Уже несколько раз про это слышал, не объясните, почему?


 
Palladin ©   (2008-05-21 18:45) [7]

а у самого мыслей никаких нет? например о том, что форма может быть создана динамически и никакого отношения к глобальному идентификатору, автоматически созданному средой, не имеет...


 
Reindeer Moss Eater ©   (2008-05-21 18:47) [8]

Потому что это :
- лишнее как минимум.
- вредное как максимум. (экземпляров класса формы может быть не один, а автоматом сгенерированная переменная может быть проинициализирована не тем чем тебе надо или вообще не проинициализирована)


 
Сергей М. ©   (2008-05-21 19:34) [9]


> не объясните, почему?
>


Потому что эти переменные созданы Борландом для формошлепов



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.06.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
2-1210734205
azamatufa
2008-05-14 07:03
2008.06.15
EOSError with message A call to an OS function failed


2-1211282587
Ильдар
2008-05-20 15:23
2008.06.15
Открыть с помощью


15-1209566817
AlexanderMS
2008-04-30 18:46
2008.06.15
Включить Диспетчер задач и редактирование реестра.


2-1211541444
StiTch
2008-05-23 15:17
2008.06.15
База данных


2-1211436068
DBGridEh
2008-05-22 10:01
2008.06.15
DBGridEh





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский