Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Molas
6 / 6 / 2
Регистрация: 13.09.2013
Сообщений: 96
#1

Упрощение кода - Delphi

07.10.2016, 22:43. Просмотров 151. Ответов 2
Метки нет (Все метки)

Имеется несколько функций, где идет проверка заданной строки и потом выдает значение.
Но вот в чем проблема, на каждый ComBoBox написана отдельная функция тобишь:
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
38
39
40
41
42
43
44
45
46
47
function Tform1.KeyPad1(S: string; ): Word;
begin
  if ComboBox1.Text = 'NumPad 0' then
    Result := $60;
  if ComboBox1.Text = 'NumPad 1' then
    Result := $61;
  if ComboBox1.Text = 'NumPad 2' then
    Result := $62;
  if ComboBox1.Text = 'NumPad 3' then
    Result := $63;
  if ComboBox1.Text = 'NumPad 4' then
    Result := $64;
  if ComboBox1.Text = 'NumPad 5' then
    Result := $65;
  if ComboBox1.Text = 'NumPad 6' then
    Result := $66;
  if ComboBox1.Text = 'NumPad 7' then
    Result := $67;
  if ComboBox1.Text = 'NumPad 8' then
    Result := $68;
  if ComboBox1.Text = 'NumPad 9' then
    Result := $69;
end;
 
function Tform1.KeyPad2(S: string; ): Word;
begin
  if ComboBox2.Text = 'NumPad 0' then
    Result := $60;
  if ComboBox2.Text = 'NumPad 1' then
    Result := $61;
  if ComboBox2.Text = 'NumPad 2' then
    Result := $62;
  if ComboBox2.Text = 'NumPad 3' then
    Result := $63;
  if ComboBox2.Text = 'NumPad 4' then
    Result := $64;
  if ComboBox2.Text = 'NumPad 5' then
    Result := $65;
  if ComboBox2.Text = 'NumPad 6' then
    Result := $66;
  if ComboBox2.Text = 'NumPad 7' then
    Result := $67;
  if ComboBox2.Text = 'NumPad 8' then
    Result := $68;
  if ComboBox2.Text = 'NumPad 9' then
    Result := $69;
end;
и тд. Всего их 7. Я конешно понимаю что это уже очень не профессионально, вот и хотелось бы как то упросить код в одну функцию. Можно ли как то упростить?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2016, 22:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Упрощение кода (Delphi):

Упрощение кода - Delphi
Здравствуйте, извиняюсь если данная тема где-то уже есть, но все же Задача: Имеется 4 TRadioButton При нажатии кнопки ответ,...

Упрощение программного кода - Delphi
Здравствуйте всем! Очень нужна помощь. У меня в программе выполняется примерно 5 действий, каждое отталкивается от нескольких таймеров,...

Упрощение - Delphi
На форме есть 33 кнопки , у всех примерно одна и таже процедура нажатия,которая вполне огромная может строк 50, только меняется...

Упрощение программы - Delphi
Программа написана крайне сложно, если можно, то сделайте максимально просто её. Время считает очень сложно. и в один Unit сделайте, а не 3...

Упрощение синтаксиса - Delphi
Здравствуйте, как упростить данный код? if CheckBox1.Checked=true then Form2.Edit1.Enabled:=True; if CheckBox1.Checked=true then...

Упрощение тегов файлов формата Html - Delphi
Здравствуйте помогите, пожалуйста, с этим заданием:Упрощение тегов файлов формата Html(например, FONT color=#ff0000 замінити на FONT )....

2
krapotkin
3250 / 2890 / 785
Регистрация: 14.04.2014
Сообщений: 14,020
Записей в блоге: 12
07.10.2016, 23:19 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Delphi
1
2
3
4
5
6
7
8
9
function Tform1.KeyPad(s: string): integer;
var t:string
begin
  t:=copy(s,8,1);
  Result := $60+ StrToInt(t);
end;
 
n:=KeyPad(ComboBox1.text);
v:=KeyPad(ComboBox2.text);
1
TimKruz
141 / 39 / 11
Регистрация: 16.06.2016
Сообщений: 239
07.10.2016, 23:24 #3
В событиях Delphi есть параметр Sender - это ссылка на компонент, который вызвал это событие.
Соответственно на несколько компонентов можно вешать одно событие, и в событии различать (если нужно) "отправителя".
Далее. У ComboBox есть параметр ItemIndex, в котором хранится номер выбранной строки из списка Items, или -1, если ничего не выбрано.
Следовательно можно сделать выражение типа Result := $60 + ComboBox1.ItemIndex; и всё (если ComboBox используется как селектор, а не как Edit).
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2016, 23:24
Привет! Вот еще темы с ответами:

Упрощение функций или объединение их в одну - Delphi
Есть 2 функции: function ElseConnect(url: String): Boolean; var hSession, hURL: HInternet; bResult : Boolean; Buffer :...

Упрощение программы посредством цикла - Delphi
Есть текст: procedure TForm1.RadioGroup1Click(Sender: TObject); begin if RadioGroup1.ItemIndex=0 then begin ...

Оптимизация кода. Замер времени выполнения части кода. - Delphi
Доброе утро. Есть желание посмотреть сколько времени занимает выполнение какого-то блока кода/отдельной функции или процедуры/программы...

Упрощение кода - PHP ООП
Добрый день. товарищи, имеется написанный мною на коленках код год назад требует переработки. Подскажите, что, где и чем заменить. Может у...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru