Quote:
Originally Posted by audiofeel
[B]
Can 't this code be shortened somehow ?
Code:
procedure OnChange(Sender: TObject);
begin
case Sender of
TObject(FMXComboColorBox[1].GetObject):
begin
FMXRectangle[97].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[7].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[8].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[9].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[10].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[11].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[12].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[13].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[14].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[15].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[16].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[17].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[18].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[20].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[21].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[22].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[23].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[24].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[35].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[36].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[37].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[38].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[39].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[50].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[51].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[52].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[53].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[54].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[62].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[63].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[64].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[65].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[66].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[75].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[84].FillColor(FMXComboColorBox[1].GetColor);
FMXArc[1].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[85].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[86].FillColor(FMXComboColorBox[1].GetColor);
FMXRectangle[93].FillColor(FMXComboColorBox[1].GetColor);
end;
|
Code:
var
MyArr: array of Integer;
procedure FMXInnoInit;
var
I: Integer;
begin
SetArrayLength(MyArr, 38);
for I := 0 to 37 do
begin
case I of
0..11 : MyArr[i] := 7 + I; // 7..18
12..16 : MyArr[i] := 20 + (I - 12); // 20..24
17..21 : MyArr[i] := 35 + (I - 17); // 35..39
22..26 : MyArr[i] := 50 + (I - 22); // 50..54
27..31 : MyArr[i] := 62 + (I - 27); // 62..66
32 : MyArr[32] := 75; // 75
33..35 : MyArr[i] := 84 + (I - 33); // 84..86
36 : MyArr[36] := 93; // 93
37 : MyArr[37] := 97; // 97
end;
end;
end;
procedure OnChange(Sender: TObject);
var
I: Integer;
begin
case Sender of
TObject(FMXComboColorBox[1].GetObject):
begin
FMXArc[1].FillColor(FMXComboColorBox[1].GetColor);
for I := Low(MyArr) to High(MyArr) do
FMXRectangle[MyArr[I]].FillColor(FMXComboColorBox[1].GetColor);
end;
end;
end;