Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
4 / 4 / 1
Регистрация: 06.06.2010
Сообщений: 115
1

оптимизация кода

06.10.2013, 21:48. Показов 701. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
у меня возник такой вопрос: как сократить этот код:
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
procedure TForm1.Image1Click(Sender: TObject);
begin
if a=5 then begin
          z1:=z1+1;
          e:=e+1;
          if z1=1 then begin
          case e of
          1: begin Panel1.Color:=clfuchsia; end;
          2: begin ShowMessage('ìîæíî âûäåëèòü òîëüêî 3 êàðòû'); e:=e-1; z1:=z1-1; end;
          end; end else
          begin Panel1.Color:=clbtnface; z1:=0; e:=e-2; end;
      end
    else
    begin
      q:=1;
      videlenie;
      Panel1.Color:=clgray;
      end;  
end;
 
procedure TForm1.Image2Click(Sender: TObject);
begin
if a=5 then begin
    z2:=z2+1;
    e:=e+1;
    if z2=1 then begin
          case e of
          1: begin Panel2.Color:=clfuchsia; end;
          2: begin ShowMessage('ìîæíî âûäåëèòü òîëüêî 3 êàðòû'); e:=e-1; z2:=z2-1; end;
          end; end else
          begin Panel2.Color:=clbtnface; z2:=0; e:=e-2; end;
      end
    else
    begin
      q:=2;
      videlenie;
      Panel2.Color:=clgray;
     end   
end;
 
procedure TForm1.Image3Click(Sender: TObject);
begin
if a=5 then begin
    z3:=z3+1;
    e:=e+1;
    if z3=1 then begin
          case e of
          1: begin Panel3.Color:=clfuchsia; end;
          2: begin ShowMessage('ìîæíî âûäåëèòü òîëüêî 3 êàðòû'); e:=e-1; z3:=z3-1; end;
          end; end else
          begin Panel3.Color:=clbtnface; z3:=0; e:=e-2; end;
     end
    else
    begin
      q:=3;
      videlenie;
      Panel3.Color:=clgray;
 
end; end;
 
procedure TForm1.Image4Click(Sender: TObject);
begin
if a=5 then begin
    z4:=z4+1;
    e:=e+1;
    if z4=1 then begin
          case e of
          1: begin Panel4.Color:=clfuchsia; end;
          2: begin ShowMessage('ìîæíî âûäåëèòü òîëüêî 3 êàðòû'); e:=e-1; z4:=z4-1; end;
          end; end else
          begin Panel4.Color:=clbtnface; z4:=0; e:=e-2; end;
    end
    else
    begin
    q:=4;
videlenie;
Panel4.Color:=clgray;
end; }end;
заранее огромное спасибо
З.Ы. извиняюсь за кривой код
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2013, 21:48
Ответы с готовыми решениями:

Оптимизация кода
Здравствуйте, уважаемые знатоки! Передо мной стоит задача оптимизировать код программы. В общем и...

Оптимизация кода
Подскажите, можно как нибудь более компактно реализовать данный участок кода: if ((buf=31) or...

Оптимизация кода
Всем привет. Данный кусок кода перебирает все сочетания из введенных букв и проверяет их по...

Оптимизация кода
Помогите пожалуйста оптимизировать код. Особо смысла в этом коде нет, просто вычисляет результат...

1
Модератор
9871 / 5239 / 3306
Регистрация: 17.08.2012
Сообщений: 16,009
07.10.2013, 12:29 2
Может, так... Все z запихать в массив z[1..4] of integer, клики на всех image натравить на одну и ту же процедуру, номер image выделять из его имени.
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 ImageClick(Sender: TObject);
var i: integer;
begin
i := StrToInt(TImage(Sender).Name[6])
if a=5
  then
    begin
      z[i]:=z[i]+1;
      e:=e+1;
      if z[i]=1
        then
          begin
            case e of
              1: begin 
                   with TPanel(FindComponent('Panel' + IntToStr(i) do Color:=clfuchsia
                 end;
              2: begin
                   ShowMessage('можно выделить только 3 карты');
                   e:=e-1;
                   z[i]:=z[i]-1
                 end;
            end
          end
        else
          begin
            with TPanel(FindComponent('Panel' + IntToStr(i) do Color:=clbtnface;
            z[i]:=0;
            e:=e-2
          end;
    end
  else
    begin
      q:=i;
      videlenie;
      with TPanel(FindComponent('Panel' + IntToStr(i) do Color:=clgray
    end  
end;
1
07.10.2013, 12:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2013, 12:29
Помогаю со студенческими работами здесь

Оптимизация кода.
Привет всем. Вот хотел спросить у людей какие кто советы даст по оптимизации кода программы. А то...

Оптимизация кода
Имеется код который не получается оптимизировать(( Хотелось бы его как то автоматизировать, ведь...

Оптимизация кода
На форме есть около 30 элементов MaskEdit и CheckBox, расположенных последовательно, и при...

Оптимизация кода
Доброго времени суток! Необходимо оптимизировать код. Проблема: загружаю звуковой файл из ресурса...

Оптимизация кода
Есть ли способ оптимизировать такой код? FlightArray220.money := 0; FlightArray220.exp := 0;...

Оптимизация кода
Здравствуйте, есть вопрос, как оптимизировать вот этот код: if image1.Left=0 then begin...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru