Registriert seit: 16. Jan 2004
364 Beiträge
|
AW: integer bit werte in checkbox anzeigen
13. Jun 2011, 11:20
Delphi-Quellcode:
// folgendes kann man zur design time festlegen:
//
Checkbox1.Tag := 1 shl 1;
Checkbox2.Tag := 1 shl 2;
//...
Checkbox15.Tag := 1 shl 15;
Checkbox16.Tag := 1 shl 16;
// Checkbox-Objekte sind etwa in einem Panel oder einer Groupbox
// ...
// und das hier funktioniert für eine beliebige Anzahl von Elementen mit leicht
// änderbaren Flags, dazu noch Kombinationen von Flags.
var
idx: longint;
tray : TWinControl;
cb : TCheckBox;
begin
tray := (Checkbox1.Parent as TWinControl);
for idx := 0 to tray.ControlCount - 1 do
begin
if (tray.Controls[idx] is TCheckbox) then
begin
cb := (tray.Controls[idx] as TCheckbox);
cb.Checked := (cb.Tag AND Value) <> 0;
end;
end;
end;
ps. alternativ zur Initialisierung (automatisches tagging):
Delphi-Quellcode:
uses math;
//...
var
cb : TCheckBox;
i : longint;
//...
for i := 1 to 16 do
begin
cb := TCheckBox(FindComponent('CheckBox' + IntToStr(i)));
if assigned(cb) then cb.Tag := power(2,i-1);
end;
Power is nothing without TControl
Geändert von hboy (13. Jun 2011 um 12:02 Uhr)
|