Zitat von
joe666sa:
Code:
// Ladezustand der Batterie
case BatteryFlag of
1 : Label2.Caption := 'Hoher Ladezustand';
2 : Label2.Caption := 'Niedriger Ladezustand';
4 : Label2.Caption := 'Kritischer Ladezustand';
8 : Label2.Caption := 'Die Batterie wird geladen';
128: Label2.Caption := 'Es existiert keine System-Batterie';
255: Label2.Caption := 'Unbekannter Status';
end;
Einige Flags können auch gleichzeitig vorkommen (zum Beipiel 'Ladezustand' und 'wird geladen')
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
SystemPowerStatus: TSystemPowerStatus;
Text: string;
begin
if GetSystemPowerStatus(SystemPowerStatus) then
with SystemPowerStatus do
begin
// Wird das System mit Wechselstrom oder Akku betrieben ?
case ACLineStatus of
0: Text := 'System wird mit Akku betrieben';
1: Text := 'System wird mit Wechselstrom betrieben';
else
Text := 'Unbekannter Status';
end;
Label1.Caption := Text;
// Ladezustand der Batterie
if (BatteryFlag = 255) then
Text := 'Unbekannter Status'
else if (BatteryFlag and 128 = 128) then
Text := 'Es existiert keine System-Batterie'
else
begin
case (BatteryFlag and (1 or 2 or 4)) of
1: Text := 'Hoher Ladezustand';
2: Text := 'Niedriger Ladezustand';
4: Text := 'Kritischer Ladezustand';
else
Text := 'Unbekannter Ladezustand';
end;
if (BatteryFlag and 8 = 8) then
Text := Text + ' (Die Batterie wird geladen)';
end;
Label2.Caption := Text;
// Ladezustand in Prozent
if (BatteryLifePercent <> 255) then
Text := IntToStr(BatteryLifePercent) + ' %'
else
Text := 'Unbekannter Status';
Label3.Caption := Text;
end;
end;