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

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

27.08.2013, 17:46. Показов 5339. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вопрос:
Как для калькулятора создать один обработчик для цифровых кнопок (0-9),
чтобы для каждой не писать ....+1 (+2) и т.д.
0
27.08.2013, 17:46
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.08.2013, 17:46
Ответы с готовыми решениями:

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

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

Написать для трех кнопок общий обработчик OnClick для вывода, скрытия/отображения и изменения цвета текста
На форме Form_Lb расположена пустая метка Lb_txt с текстом и три кнопки класса TButton с надписями:<Delphi>, <Цвет> и...

22
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
27.08.2013, 17:48 2
Создаешь обработчик для одной кнопки и назначаешь его всем остальным.
0
0 / 0 / 0
Регистрация: 20.04.2013
Сообщений: 9
27.08.2013, 18:08  [ТС] 3
тогда же все кнопки одно число вводить будут

Добавлено через 3 минуты
спасибо разобрался
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
28.08.2013, 07:20 4
Для тех кто придет в эту тему за ответом
Данный пример делает в компонентах TEdit ввод первых символов заглавными.
Для этого необходимо у всех требуемых компонент свойство OnChange в Инспекторе обьектов на закладке Events
установить Edit1Change.
Для пояснения в обработчике событий присутсвует свойство Sender в котором "содержится" информация о компоненте вызвавшее данное событие и обращение происходит (Sender as ТипКомпонентыВызвавшееСобытие).МетодыИлиСвойстваКомпоненты.
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Edit1Change(Sender: TObject);
var i: Integer;
begin
  if Length((Sender as TEdit).Text)>0 then // проверяет наличие текста в компоненте 
  begin
    i:= (Sender as TEdit).SelStart; // запоминает текущее состояние курсора 
    (Sender as TEdit).Text:=AnsiUpperCase((Sender as TEdit).Text[1])+Copy((Sender as TEdit).Text, 2, Length((Sender as TEdit).Text)); // AnsiUpperCase((Sender as TEdit).Text[1]) первый символ делает заглавным.
    (Sender as TEdit).SelStart:=i+1; //данный код устанавливает позицию курсора
  end;
end;
ЗЫ данный код не предусматривает режим редактирования в ячейке
и неделает остальные символы строчными.
2
angstrom
28.08.2013, 14:49
  #5

Не по теме:

Цитата Сообщение от ZfoxAK Посмотреть сообщение
Для тех кто придет в эту тему за ответом
А где ТС про это спрашивал? :)

3 / 3 / 0
Регистрация: 16.05.2019
Сообщений: 145
19.01.2023, 17:25 6
Цитата Сообщение от timurhome Посмотреть сообщение
Вопрос:
Как для калькулятора создать один обработчик для цифровых кнопок (0-9),
чтобы для каждой не писать ....+1 (+2) и т.д.
Delphi
1
2
3
4
5
6
7
procedure TMainForm.CulcButtonClick(Sender: TObject);
var
 CalcButton: TButton;
begin
 CalcButton := Sender as TButton;
 Edit1.Text := CalcButton.Text;
end;
0
 Аватар для Пытливый
3761 / 2265 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
19.01.2023, 18:05 7
Надпись на кнопках стандартного калькулятора содержит 1 символ, этим можно воспользоваться:
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TMainForm.CalcButtonClick(Sender: TObject);
var C: Char;
begin
  C := TButton(Sender).Caption[1];
  case C of 
  '0'..'9': SetOperand(C);
  '+','-','*','/' : SetOperator(C);
  '=': CalcFormula;
  end;
end;
1
3 / 3 / 0
Регистрация: 16.05.2019
Сообщений: 145
19.01.2023, 18:09 8
Цитата Сообщение от Пытливый Посмотреть сообщение
C := TButton(Sender).Caption[1];
Сaption у TButton? Это, по моему, из версий прошлого века...
И
Цитата Сообщение от Пытливый Посмотреть сообщение
содержит 1 символ
есть ещё "+/-", "М+", "М-"

Пы.Сы.: а пример тоже хорош!
0
 Аватар для Пытливый
3761 / 2265 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
19.01.2023, 18:20 9
Цитата Сообщение от Hevard Посмотреть сообщение
есть ещё "+/-", "М+", "М-"
Я специально написал "стандартного калькулятора".
Название: a9f026ea528ff081fbb84c1b0236767ed2076de3.png
Просмотров: 146

Размер: 31.1 Кб
0
3 / 3 / 0
Регистрация: 16.05.2019
Сообщений: 145
19.01.2023, 18:27 10
Цитата Сообщение от Пытливый Посмотреть сообщение
Я специально написал пример "стандартного калькулятора".
ОК, Вы не используете работу с памятью, предположим... А где "С"? а "СЕ"?
Или "сброс" и "отмена ввода" не предусмотрена в "стандартном калькуляторе"?
0
Злостный нарушитель
 Аватар для Verevkin
9745 / 5295 / 1206
Регистрация: 12.03.2015
Сообщений: 24,907
19.01.2023, 18:30 11
Delphi
1
case TComponent(Sender).Tag of
0
 Аватар для Пытливый
3761 / 2265 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
19.01.2023, 18:46 12
Цитата Сообщение от Hevard Посмотреть сообщение
ОК, Вы не используете работу с памятью, предположим... А где "С"? а "СЕ"?
Или "сброс" и "отмена ввода" не предусмотрена в "стандартном калькуляторе"?
Это все уже появилось существенно позже в продвинутых моделях. Простой калькулятор работает всегда только с парой операторов. Сброс значения прекрасно происходит последовательным нажатием 0 и =. Вот калькулятор на картинке работает именно так.
0
Модератор
 Аватар для D1973
9678 / 6281 / 2432
Регистрация: 21.01.2014
Сообщений: 26,755
Записей в блоге: 3
20.01.2023, 05:33 13
Цитата Сообщение от Hevard Посмотреть сообщение
Сaption у TButton? Это, по моему, из версий прошлого века...
Да? Надо же...
Миниатюры
Один обработчик для нескольких кнопок  
0
Модератор
4013 / 2267 / 784
Регистрация: 15.11.2015
Сообщений: 9,027
20.01.2023, 09:39 14
Цитата Сообщение от Hevard Посмотреть сообщение
Сaption у TButton? Это, по моему, из версий прошлого века...
В VCL именно Caption.
0
3 / 3 / 0
Регистрация: 16.05.2019
Сообщений: 145
23.01.2023, 12:24 15
Цитата Сообщение от AzAtom Посмотреть сообщение
В VCL именно Caption.
Эво оно как... А в FMX - Text
0
Модератор
4013 / 2267 / 784
Регистрация: 15.11.2015
Сообщений: 9,027
23.01.2023, 13:44 16
Hevard, кто-то начал сразу с FMX, а VCL никогда не трогал?
0
3 / 3 / 0
Регистрация: 16.05.2019
Сообщений: 145
23.01.2023, 14:06 17
Цитата Сообщение от AzAtom Посмотреть сообщение
кто-то начал сразу с FMX, а VCL никогда не трогал?
Трогал... в 7-й версии.
Я и думал, что там тоже самое сейчас. 10.4СЕ установил как раз для FMX "посчупать".
Мне понравилось, приятное "осчучение".
0
Злостный нарушитель
 Аватар для Verevkin
9745 / 5295 / 1206
Регистрация: 12.03.2015
Сообщений: 24,907
23.01.2023, 14:10 18
Цитата Сообщение от Hevard Посмотреть сообщение
Я и думал, что там тоже самое сейчас. 10.4СЕ установил как раз для FMX "посчупать".
Мне понравилось, приятное "осчучение".
Руки помыл?
0
3 / 3 / 0
Регистрация: 16.05.2019
Сообщений: 145
23.01.2023, 14:47 19
Цитата Сообщение от Verevkin Посмотреть сообщение
Руки помыл?
Естессно! И "до создания приложения", и "после создания приложения".
0
 Аватар для Пытливый
3761 / 2265 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
23.01.2023, 15:18 20
Цитата Сообщение от Hevard Посмотреть сообщение
Естессно!
Точно? Все?
Один обработчик для нескольких кнопок
0
23.01.2023, 15:18
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.01.2023, 15:18
Помогаю со студенческими работами здесь

Обработчик событий для нескольких компонентов
В моей программе есть несколько компонентов TEdit, а так же StringGrid. Суть в том, чтобы разрешить вводить в Edit и в ячейки StringGrid...

Создание одной процедуры для нескольких кнопок через параметр
Доброго времени суток, комрады. Имеется у меня код, в нём для каждой кнопочки отведена своя процедурка, но требуют от меня, что бы для всех...

Обрабатывание нажатия нескольких кнопок
Всем хаюшки. В общем, нужно сделать так, что бы действие сработало при нажатии нескольких кнопок(Если точно, то 2). Пробовал так: ...

Процедура обработки нескольких кнопок
Друзья помогите новичку) как создать процедуру обработки нажатия нескольких Button кнопок? т.е. у меня есть 30 кнопок у всех одно и то же...

Один обработчик меняет Caption
Здравствуйте хочу повесить один обработчик которые имеют св-во Caption на 2 объекта TButton и TMenuItem. Хочу изменить это свойство при...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Отличия между venv, pyenv, pyvenv, virtualenv, pipenv, conda, virtualenvwrapp­­er, poetry и другими в Python
hw_wired 13.02.2025
В Python существует множество средств для управления зависимостями и виртуальными окружениями, что порой вызывает замешательство даже у опытных разработчиков. Каждый инструмент создавался для решения. . .
Навигация с помощью React Router
hw_wired 13.02.2025
React Router - это наиболее распространенное средство для создания навигации в React-приложениях, без которого сложно представить современную веб-разработку. Когда мы разрабатываем сложное. . .
Ошибка "error:0308010C­­:dig­ital envelope routines::unsup­­ported"
hw_wired 13.02.2025
Если вы сталкиваетесь с ошибкой "error:0308010C:digital envelope routines::unsupported" при разработке Node. js приложений, то наверняка уже успели поломать голову над её решением. Эта коварная ошибка. . .
Подключение к контейнеру Docker и работа с его содержимым
hw_wired 13.02.2025
В мире современной разработки контейнеры Docker изменили подход к созданию, развертыванию и масштабированию приложений. Эта технология позволяет упаковать приложение со всеми его зависимостями в. . .
Отличия интерфейсов и типов в TypeScript
hw_wired 13.02.2025
TypeScript - мощное средство для создания качественного и поддерживаемого кода, который расширяет возможности JavaScript, добавляя систему статической типизации. В отличие от динамической типизации. . .
Async/await в циклах JavaScript
hw_wired 13.02.2025
Современная веб-разработка немыслима без асинхронного программирования. Когда приложение выполняет длительные операции - загрузку данных с сервера, чтение файлов или обработку медиа-контента, важно. . .
Git не работает на MacOS после апдейта
hw_wired 13.02.2025
После очередного обновления MacOS многие разработчики сталкиваются с неприятным сюрпризом - Git перестает работать и выдает ошибку "xcrun: error: invalid active developer path". Эта проблема особенно. . .
Git отказывается объединять несвязанные истории
hw_wired 13.02.2025
Git работает безупречно, пока мы не сталкиваемся с особыми ситуациями вроде объединения веток с разными корнями истории. В таких случаях система контроля версий может преподнести неприятный сюрприз в. . .
Проверка email с помощью JavaScript
hw_wired 13.02.2025
Email-адреса имеют довольно запутанную спецификацию, которая допускает множество неочевидных вариантов написания. Например, знали ли вы, что адрес вида "name+tag@domain. com" или даже. . .
Замена всех вхождений строки с помощью JavaScript
hw_wired 13.02.2025
JavaScript предлагает несколько способов для выполнения операций замены в строках, каждый из которых имеет свои особенности и область применения. От простейшей замены первого найденного вхождения до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru