您的位置:首页 > 其它

简单电池电量显示

2009-03-17 11:22 417 查看
闲来无事...做了个小东西

显示电池电量而已



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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: