Status Bar

 

         Hasznos lehet programjainkban, ha futás közben bizonyos információk állandóan láthatók a képernyőn. Erre a legkézenfekvőbb megoldás a form alján a státuszsor (Status Bar). Ebben a projectben létrehozunk egy státuszsort, és benne megjelenítünk a program futása szempontjából lényeges információkat.

 

         A project szokásos előkészítése után a főformra helyezzünk el egy StatusBar-t a Win32 palettáról. Az elem a form alsó részében, teljes szélességben, egy alapértelmezett karakternyi vastagságban jelenik meg, kerettel, jobb alsó csúcsánál átméretező ikonnal, ha a látvány nem a teljes képernyő. A StatusBar neve legyen stMinta. Kettős kattintással juthatunk a StatusBar Panelszerkesztőjébe.

 

 

         Az első Ikonja segítségével a StatusBar-ba paneleket szúrhatunk, a másodikkal törölhetünk. A nyilak segítségével a paneleken mozoghatunk. A panel szélességét a Width tulajdonsága tartalmazza, mely szükség szerint módosítható. Szúrjunk be 4 panelt (0-3), és állítsunk be a szélességeket: 100, 80, 60, 40. (Az utolsó szélességi érték mindig a maradék lesz, a beállított értéktől függetlenül.) A szélességek a form megjelenítési méreteitől nem függnek, ha valamely panel már nem fér a form ablakába, akkor nem látszik.

 

 

A panelek legfontosabb tulajdonsága a Text. Ide beírhatjuk azokat az információkat, amelyet a program futása alatt látni szeretnénk. A 0. panelen például jelenjen meg a következő: Felhasználó: admin. A következőben jelenítsük meg a CapsLock állapotát, a harmadikban a program indításától eltelt időt, a negyedikben a gépi dátumot és időt. Ez utóbbiak csak futási időben értelmezhetők, ezért ehhez kódolásra van szükség. Mivel a megjelenített információk időben változnak (változhatnak), ezért a megjelenítést időzítőre bízzuk. Helyezzünk a formra egy időzítőt a System palettáról. Nevezzük el tmIdozito-nek. Az időzítő Interval tulajdonságát ne változtassuk meg (1000), így a StatusBar másodpercenként fog frissülni. Az időzítő feladatát a listába az időzítőn történő kettős kattintással generálódott szakaszban kell elhelyezni. A kódot a project listájából kiolvashatjuk.

 

A program futási képe:

 

 

         A program listája:

 

unit UStatusBar;

interface

uses
  Windows, MessagesSysUtilsVariantsClasses,

  GraphicsControlsForms,
  DialogsComCtrlsExtCtrls;

type
  TfmStatusBar = class(TForm)
    stMintaTStatusBar;
    tmIdozitoTTimer;
    procedure tmIdozitoTimer(SenderTObject);
    procedure FormCreate(SenderTObject);
  private
    Private declarations }
  public
    Public declarations }
  end;

var
  fmStatusBarTfmStatusBar;
  Start: TDateTime;

implementation

{$R *.dfm}

procedure TfmStatusBar.FormCreate(SenderTObject);
begin
  Start:= Now;
end;

procedure TfmStatusBar.tmIdozitoTimer(SenderTObject);
begin
  With stMinta Do
  Begin
    If Odd(GetKeyState(VK_CAPITAL)) Then Panels[1].Text:='CAPS bekapcs'
    Else Panels[1].Text:='';
    Panels[2].Text:= TimeToStr(Start-Now);
    Panels[3].Text:= DateToStr(Now)+' / '+TimeToStr(Now);
  End;
end;

end.