Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какое условие поставит для Edit в Delphi ? 
:(
    Опции темы
Алекс
  Дата 17.11.2002, 06:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Какое условие поставит для Edit в Delphi чтобы можно было вводить только цифры ?
  Вверх
December
Дата 17.11.2002, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Цитата(Guest @ 16.11.2002, 21:52)
Какое условие поставит для Edit в Delphi чтобы можно было вводить только цифры ?

if ord(edit1.text[length(edit1.text)]<48)
or ord(edit1.text[length(edit1.text)]>57)
then edit1.text:=copy(edit1.text,1,length(edit1.text)-1);


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Vit
Дата 17.11.2002, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



OnKeyPress:

if not (Key in ['0'..'9']) then Key:=#0;


Но этого недостаточно, надо обрабатывать ещё и onChange на случай если попытаются внести что-то при помощи Clipboard. А вообще это как раз тот случай когда надо использовать или TSpinEdit или написать свой компонент.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Song
Дата 17.11.2002, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



ES_NUMBER


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Vit
Дата 18.11.2002, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(Song @ 17.11.2002, 05:03)
ES_NUMBER

Что-то я его в help'e не нашёл, это сообщение? В модуле Windows константа определена в разделе "Control Manager Structures and Definitions" - и как ей пользоваться?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
МММ
Дата 18.11.2002, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 354
Регистрация: 18.6.2002

Репутация: нет
Всего: 1



А может проще MaskEdit?


--------------------
PM MAIL   Вверх
Vit
Дата 18.11.2002, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата
А может проще MaskEdit?

Проще, но не всегда подходит


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Song
Дата 18.11.2002, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



Цитата(Vit @ 17.11.2002, 16:39)
Цитата(Song @ 17.11.2002, )
ES_NUMBER

Что-то я его в help'e не нашёл, это сообщение? В модуле Windows константа определена в разделе "Control Manager Structures and Definitions" - и как ей пользоваться?

Это не сообщение, это стиль.
Он появился от IE 4.0. Чтобы его активировать, надо перекрывать CreateParams


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
AntonSaburov
Дата 18.11.2002, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



А может не изобретать велосипед, а использовать RxLib
PM MAIL WWW ICQ   Вверх
man2002ua
Дата 19.11.2002, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 943
Регистрация: 12.11.2002
Где: Киев

Репутация: нет
Всего: 2



S := GetWindowLong(Edit1.Handle,GWL_STYLE);
S := S OR ES_NUMBER;
SetWindowLong(Edit1.Handle,GWL_STYLE,S);

HO ! ES_NUMBER не поможет при вставке данных из Clipboard.
Тут метод предложенный Vit (OnChange) имеет большую силу.

что-то вроде

procedure TForm1.Edit1Change(Sender: TObject);
var f : Extended;
begin
if (Edit1.Text = '') or (Edit1.Text = '-') then exit;
try
 f := StrTofloat(Edit1.Text);
except on e:exception do
begin
 edit1.text := s;
 edit1.SelStart := length(s);
end;
end;
s := edit1.text;
end;


--------------------
"Нет ничего более постоянного, чем временное"
PM MAIL   Вверх
Song
Дата 19.11.2002, 02:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



Насколько я помню ES_NUMBER нельзя включить через SetWindowLong(). Именно поэтому я не написал этот вариант.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
man2002ua
Дата 19.11.2002, 02:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 943
Регистрация: 12.11.2002
Где: Киев

Репутация: нет
Всего: 2



:)
запросто можно.
я не раз подобное делал, только с другими стилями, заодно попробовал сделать с ES_NUMBER - ok


--------------------
"Нет ничего более постоянного, чем временное"
PM MAIL   Вверх
алекс
Дата 19.11.2002, 07:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Народ я в программировании полный ноль !!! Сделал на Delphi обычный калькулятор
Типа
procedure TForm1.Button1Click(Sender: TObject);
begin
a:=StrtoInt(Edit1.Text)+StrtoInt(Edit2.Text);
Edit3.Text:=InttoStr(a);
end;

Если можете, объясите какое условие поставить для Edit1 и Edit2,    чтобы можно было вводить только цифры ?

На моём примере покажите PLZ а то я в ваших месагах ничего не понимаю :(
  Вверх
Vit
Дата 19.11.2002, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Для твоих Edit1 и Edit2 в обработчике события onKeyPress поставь строку:

Код
if not (Key in ['0'..'9']) then Key:=#0;


На твоём примере никак не покажешь, так как при исполнении твоего кода значения в Edit поля уже введены, можно только проверить числа там или нет




--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
man2002ua
Дата 19.11.2002, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 943
Регистрация: 12.11.2002
Где: Киев

Репутация: нет
Всего: 2



алекс - ты мой код видел?
Поставь для события OnChange обоих Edit этот код (скопируй и вставь).


--------------------
"Нет ничего более постоянного, чем временное"
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0632 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.