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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как переопределить метод для нескольких TEdit? несколько TEdit в которые нужно вводить 
V
    Опции темы
takedo
Дата 3.12.2008, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день. Я хотел бы имея на форме несколько TEdit вводить в них числа. Но обрабатывать ввод хочется в одной функции. Привожу её ниже, но не знаю как задать её методом для всех TEdit на форме?

Код

procedure TForm1.KeyPressEditCifr;
var i : Integer;
b:boolean;
d:double;
begin
for i := 0 to ComponentCount-1 do
if (Components[i] is TEdit) and (Components[i] as TEdit).Focused then
  begin
    b:=false;
    try
      d:=strtofloat((Components[i] as TEdit).Text);
    except
      b:=true;
    end;
    if b=true then (Components[i] as TEdit).Font.Color:=clRed else (Components[i] as TEdit).Font.Color:=clWindow;
  end;

end;

Объявил её так:
Код

type
  TForm1 = class(TForm)
  //здесь объявления и всякая ерунда типа переменных и тех самы TEdit ов
    procedure FormCreate(Sender: TObject);
    procedure KeyPressEditCifr;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

Конечно же хотелось бы это сделать при помощи if (Components[i] is TEdit) где то в функции Create формы. Очень жду подсказки.


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
pseud
Дата 3.12.2008, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



Код

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure EditChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


{ TForm1 }


procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.OnChange := EditChange;
  Edit2.OnChange := EditChange;
  Edit3.OnChange := EditChange;
end;

procedure TForm1.EditChange(Sender: TObject);
var
  d: Double;
  c: TColor;
begin
  try
    d := StrToFloat(TEdit(Sender).Text);
    c := clWindowText;
  except
    c := clRed;
  end;
  TEdit(Sender).Font.Color := c;
end;




--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
takedo
Дата 3.12.2008, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо, сейчас попробую!


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
takedo
Дата 3.12.2008, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Все работает, спасибо


--------------------
я не гольфист - я хоккеист
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.0588 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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