unit uFenster;
// ***********************************************************************
// K L A S S E : TLampenGUI
// -----------------------------------------------------------------------
// Version : 1.3
// Autor : S. Spolwig, 2005
// nach einer Vorlage von Christian Steinbrucker, OSZ TIEM, Berlin
// Aufgabe : GUI fuer die Taschenlampe
// Compiler : DELPHI 6
// Aenderung: V. 1.0 - 26-AUG-05 TTaschenlampe
// 1.1 - 27-AUG-05 TLampe ausgelagert
// 1.2 - 06-SEP-05 TBatterie ausgelagert, liefert konst. Spannung
// TGluehlampe - Unterklasse
// 1.3 - 01-OKT-05 Spannung und Helligkeit sinken
// ***********************************************************************
interface
// =======================================================================
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,ComCtrls,
uTaschenlampe;
type
TLampenGUI = class(TForm)
GehaeusePnl : TPanel;
LampenShp : TShape;
AufschriftLbl : TLabel;
SchalterUpDown: TUpDown;
LaufzeitTm : TTimer;
procedure FormCreate(Sender: TObject);
procedure SchalterUpDownClick(Sender: TObject; Button: TUDBtnType);
procedure LaufzeitTmTimer(Sender: TObject);
private
procedure Darstellen(TLa : TTaschenlampe);
end;
var
LampenGUI : TLampenGUI;
Taschenlampe: TTaschenlampe;
implementation
{$R *.dfm}
// =======================================================================
procedure TLampenGUI.FormCreate(Sender: TObject);
// -----------------------------------------------------------------------
begin
AlphaBlend := true; // nur wenn es flackert ///////////////
Taschenlampe := TTaschenlampe.Create;
end;
procedure TLampenGUI.SchalterUpDownClick(Sender: TObject; Button: TUDBtnType);
// -----------------------------------------------------------------------
begin
if (SchalterUpDown.Position >= 1)
then
begin
Taschenlampe.Einschalten;
SchalterUpDown.Position := 0
end
else Taschenlampe.Ausschalten;
Darstellen (Taschenlampe);
end;
Procedure TLampenGUI.Darstellen (TLa : TTaschenlampe);
// -----------------------------------------------------------------------
// Auftrag: anbnehmende Helligkeit mit RGB-Farben steuern; Timer starten,
// wenn nicht leuchtet, dann Timer abstellen
// vorher : TLa leuchtet
// nachher: Helligkeit angezeigt
// -----------------------------------------------------------------------
var
H : double;
rot,gruen, blau : TColor;
Begin
If TLa.Leuchtet = true
then
begin
LaufzeitTm.Enabled := true;
H := TLa.GetHelligkeit;
rot := Round (255 * H/100);
gruen := Round (255 * H/100);
blau := Round ( 0 * H/100) + 10; // etwas nach grau hin korrigieren
LampenShp.brush.color := RGB(rot,gruen,blau);
end
else
begin
LampenShp.brush.color := RGB(0,0,0);
LaufzeitTm.Enabled := false;
end;
End;
procedure TLampenGUI.LaufzeitTmTimer(Sender: TObject);
// -----------------------------------------------------------------------
begin
Darstellen (Taschenlampe);
end;
END. // -------- UNIT -------------. |