Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Molas
6 / 6 / 4
Регистрация: 13.09.2013
Сообщений: 96
1

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

07.10.2016, 22:43. Просмотров 168. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2016, 22:43
Ответы с готовыми решениями:

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

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

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

Упрощение синтаксиса
Здравствуйте, как упростить данный код? if CheckBox1.Checked=true then...

Упрощение программы
Программа написана крайне сложно, если можно, то сделайте максимально просто...

2
krapotkin
3474 / 3070 / 1059
Регистрация: 14.04.2014
Сообщений: 14,851
Записей в блоге: 15
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 / 14
Регистрация: 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

Упрощение платежной матрицы
Здравствуйте, как сделать упрощение матрицы. По примеру для более большой:...

Упрощение платежной матрицы
Дана платежная матрица, например: 8994 6587 3486 8994 Нужно упростить ее,...

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


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

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

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