简单电池电量显示

闲来无事...做了个小东西显示电池电量而已

 

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<40and (Power.BatteryLifePercent>=10then
    
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, 
614570);
end;

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

end.

posted @ 2009-03-17 11:22  LAHCS  阅读(1252)  评论(2编辑  收藏  举报