Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Power-Status des Computers ermitteln? (https://www.delphipraxis.net/21563-power-status-des-computers-ermitteln.html)

joe666sa 5. Mai 2004 04:45

Re: Power-Status des Computers ermitteln?
 
@NicoDE

Das fünktioniert aber hald aber leider muss ich die stellen Laberlx.caption := Text weglassen.

Aber die frage ist hald warum.

alcaeus 5. Mai 2004 04:48

Re: Power-Status des Computers ermitteln?
 
Ich weiß nicht, du könntest Variablenparameter vom Typ String verlangen und die Ergebnisse dort hineinschreiben, du könntest auch ein Form angeben lassen das Labels enthält, oder du machst es so wie Matze gesagt hat:
Zitat:

Zitat von Matze
Binde diese procedur unter private ein, oder schreibe einfach immer

Delphi-Quellcode:
Form1.Label1.Caption := ...
Aber ich kann dir auch die komplette Unit zeigen, falls du das möchtest. ;)

Delphi-Quellcode:
 private
    { Private-Deklarationen }
    procedure GetStatus;
  public
...
procedure TForm1.GetStatus;
var SystemPowerStatus: TSystemPowerStatus;
begin
...


NicoDE 5. Mai 2004 04:50

Re: Power-Status des Computers ermitteln?
 
Zitat:

Zitat von joe666sa
Aber die frage ist hald warum.

Weil Du keine Label auf Deiner Form gelegt hast, bzw. sie nicht Label1, Label2 und Label3 heißen.

Nicodius 5. Mai 2004 05:54

Re: Power-Status des Computers ermitteln?
 
lad dir dochmal auf der DELPHISOURCE SEITE die Sourcedatei runetr da stehen alle solche fragen drinnen

Luckie 8. Mai 2004 01:19

Re: Power-Status des Computers ermitteln?
 
So und hier das ganze aufbereitet für die Code-Lib:
Delphi-Quellcode:
function GetPowerStatus(var HasBattery: Boolean; var LoadStatusString: String;
  var LoadstatusPercent: Integer): DWORD;
var
  SystemPowerStatus: TSystemPowerStatus;
  Text: string;
resourcestring
  rsLoadStatusUnknown = 'Unbekannter Status';
  rsLoadStatusNoBattery = 'Es existiert keine Batterie';
  rsLoadStatusHigh = 'Hoher Ladezustand';
  rsLoadStatusLow = 'Niedriger Ladezustand';
  rsLoadStatusCritical = 'Kritischer Ladezustand';
  rsLoadStatusLoading = 'Batterie wird geladen';
  rsLoadSatusUnknownLoading = 'Unbekannter Ladezustand';
begin
  SetLastError(0);
  if GetSystemPowerStatus(SystemPowerStatus) then
    with SystemPowerStatus do
    begin
      HasBattery := ACLineStatus = 0;

      // Ladezustand der Batterie
      if (BatteryFlag = 255) then
        Text := rsLoadStatusUnknown
      else if (BatteryFlag and 128 = 128) then
        Text := rsLoadStatusNoBattery
      else
      begin
        case (BatteryFlag and (1 or 2 or 4)) of
          1: Text := rsLoadStatusHigh;
          2: Text := rsLoadStatusLow;
          4: Text := rsLoadStatusCritical;
        else
          Text := rsLoadSatusUnknownLoading
        end;
        if (BatteryFlag and 8 = 8) then
          LoadStatusString := Text + rsLoadStatusLoading;
      end;

      // Ladezustand in Prozent
      if (BatteryLifePercent <> 255) then
        LoadstatusPercent := BatteryLifePercent
      else
        LoadstatusPercent := -1;
  end;
  Result := GetLastError;
end;
Unabhängig von irgendwelchen Labels oder sonstigen Zeug, zu dem wird der Letzte Systemfehler zurückgegeben auf dem man testen kann, ob alles geklappt hat, bzw. wenn nicht kann man ihn anzeigen lassen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz