Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2015, 08:30   #1
Mazourik
Пользователь
 
Регистрация: 24.07.2015
Сообщений: 14
По умолчанию Доступ к тексту Edit-а, находящегося в фокусе

Добрый день.
Форма имеет несколько Edit-ов.
Для каждого своя процедура фильтрации нажимаемых клавиш TForm1.EditNKeyPress(Sender: TObject; var Key: Char).
Процедуры одинаковые, отличие только в доступе к вводимому тексту EditN.Text, отличаются только N.
Как получить доступ к вводимому тексту текущего (в фокусе) Edit-а, чтобы объединить все процедуры в одну?
ActiveControl.Name позволяет определить только имя текущего Edit-а.
Mazourik вне форума Ответить с цитированием
Старый 24.07.2015, 08:51   #2
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Для всех edit'ов единая процедура должна быть. Для этого их все в конструкторе выделяем, и в инспекторе на событие OnKeyPress пишем свой код в стиле:
Код:
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  form1.Caption:=(Sender as TEdit).Text;
end;
Никогда не знаешь, где тебе повезет... (Фрай)

Последний раз редактировалось DIgorevich; 24.07.2015 в 08:51. Причина: Исправление ошибки
DIgorevich вне форума Ответить с цитированием
Старый 24.07.2015, 09:27   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Как получить доступ к вводимому тексту текущего (в фокусе) Edit-а
Почитай про " taborder " и "Edit4.SetFocus" на пример переходим при нажатии enter из одного на другом
Код:
procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
  if Msg.CharCode = 13 then
  begin
    if Edit1.Focused then
    begin
      Edit2.SetFocus;
      Handled := true;
    end
    else
    if Edit2.Focused then
    begin
      Edit3.SetFocus;
      Handled := true;
    end
    else
    if Edit3.Focused then
    begin
      Button1.Click;
      Handled := true;
    end;
  end;
end;

end.
xxbesoxx вне форума Ответить с цитированием
Старый 24.07.2015, 09:58   #4
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Возможно обработать сообщение WM_EditKeyPress(или подобное). А дальше дело техники:
Код:
var 
a: string;
begin
a:=(GetFocus() as TEdit).Text;
end; //в a текст из edit-а в котором находится курсор ввода
GetFocus выдаст указатель на компонент, в котором находится курсор ввода, этот указатель мы приводим к TEdit(так как указатели на объекты и ссылки на объекты - это одно и то же), а оттуда уже получаем текст. Вот и всё!
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 24.07.2015, 11:53   #5
Mazourik
Пользователь
 
Регистрация: 24.07.2015
Сообщений: 14
По умолчанию

Большое спасибо, все работает!
Mazourik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доступ к определенному элементу (при Edit Template) coNsept Общие вопросы .NET 4 09.03.2012 19:21
Как получить доступ к тексту в компоненте TChart galek Компоненты Delphi 0 29.11.2011 16:07
Как правильно сделать Edit в фокусе? Dux Общие вопросы Delphi 4 08.10.2011 11:45
Как определить, в фокусе ли EDIT поле. USB2.0 Win Api 5 02.11.2008 21:07
как получить доступ к тексту внутри JS на загруженной странице element Работа с сетью в Delphi 0 11.01.2008 23:19