简单电池电量显示

Project1.dpr

program Project1;

uses
   Forms,Windows,
   Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
   Application.Initialize;
   SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);//使程序不显示在任务栏中
   Application.Title := '电池电量显示';
   Application.CreateForm(TForm1, Form1);
   Application.Run;
end.

======================================================================
Unit1.pas

unit Unit1;

interface

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, ExtCtrls, RzStatus, Menus;

type
   TForm1 = class(TForm)
     Timer1: TTimer;
     RzProgressStatus1: TRzProgressStatus;
     PopupMenu1: TPopupMenu;
     N1: TMenuItem;
    procedure Timer1Timer(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure RzProgressStatus1MouseDown(Sender: TObject;
       Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
   Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
   Power: TSystemPowerStatus;
begin
    GetSystemPowerStatus(Power);
    RzProgressStatus1.Percent:=Power.BatteryLifePercent;//获取电量百分比
   //根据电量百分比显示不同颜色
   if Power.BatteryLifePercent>=40 then
    begin
       RzProgressStatus1.BarColor:=clLime;
       RzProgressStatus1.BarColorStop:=clGreen;
    end
   else if   (Power.BatteryLifePercent<40) and (Power.BatteryLifePercent>=10) then
    begin
       RzProgressStatus1.BarColor:=clYellow;
       RzProgressStatus1.BarColorStop:=clOlive;
    end
   else if Power.BatteryLifePercent<10 then
    begin
       RzProgressStatus1.BarColor:=clRed;
       RzProgressStatus1.BarColorStop:=clMaroon;
    end;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.RzProgressStatus1MouseDown(Sender: TObject;
   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
//为控件添加拖动事件,使其可以被拖动
ReleaseCapture;
SendMessage(Handle, WM_SYSCOMMAND, 61457, 0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  //指定显示位置..桌面右下角
   Form1.Left:=Screen.Width-RzProgressStatus1.Width+2;
   Form1.Top:=Screen.Height-RzProgressStatus1.Height-29;
end;

end.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值