Wie wäre es statt deinem zweiten Quelltext damit:
Delphi-Quellcode:
if FPasswort.ShowModal = mrOK then
begin
Anmelden1.Enabled := false;
Abmelden.Enabled := true;
UserRights.BenutzerName := FPasswort.BenutzerED.Text;
DM_PS.ReadUserRights(UserRights);
BTVerbinden.Enabled := UserRights.Verbinden = 1;
AnlagenSetup1.Enabled := UserRights.Zentralen > 0;
Hardware.Hardwareanbindung.RGZentralentyp.Enabled := UserRights.Zentralen >= 3;
Hardware.Hardwareanbindung.SpeichernButton.Enabled := UserRights.Zentralen >= 3;
Hardware.Hardwareanbindung.UebernehmenButton.Enabled := UserRights.Zentralen >= 3;
Zudem könnte das Setzen der Rechte eigentlich gleich automatisch beim Setzen der Property BenutzerName oder falls vorhanden Passwort passieren statt separat.
Was das Speichern angeht:
Wozu der Record? Wenn es unter 30 Rechte oder so wären, reicht doch ein simpler Integerwert von 4 Byte mit gesetzten Bits aus, wenn es mehr sind, müsste halt noch einer her oder so.