unit FibuWindow;
interface
uses
SysUtils, Classes, Controls, Forms, ComCtrls, ExtCtrls;
type
TFibuWin =
class(TForm)
private
tlbrFirmenauswahl: TToolBar;
FFMToolbutton: TToolbutton;
STBToolbutton: TToolbutton;
TMAToolbutton: TToolbutton;
SGSToolbutton: TToolbutton;
BFTToolbutton: TToolbutton;
FFFM: boolean;
FSTB: boolean;
FTMA: boolean;
FSGS: boolean;
FBFT: boolean;
procedure SetFirmaChg(
const Value: boolean);
function GetFirmaChg : boolean;
procedure SetFFM(
const Value: boolean);
procedure SetBFT(
const Value: boolean);
procedure SetSGS(
const Value: boolean);
procedure SetSTB(
const Value: boolean);
procedure SetTMA(
const Value: boolean);
protected
FFirmaChg : boolean;
ActFirmenStr :
string;
BreiteButtom : integer;
procedure ButtonPressed;
virtual;
abstract;
// Muss überschrieben werden, damit die Daten der Firma gelesen werden
procedure SetActWindowFirma(Sender: TObject);
// ruft ButtonPressed
procedure SetLeftFirmenauswahl;
function GetActWindowFirma :
string;
public
constructor Create(AOwner: TComponent);
override;
property FirmaChg : boolean
read GetFirmaChg
write SetFirmaChg;
property FFM: boolean
write SetFFM;
property TMA: boolean
write SetTMA;
property STB: boolean
write SetSTB;
property SGS: boolean
write SetSGS;
property BFT: boolean
write SetBFT;
end;
implementation
uses Graphics;
{ TFibuWin }
// ----------------------------
// Erstellen des Frames mit den Schalten für die einzelnen Firmen
// ----------------------------
constructor TFibuWin.Create(AOwner: TComponent);
begin
inherited create(AOwner);
// Toolbar für die einzelnen Firmen
tlbrFirmenauswahl := TToolBar.Create(Self);
tlbrFirmenauswahl.Parent := Self;
tlbrFirmenauswahl.Top := 0;
tlbrFirmenauswahl.Left := Self.Width - 30;
tlbrFirmenauswahl.Height := 25;
tlbrFirmenauswahl.Width := 5;
tlbrFirmenauswahl.Color := clSkyBlue;
tlbrFirmenauswahl.Align := alNone;
tlbrFirmenauswahl.Anchors := [akTop,akRight];
tlbrFirmenauswahl.ShowCaptions := true;
tlbrFirmenauswahl.Show;
BreiteButtom := 30;
FFFM := false;
FSTB := false;
FTMA := false;
FSGS := false;
FBFT := false;
end;
// ----------------------------
// Rückgabe der aktuellen Firma
// ----------------------------
function TFibuWin.GetActWindowFirma:
string;
begin
result := ActFirmenStr;
end;
// ----------------------------
// Rückgabe ob die aktuelle Firma gewechselt wurde
// ----------------------------
function TFibuWin.GetFirmaChg: boolean;
begin
result := FFirmaChg;
end;
// ----------------------------
// Wird aufgerufen, wenn auf einen der Buttons geklickt wird.
// ----------------------------
procedure TFibuWin.SetActWindowFirma(Sender: TObject);
begin
if Sender
is TToolButton
then begin
ActFirmenStr := TToolbutton(Sender).Caption;
end;
SetFirmaChg(true);
ButtonPressed;
end;
// ----------------------------
// Frmenwechsel setzen. Aktuelle Firma hat sich geändert
// ----------------------------
procedure TFibuWin.SetFirmaChg(
const Value: boolean);
begin
FFirmaChg := Value;
end;
// ---------------------------
// Firma einschalten und ToolButton für BFT erstellen
// ---------------------------
procedure TFibuWin.SetBFT(
const Value: boolean);
begin
FBFT := Value;
// Schalter für BFT
if FBFT
then
begin
tlbrFirmenauswahl.Width := tlbrFirmenauswahl.Width + BreiteButtom;
BFTToolbutton := TToolbutton.Create(self);
BFTToolbutton.Caption := '
BFT';
BFTToolbutton.Parent := tlbrFirmenauswahl;
BFTToolbutton.OnClick := SetActWindowFirma;
BFTToolbutton.Show;
SetLeftFirmenauswahl;
end;
end;
// ---------------------------
// Firma einschalten und ToolButton für FFM erstellen
// ---------------------------
procedure TFibuWin.SetFFM(
const Value: boolean);
begin
FFFM := value;
// Schalter für FFM
if FFFM
then
begin
tlbrFirmenauswahl.Width := tlbrFirmenauswahl.Width + BreiteButtom;
FFMToolbutton := TToolbutton.Create(self);
FFMToolbutton.Caption := '
FFM';
FFMToolbutton.Parent := tlbrFirmenauswahl;
FFMToolbutton.OnClick := SetActWindowFirma;
FFMToolbutton.Show;
SetLeftFirmenauswahl;
end;
end;
// ---------------------------
// Firma einschalten und ToolButton für SGS erstellen
// ---------------------------
procedure TFibuWin.SetSGS(
const Value: boolean);
begin
FSGS := Value;
// Schalter für SGS
if FSGS
then
begin
tlbrFirmenauswahl.Width := tlbrFirmenauswahl.Width + BreiteButtom;
SGSToolbutton := TToolbutton.Create(self);
SGSToolbutton.Caption := '
SGS';
SGSToolbutton.Parent := tlbrFirmenauswahl;
SGSToolbutton.OnClick := SetActWindowFirma;
SGSToolbutton.Show;
SetLeftFirmenauswahl;
end;
end;
// ---------------------------
// Firma einschalten und ToolButton für STB erstellen
// ---------------------------
procedure TFibuWin.SetSTB(
const Value: boolean);
begin
FSTB := Value;
// Schalter für STB
if FSTB
then
begin
tlbrFirmenauswahl.Width := tlbrFirmenauswahl.Width + BreiteButtom;
STBToolbutton := TToolbutton.Create(self);
STBToolbutton.Caption := '
STB';
STBToolbutton.Parent := tlbrFirmenauswahl;
STBToolbutton.OnClick := SetActWindowFirma;
STBToolbutton.Show;
SetLeftFirmenauswahl;
end;
end;
// ---------------------------
// Firma einschalten und ToolButton für TMA erstellen
// ---------------------------
procedure TFibuWin.SetTMA(
const Value: boolean);
begin
FTMA := Value;
// Schalter für TMA
if FTMA
then
begin
tlbrFirmenauswahl.Width := tlbrFirmenauswahl.Width + BreiteButtom;
TMAToolbutton := TToolbutton.Create(self);
TMAToolbutton.Caption := '
TMA';
TMAToolbutton.Parent := tlbrFirmenauswahl;
TMAToolbutton.OnClick := SetActWindowFirma;
TMAToolbutton.Show;
SetLeftFirmenauswahl;
end;
end;
// ---------------------------
// Linke Position der Firmenauswahl setzen
// ---------------------------
procedure TFibuWin.SetLeftFirmenauswahl;
begin
tlbrFirmenauswahl.Left := Self.Width - tlbrFirmenauswahl.Width;
end;