Thema: Delphi Nachricht senden

Einzelnen Beitrag anzeigen

GroHae

Registriert seit: 19. Apr 2007
Ort: Nabburg
83 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Nachricht senden

  Alt 29. Aug 2007, 11:25
Klappt

Danke für den Gedankenanstoß

Ich stell mal meinen Quellcode rein. Das erste mal dass ich sowas programmiere.

Wenn wer Verbesserungsvorschläge hat, nur zu!


Delphi-Quellcode:

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;
Grüße

Thomas
  Mit Zitat antworten Zitat