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

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

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

Доброго времени суток.
у меня возник такой вопрос: как сократить этот код:
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2013, 21:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос оптимизация кода (Delphi):

оптимизация кода
Помогите,пожалуйста,оптимизировать код на delphi. procedure variant5n; const...

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

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

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

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

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

1
Cyborg Drone
Модератор
5251 / 3118 / 2432
Регистрация: 17.08.2012
Сообщений: 10,072
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2013, 12:29
Привет! Вот еще темы с решениями:

Оптимизация кода
Проверяю форму на заполнение всех полей, подсвечиваю красным если не заполнены....

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

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

Оптимизация кода. Delphi
Есть процедура для записи в шаблон ексель. procedure ReportConus; var...


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

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

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