bardziej optymalne rozwiazanie

0

cześć wam. mam takie zapytanko, już trochem zmęczony i nie wiem jak bardziej to zoptymalizować. otóż:

 CASE cb_z.ItemIndex OF
      0 : begin
        btn0.Enabled:= true;
        btn1.Enabled:= true;
      end;
      1 : begin
        btn0.Enabled:= true;
        btn1.Enabled:= true;
        btn2.Enabled:= true;
      end;
      2 : begin
        btn0.Enabled:= true;
        btn1.Enabled:= true;
        btn2.Enabled:= true;
        btn3.Enabled:= true;
      end;
      3 : begin
        btn0.Enabled:= true;
        btn1.Enabled:= true;
        btn2.Enabled:= true;
        btn3.Enabled:= true;
        btn4.Enabled:= true;
      end;

i w każdym kolejnym numerku będzie zwiększać sie btn o jeden. czyli numerek 3 to będzie 2 + jeden nowy. numerek 20 to 19 + jeden nowy, jak to bardziej optyamlnie rozwiązac?

0

FindComponent
Coś w stylu:

I := 0;
Repeat
 TButton(FindComponent('btn'+IntToStr(I))).Enabled := True;
 Inc(I);
Until (I > cb_z.ItemIndex);
2

jak to bardziej optyamlnie rozwiązac?

Poćwicz pisanie optymalnie.

FindComponent

Optymalnie=możliwie szybko. FindComponent jest wolne. Już nie mówiąc że RTTI to w ogóle zło.

Optymalnie będzie z tablicą TButtonów.

0

Robienie zmiennych w stylu btn0, btn1, itd. jest bardzo dużą sugestią, że należy to trzymać w tablicy. Wtedy nie trzeba stosować RTTI i kod jest czystszy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1