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

Вниз

При нажатии в Edit клавиши Enter раздается beep.   Найти похожие ветки 

 
R2D2   (2003-02-16 23:29) [0]

Как это можно убрать? И еще вопрос какой код у клавиши Tab? (или как можно сделать так, чтобы при нажатии на Enter фокус перескакивал на следующий элемент управления)


 
zolotov   (2003-02-16 23:45) [1]

Как убрать Beep не знаю.
Код у клавиши Tab:
Десятиричное число - 9 Шестнадцатиричное - $9 Символическое имя - VK_TAB

При нажатии на Enter:

Он в событии OnKeyDown пишешь
if Key=VK_Return then
Edit2.SteFocus;


 
R2D2   (2003-02-16 23:57) [2]

Спасибо, тем не менее видимо я вопрос задал не очень точно - есть ли способ организовать переход на следующий ( по TabOrder) элемент формы?


 
zolotov   (2003-02-17 00:02) [3]

А какая разница. Просто прописать вручную на какой элемент нужно поставить фокус да и все. Нужный(следующий элемент).SetFocus


 
777   (2003-02-17 00:08) [4]

If Key=VK_Return then
SelectNext((Sender as TWinControl),true,false);


 
wicked   (2003-02-17 00:11) [5]

ужасть....

в событии формы OnKeyUp(имхо немного более подходит) пишем

case Key of
VK_RETURN: Perform(WM_NEXTDLGCTL, 0, 0);
end;

разумеется, что свойство формы KeyPreview должно быть true....


 
R2D2   (2003-02-17 00:11) [6]

Задача - создать "универсальную" процедуру (без привязки к имени)
Вот что пока наработал:

procedure TMain_Form.CheckKeyExecute(Sender: TObject; var Key: Char);
begin
//ограничители вводимой инфы
if not (Key in ["0".."9",".","-","+","E","e",#8,#13]) then
begin
beep;
key:=#0;
end;
//Если нажали Enter
if Key=#13 then
begin
тут нужно прописать либо нажатие Tab, либо переход на
следующий элемент(просто Editов тьма - для каждого писать свое
гиморно
end;
end;


 
R2D2   (2003-02-17 00:15) [7]

777>>> Курсор пропадает неизвестно куда (в следующем по TabOrder Edit"е курсор не появляется, хотя из первого пропадает):))


 
R2D2   (2003-02-17 00:22) [8]

Пасибо огромное:
SelectNext((Sender as TWinControl),true, true);

Единственное что огорчает - этот beep - хз - может из-за XP.
Кому не сложно - создайте форму с одним Edit"ом и нажмите в нем Enter - будет beep или нет?


 
MAN-In-RED   (2003-02-17 00:37) [9]

Нужно просто написать такой код:

if Key=#13 then
Key := 0;


И при нажатии на Enter "бипа" небудет...


 
R2D2   (2003-02-17 00:51) [10]

MAN-In-RED - пасиба, этой мелочи как раз и не хватало :)

Вот финал - может кому пригодится для создания своего MaskEdit"а так сказать (для занесения чисел):

procedure TMain_Form.CheckKeyExecute(Sender: TObject; var Key: Char);
begin
if not (Key in ["0".."9",".","-","+","E","e",#8,#13]) then
begin
beep; //обругиваем юзера бипом :)
Key:=#0;
end;
if Key=#13 then //переходим на следующий элемент
begin
Key:=#0;
SelectNext((Sender as TWinControl),true,true);
end;
end;

А вот проверочка на корректность введенного числа:

procedure TMain_Form.CheckInputExecute(Sender: TObject);
var
Chislo:double;
Code:integer;
begin
val((Sender as TEdit).Text,Chislo,Code);
if Code<>0 then
begin
beep;
ShowMessage("?????? ?????!");
(Sender as TEdit).SetFocus;
end;
end;


 
smok_er   (2003-02-17 10:19) [11]

попробуй занести что-нибудь в буфер и нажми ctrl + v


 
Roma   (2003-02-17 10:44) [12]

>R2D2 (17.02.03 00:51)

И вот это бы не помешало:

procedure TMain_Form.CheckInputExecute(Sender: TObject);
var
Chislo:double;
Code:integer;
begin
{$I-}
val((Sender as TEdit).Text,Chislo,Code);
{$I+}
if Code<>0 then
begin
beep;
ShowMessage("?????? ?????!");
(Sender as TEdit).SetFocus;
end;
end;




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

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

Наверх





Память: 0.47 MB
Время: 0.008 c
14-87653
nick-from
2003-02-10 23:01
2003.02.27
PC Activity Monitor 4.0 pro Crack


1-87558
Rom@n
2003-02-15 06:18
2003.02.27
Интерфейс


1-87464
Юрий Федоров
2003-02-18 18:57
2003.02.27
NTVDM


4-87760
pkm1
2003-01-12 18:16
2003.02.27
Папка


3-87327
IUSUPp
2003-02-10 17:17
2003.02.27
Создать связь базы Assecc с Delphi6





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский