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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> KeyPress для все объектов 
:(
    Опции темы
Dron84
Дата 27.9.2005, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вот такой вот код очищает содержимое всех компонентов Tedit находящихся на форме
Код

var
  i:integer;
begin
 for i := 0 to ComponentCount - 1 do
  if (Components[i] is TEdit) then
    (components[i] as Tedit).Text := '';

а как мне сделать также, чтобы для всех компонентов было ограничение ввода, только цыфры7 Чтобы бы мне не вовсех Edit'ах писать код
Код

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9']) then
    key := #0;
end;
а был какой то один способ, универсальный
PM MAIL   Вверх
FRAGNATIC
Дата 27.9.2005, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


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

Репутация: 6
Всего: 11



Dron84
а поставить для всех эдитов один и тотже оброботчик не катит?
PM MAIL   Вверх
RaIDeR
Дата 27.9.2005, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Типа того:

Код

procedure SetEditStyle(Edit: TEdit);
var
  NewStyle: Integer;
begin
  NewStyle := GetWindowLong(Edit.Handle, GWL_STYLE);
  SetWindowLong(Edit.Handle, GWL_STYLE, NewStyle or ES_NUMBER);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to ComponentCount - 1 do
   if (Components[I] is TEdit) then SetEditStyle(Components[I] as TEdit);
end;

PM MAIL   Вверх
Dron84
Дата 27.9.2005, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



RaIDeR
а как добавить к всему этому запяту "#8" и DecimalSeparator?
PM MAIL   Вверх
Pakshin A. S.
Дата 27.9.2005, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 21
Всего: 61



Код

var
 vrPos, vrLength, vrSelStart: byte;
const
 i: byte = 1;
begin
 with Sender as TEdit do
  begin
   vrLength:=Length(Text);
   vrPos:=Pos(',', Text);
   vrSelStart:=SelStart;
  end;
 case Key of
  '0'..'9': begin
              if (vrPos > 0) and (vrLength - vrPos > i) and (vrSelStart >= vrPos) 
                then
                  key:=#0;
             end;
  ',', '.': begin
               if (vrPos > 0) or (vrSelStart = 0) or (vrLength = 0)
                 then
                  Key:=#0
                 else
                  Key:=#44;
            end;
  #8: ;
 else
  Key:=#0;
 end;
end;

Ставь код на KeyPress на всех Edit'ах для ввода чисел "ручками" (дополни если нужны отрицательные исла сам) и не мучайся...

Это сообщение отредактировал(а) lonely delphist - 27.9.2005, 21:24
PM   Вверх
Dron84
Дата 27.9.2005, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



lonely delphist
а как обойтись одним обработчиком?
PM MAIL   Вверх
Pakshin A. S.
Дата 27.9.2005, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 21
Всего: 61



Млин.. ну неужине невозможно допереть до реализации?

Берешь ставить обработчик на один едик, к примеру Edit1

В остальных едитах идешь на вкладку обработчиков событий и выбираешь в соответствующем поле Edit1KeyPress

Все... готово...
PM   Вверх
Dron84
Дата 28.9.2005, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



народ, вся проблема состоит в том что у меня нет формы, у меня только код от формы (pas)...
PM MAIL   Вверх
Pakshin A. S.
Дата 28.9.2005, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 21
Всего: 61



Цитата(Dron84 @ 28.9.2005, 03:02)
народ, вся проблема состоит в том что у меня нет формы, у меня только код от формы (pas)...

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

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

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

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

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


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

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


 




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


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

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