AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Nachricht senden

Ein Thema von GroHae · begonnen am 29. Aug 2007 · letzter Beitrag vom 29. Aug 2007
Antwort Antwort
GroHae

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

Nachricht senden

  Alt 29. Aug 2007, 10:46
Hallo zusammen,

ich habe von TForm ein Ableitung gemacht

Delphi-Quellcode:
type

  TFibuWin = class(TForm)
  private
    tlbrFirmenauswahl: TToolBar;
    FFMToolbutton: TToolbutton;
    STBToolbutton: TToolbutton;
    TMAToolbutton: TToolbutton;
    SGSToolbutton: TToolbutton;
    BFTToolbutton: TToolbutton;
  ...


// ----------------------------
// 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);
end;
Dann gibt es ein TfrmDebitoren = class(TFibuWin).

Wie kann ich dafür sorgen, dass Wenn ein ToolButton gedrückt wird, mein frmDebitor eine Nachricht bekommt. Im Moment behelfe ich mir mit dem Trick, dass ich das Ereignis OnMouseEnter vom frmDebitor verwende.

Anders ausgedrückt: Wie kann ich ein Ereignis erstellen OnToolButtonPress erstellen?
Grüße

Thomas
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#2

Re: Nachricht senden

  Alt 29. Aug 2007, 10:49
Zitat von GroHae:
Anders ausgedrückt: Wie kann ich ein Ereignis erstellen OnToolButtonPress erstellen?
Ein TToolbutton hat doch das Event 'OnClick'
  Mit Zitat antworten Zitat
GroHae

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

Re: Nachricht senden

  Alt 29. Aug 2007, 11:05
Das OnClick verwende ich ja schon um TToolbutton hat doch das Event 'OnClick' SetActWindowFirma() aufzurufen

    BFTToolbutton.OnClick := SetActWindowFirma; Aber könnte ja eine eine Methode
ButtonPressed; virtual; abstract;
erstellen, welche ich dann im eigentlichen Fenster frmDebitor überschreiben muss

Mal Ausprobieren...
Grüße

Thomas
  Mit Zitat antworten Zitat
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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz