0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 19
1

Обработчик событий для нескольких компонентов

26.04.2014, 18:52. Показов 2946. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В моей программе есть несколько компонентов TEdit, а так же StringGrid.
Суть в том, чтобы разрешить вводить в Edit и в ячейки StringGrid только вещественные числа.
Код уже есть, вопрос в том, как не писать его для каждого Эдит/Грид отдельно, а записать в виде процедуры, к примеру.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
procedure TF_MainForm.ED_RangeMinChange(Sender: TObject);
 var i:integer;
begin
for i := 1 to Length(ED_RangeMin.Text) do
  If ED_RangeMin.Text=',' Then ED_RangeMin.Text:='';
end;
 
procedure TF_MainForm.ED_RangeMinKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if ( (Key=vk_Insert) and (ssShift in Shift)) then ClipBoard.Clear
end;
 
procedure TF_MainForm.ED_RangeMinKeyPress(Sender: TObject; var Key: Char);
var
 i,j:Integer;
begin
   if Not (Key in ['0'..'9', ',', #8]) then Key:=#0;
  If RangeFlag <>0 Then
    If Not (Key in ['0'..'9', #8]) then Key:=#0;
  If Key=',' then RangeFlag:=1;
  j:=1;
  If Key=#8 Then
  Begin
    For i:=1 To Length(ED_RangeMin.Text)-1 Do
      If ED_RangeMin.Text[i]=',' Then j:=0;
    If j=0 Then RangeFlag:=1 else RangeFlag:=0;
  End;
end;
 
 
 
procedure TF_MainForm.ED_RangeMinMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ClipBoard.Clear
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.04.2014, 18:52
Ответы с готовыми решениями:

Обработчик событий для Enter
а где прописывать этот код в ТForm или где???? В обработчике событий OnKeyPress: procedure...

Обработчик для множества компонентов
День добрый. Подскажите если у меня например для нескольких компонентов(в моем случае 20 TPanel),...

Обработчик событий для динамических кнопок
Всем доброго времени суток. Суть вопроса такая: Необходимо сделать настраиваемую систему АРМ. То...

Как вызвать обработчик событий для кнопки в Delphi 7?
похожее нашел,но не уверен что то для кнопки Page Up или Page Down procedure TForm2.bOK(Sender:...

1
Эксперт функциональных языков программированияЭксперт по математике/физике
4300 / 2091 / 431
Регистрация: 19.07.2009
Сообщений: 3,163
Записей в блоге: 24
26.04.2014, 19:05 2
Обычно Вы назначаете обрабочик так: выделяете элемент, в соотв. окошечке нажимаете на название соотв. события и у Вас открывается код с шаблоном процедуры-обрабочика:
Delphi
1
2
3
procedure TF_MainForm.ED_RangeMinKeyPress(Sender: TObject; var Key: Char);
begin
end;
В действительности, происходит ещё связывание обработчика и события OnKeyPress соотв. элемента.
Это связывание автоматическое, но можно его делать и руками, что очень бывает удобно:
Delphi
1
2
3
4
// назначаем OnKeyPress элементу Ed_RangeMax такой же, как и у ED_RangeMin
ED_RangeMax.OnKeyPress := ED_RangeMin.OnKeyPress;
// или так:
ED_RangeMax.OnKeyPress := @ED_RangeMinKeyPress;
Ещё можно в окне событий (events) свойства элемента открыть выпадающий список и из него выбрать нужное событие, связанное с другим элементом.
1
26.04.2014, 19:05
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.04.2014, 19:05
Помогаю со студенческими работами здесь

Общий обработчик события для компонентов одного класса
На форме 100 компонентов TShape. При щелчке на любом из них компонент, по которому щелкаем,...

Один обработчик для нескольких кнопок
Вопрос: Как для калькулятора создать один обработчик для цифровых кнопок (0-9), чтобы для каждой...

Однотипные действия для нескольких компонентов
Здравствуйте. Вот у меня код выполняет одни и те-же действия для 10 Label: var i:integer;...

Один обработчик события для нескольких динамически созданных объектов
Я программно создаю несколько картинок и их кол-во всегда разное. Создаю картинки циклом: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетных компьютеров началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
Как определить, содержит ли строка подстроку в JavaScript
InfoMaster 19.01.2025
При разработке веб-приложений часто возникает необходимость выполнять различные операции со строками, среди которых особое место занимает поиск подстрок. JavaScript предоставляет несколько встроенных. . .
Что такое метаклассы в Python
InfoMaster 19.01.2025
Метаклассы в Python представляют собой один из самых мощных и одновременно сложных механизмов языка, позволяющий программистам контролировать процесс создания классов. По своей сути, метакласс. . .
Как удалить свойство из объекта JavaScript
InfoMaster 19.01.2025
В современной веб-разработке объекты JavaScript играют фундаментальную роль в организации и структурировании данных. Они представляют собой контейнеры, которые хранят связанные данные и. . .
Какая разница между String и string в C#
InfoMaster 19.01.2025
В языке программирования C# существует интересная особенность: для работы со строками можно использовать как String, так и string. Эта двойственность часто вызывает вопросы у разработчиков, особенно. . .
Как в Git откатить репозиторий к предыдущему коммиту
InfoMaster 19.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса, предоставляя разработчикам мощные инструменты для управления изменениями в. . .
Как работают замыкания (closure) в JavaScript
InfoMaster 19.01.2025
В мире современной веб-разработки замыкания (closures) представляют собой один из фундаментальных концептов языка JavaScript, который часто вызывает затруднения у начинающих разработчиков, но при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru