Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Вопрос по калькулятору

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 15.12.2012, 15:22   #1
 Разведчик
Аватар для KASTEIL
 
KASTEIL никому не известный тип
Регистрация: 19.10.2010
Сообщений: 33
Популярность: 7
Сказал(а) спасибо: 45
Поблагодарили 5 раз(а) в 3 сообщениях
 
По умолчанию Вопрос по калькулятору

Писал калькулятор и столкнулся с проблемкой
Как сделать так что бы кнопки Клавиатуры * / - + = действовали в калькуляторе
  Ответить с цитированием
Старый 15.12.2012, 15:26   #2
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Вопрос по калькулятору

Цитата:
Сообщение от KASTEILПосмотреть сообщение
Писал калькулятор и столкнулся с проблемкой
Как сделать так что бы кнопки Клавиатуры * / - + = действовали в калькуляторе

емм а что вы сделали что бы они перестали работать?
  Ответить с цитированием
Старый 15.12.2012, 15:50   #3
 Разведчик
Аватар для KASTEIL
 
KASTEIL никому не известный тип
Регистрация: 19.10.2010
Сообщений: 33
Популярность: 7
Сказал(а) спасибо: 45
Поблагодарили 5 раз(а) в 3 сообщениях
 
По умолчанию Re: Вопрос по калькулятору

Работать они работают, но калькулятор не считает их знаками действия
  Ответить с цитированием
Старый 15.12.2012, 16:52   #4
 Старший сержант
Аватар для metraz
 
metraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядом
Регистрация: 25.12.2011
Сообщений: 191
Популярность: 5259
Сказал(а) спасибо: 31
Поблагодарили 235 раз(а) в 135 сообщениях
Отправить сообщение для metraz с помощью Skype™
 
По умолчанию Re: Вопрос по калькулятору

слишком мало исходных данных, чтоб помочь тебе.
  Ответить с цитированием
Старый 15.12.2012, 17:12   #5
 Разведчик
Аватар для KASTEIL
 
KASTEIL никому не известный тип
Регистрация: 19.10.2010
Сообщений: 33
Популярность: 7
Сказал(а) спасибо: 45
Поблагодарили 5 раз(а) в 3 сообщениях
 
По умолчанию Re: Вопрос по калькулятору

Это в событиях OnKeyPress
procedure TForm1.Button13KeyPress(Sender: TObject; var Key: Char);
begin
if key =#106 then Button13.Click;
Я хочу сделать что бы при нажатие клавиатуры(в данном случае нажатие на кнопку *) выполнялся Button, но что то не получается. В чем может быть ошибка?

Последний раз редактировалось KASTEIL; 15.12.2012 в 17:59.
  Ответить с цитированием
Старый 15.12.2012, 18:00   #6
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Вопрос по калькулятору

тебе надо вызывать метод а не событие... я точно не помню с каким названием оно по умолчанию создает...
  Ответить с цитированием
Старый 15.12.2012, 20:21   #7
Подпольщик Aion
 Рыцарь-капитан
Аватар для Tr0y
 
Tr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака Норриса
Регистрация: 18.10.2009
Сообщений: 477
Популярность: 7804
Золото Zhyk.Ru: 115
Сказал(а) спасибо: 85
Поблагодарили 498 раз(а) в 172 сообщениях
 
По умолчанию Re: Вопрос по калькулятору

Создай отдельную функцию сравнивания текущей клавиши, затем в событиях onKeyUp/onkeydown/onkeyclick тех компонентов/форм, у которых текущий фокус у них во входящих параметрах этих процедур ты увидишь принимаемый индекс/номер нажатой горячей клавиши (var Key) и направляй этот индекс в эту отдельную функцию и обрабатывай как душе вздумается.

Смотря какой компонент активен и принимает ввод, там и отлавливай клавиши, обрабатывать можно там же или написать отдельную функцию/процедуру, это от желания зависит. Если компонентов несколько с фокусами то направть обработку этого события на тот компонент, в которой ты выше уже описал, например ты написал обработку клавишь в текстовом поле где вводится число, затем по каким то причинам фокус с поля ввода ушел на кнопку например, в событиях кнопки выстави собития нажатия клавишь на аналогичное у твоего текст.поля, получится одно событие на несколько компонентов/форм.

Обработка должна быть типа:
Цитата:
if not (Key in [#13, #8]) then Abort;

Если это клавиша Enter, Backspace, то блокируем событие и эти клавиши "не печатаются" все остальные допускаются, можно также отдельные символы печатать в диапозонах или через запятую, например ['0'..'9']

Юзай гугл/MSDN справки, если решил стать кодером, то твоя первоочередная задача научиться пользоваться поисковыми системаи, не нужно все знать, нужно знать где это найти

Последний раз редактировалось Tr0y; 15.12.2012 в 20:33.
  Ответить с цитированием
Старый 15.12.2012, 22:52   #8
 Старший сержант
Аватар для metraz
 
metraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядом
Регистрация: 25.12.2011
Сообщений: 191
Популярность: 5259
Сказал(а) спасибо: 31
Поблагодарили 235 раз(а) в 135 сообщениях
Отправить сообщение для metraz с помощью Skype™
 
По умолчанию Re: Вопрос по калькулятору

если тебе нужно глобальный перехват нажатия клавиш, то используй хуки, если нет, то есть множество способов отлавливать нажатия внутри программы.
  Ответить с цитированием
Старый 16.12.2012, 08:04   #9
 Сержант
Аватар для Роспотребнадзор
 
Роспотребнадзор блестящий пример для подражанияРоспотребнадзор блестящий пример для подражанияРоспотребнадзор блестящий пример для подражанияРоспотребнадзор блестящий пример для подражанияРоспотребнадзор блестящий пример для подражанияРоспотребнадзор блестящий пример для подражанияРоспотребнадзор блестящий пример для подражанияРоспотребнадзор блестящий пример для подражанияРоспотребнадзор блестящий пример для подражанияРоспотребнадзор блестящий пример для подражанияРоспотребнадзор блестящий пример для подражания
Регистрация: 10.08.2011
Сообщений: 136
Популярность: 1781
Сказал(а) спасибо: 60
Поблагодарили 246 раз(а) в 145 сообщениях
Отправить сообщение для Роспотребнадзор с помощью Skype™
 
По умолчанию Re: Вопрос по калькулятору

Цитата:
Сообщение от metrazПосмотреть сообщение
есть множество способов отлавливать нажатия внутри программы.

Например, поставить процедуру отлова клавиши на постоянно включенный таймер. И клавиши будут отлавливаться, даже если форма свернута.
Цитата:
procedure TForm1.Timer7Timer(Sender: TObject);
begin
if (GetKeyState(VK_CONTROL)=-127)or(GetKeyState(VK_CONTROL)=-128) then begin
end;
end;

В твоем случае, поймав клавишу, будет логично сделать ее button1.enabled:=false; чтобы пользователь видел, что он нажал.
коды виртуальных клавиш можно посмотреть [Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось Роспотребнадзор; 16.12.2012 в 08:20.
  Ответить с цитированием
Пользователь сказал cпасибо:
KASTEIL (20.12.2012)
Старый 16.12.2012, 09:09   #10
Подпольщик Aion
 Рыцарь-капитан
Аватар для Tr0y
 
Tr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака Норриса
Регистрация: 18.10.2009
Сообщений: 477
Популярность: 7804
Золото Zhyk.Ru: 115
Сказал(а) спасибо: 85
Поблагодарили 498 раз(а) в 172 сообщениях
 
По умолчанию Re: Вопрос по калькулятору

Не надо таймеров, принимать сообщения можно без них.)

Пример функции принимающей сообщения клавиш:
Код:
private
    procedure OnHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
...
procedure TForm1.OnHotKey(var Msg: TWMHotKey);
begin
  inherited;
  if (Msg.HotKey = VK_MULTIPLY) then 
     showmeaasage('Нажали умножение');
end;
Список взять можно прямо из MDSN: [Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Пользователь сказал cпасибо:
KASTEIL (20.12.2012)
Старый 20.12.2012, 23:10   #11
 Разведчик
Аватар для KASTEIL
 
KASTEIL никому не известный тип
Регистрация: 19.10.2010
Сообщений: 33
Популярность: 7
Сказал(а) спасибо: 45
Поблагодарили 5 раз(а) в 3 сообщениях
 
По умолчанию Re: Вопрос по калькулятору

Цитата:
Сообщение от РОСПОТРЕБНАДЗОРПосмотреть сообщение
Например, поставить процедуру отлова клавиши на постоянно включенный таймер. И клавиши будут отлавливаться, даже если форма свернута.

В твоем случае, поймав клавишу, будет логично сделать ее button1.enabled:=false; чтобы пользователь видел, что он нажал.
коды виртуальных клавиш можно посмотреть [Ссылки могут видеть только зарегистрированные пользователи. ]

Спасибо большое, смог сделать по этому методу
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Игра] Вопрос на вопрос AEBus Треп 351 29.03.2015 23:20
[Помогите!] Нужна помощь по калькулятору KASTEIL Вопросы и ответы, обсуждения 7 10.12.2012 23:17
Вопрос Jokey7 Общение и обсуждение по World of Tanks 8 12.03.2012 17:27
[Информация] Вопрос Rikle Общение и обсуждение 0 15.10.2011 14:11

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 05:58.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net