Witam.
Mam na formie Panel, 13 CheckBoxów i 2 przyciski
Zapis właściwości Checked dla wszystkich przechowuję w zmiennej Private Pot4: Integer.
Kod dla zapisu do zmiennej:
procedure TForm1.Dalej3Click(Sender: TObject);
begin
P4.Visible:=False;
Pot4:=0;
CHB6Click(Self);
CHB7Click(Self);
CHB8Click(Self);
CHB9Click(Self);
CHB10Click(Self);
CHB11Click(Self);
CHB12Click(Self);
CHB13Click(Self);
CHB14Click(Self);
CHB15Click(Self);
CHB16Click(Self);
CHB17Click(Self);
CHB18Click(Self);
end;
procedure TForm1.CHB6Click(Sender: TObject);
begin
if CHB6.Checked then Pot4:=Pot4+1;
end;
procedure TForm1.CHB7Click(Sender: TObject);
begin
if CHB7.Checked then Pot4:=Pot4+2;
end;
procedure TForm1.CHB8Click(Sender: TObject);
begin
if CHB8.Checked then Pot4:=Pot4+4;
end;
procedure TForm1.CHB9Click(Sender: TObject);
begin
if CHB9.Checked then Pot4:=Pot4+8;
end;
procedure TForm1.CHB10Click(Sender: TObject);
begin
if CHB10.Checked then Pot4:=Pot4+16;
end;
procedure TForm1.CHB11Click(Sender: TObject);
begin
if CHB11.Checked then Pot4:=Pot4+32;
end;
procedure TForm1.CHB12Click(Sender: TObject);
begin
if CHB12.Checked then Pot4:=Pot4+64;
end;
procedure TForm1.CHB13Click(Sender: TObject);
begin
if CHB13.Checked then Pot4:=Pot4+128;
end;
procedure TForm1.CHB14Click(Sender: TObject);
begin
if CHB14.Checked then Pot4:=Pot4+256;
end;
procedure TForm1.CHB15Click(Sender: TObject);
begin
if CHB15.Checked then Pot4:=Pot4+512;
end;
procedure TForm1.CHB16Click(Sender: TObject);
begin
if CHB16.Checked then Pot4:=Pot4+1024;
end;
procedure TForm1.CHB17Click(Sender: TObject);
begin
if CHB17.Checked then Pot4:=Pot4+2048;
end;
procedure TForm1.CHB18Click(Sender: TObject);
begin
if CHB18.Checked then Pot4:=Pot4+4096;
end;
Kod dla odczytu ustawień, który po raz pierwszy wskazuje błędne dane, a po powtórnym wywołaniu prawidłowe.
procedure TForm1.OdczytPot4;
begin
if Pot4>=4096 then
begin
CHB18.Checked:=True;
Pot4:=Pot4-4096;
end else CHB18.Checked:=False;
if Pot4>=2048 then
begin
CHB17.Checked:=True;
Pot4:=Pot4-2048;
end else CHB17.Checked:=False;
if Pot4>=1024 then
begin
CHB16.Checked:=True;
Pot4:=Pot4-1024;
end else CHB16.Checked:=False;
if Pot4>=512 then
begin
CHB15.Checked:=True;
Pot4:=Pot4-512;
end else CHB15.Checked:=False;
if Pot4>=256 then
begin
CHB14.Checked:=True;
Pot4:=Pot4-256;
end else CHB14.Checked:=False;
if Pot4>=128 then
begin
CHB13.Checked:=True;
Pot4:=Pot4-128;
end else CHB13.Checked:=False;
if Pot4>=64 then
begin
CHB12.Checked:=True;
Pot4:=Pot4-64;
end else CHB12.Checked:=False;
if Pot4>=32 then
begin
CHB11.Checked:=True;
Pot4:=Pot4-32;
end else CHB11.Checked:=False;
if Pot4>=16 then
begin
CHB10.Checked:=True;
Pot4:=Pot4-16;
end else CHB10.Checked:=False;
if Pot4>=8 then
begin
CHB9.Checked:=True;
Pot4:=Pot4-8;
end else CHB9.Checked:=False;
if Pot4>=4 then
begin
CHB8.Checked:=True;
Pot4:=Pot4-4;
end else CHB8.Checked:=False;
if Pot4>=2 then
begin
CHB7.Checked:=True;
Pot4:=Pot4-2;
end else CHB7.Checked:=False;
if Pot4>=1 then
begin
CHB6.Checked:=True;
Pot4:=Pot4-1;
end else CHB6.Checked:=False;
end;
Zamiast konkretnych potęg można oczywiście skorzystać z funkcji math POWER(pods,wykł).
Czy robię jakiś błąd?
Dzięki z góry za jakąś poradę.