![]() |
Nachricht senden
Hallo zusammen,
ich habe von TForm ein Ableitung gemacht
Delphi-Quellcode:
Dann gibt es ein TfrmDebitoren = class(TFibuWin).
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; 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? |
Re: Nachricht senden
Zitat:
|
Re: Nachricht senden
Das OnClick verwende ich ja schon um TToolbutton hat doch das Event 'OnClick' SetActWindowFirma() aufzurufen
Delphi-Quellcode:
:idea: Aber könnte ja eine eine Methode
BFTToolbutton.OnClick := SetActWindowFirma;
ButtonPressed; virtual; abstract; erstellen, welche ich dann im eigentlichen Fenster frmDebitor überschreiben muss Mal Ausprobieren... |
Re: Nachricht senden
Klappt :-D
Danke für den Gedankenanstoß :thumb: 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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz