Newsgroup: it.comp.lang.delphi
Titolo: NotifyEvent di qualche post  fa

dello stesso tipo
Self.Frame.FrameEvents := Self.FrameEvents;
6) Il frame, sul click del pulsante fara una cosa del tipo:
if (assigned(FrameEvents)) and  (Assigned(FrameEvents.OnFirstButton))
then
begin
  FrameEvents.OnFirstButton(Sender);
end;
7a) Sulla OnDestroy del form fai la free di FrameEvents
** 7b) In alterativa, dichiari un tuo distruttore per il form nel
quale fai la free di FrameEvents.

Ho provato con un'altro test, ma ho sempre il problema in compilazione
E2009 incompatrible types "Parameter lists differ"
La logica mi pare corretta:
1) ho un evento associato al pulsante1  - FOnPulsante1: TNotifyEvent;
2) espongo tramite property - property OnPulsante1: TNotifyEvent read 
FOnPulsante1 write FonPulsante1;
3) associo l'evento OnClick del pulsante - OnPulsante1 := SpeedButton1Click;
nel form, nel OnCreate associo la property del Frame ad un metodo del form 
stesso.
 clFrame.OnPulsante1 := TestPulsante;
ma continuo a non capire l'errore.
Maurizio
---------------
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit2;
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    clFrame: Tframe2;
    procedure TestPulsante;
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
  clFrame := Tframe2.Create(self);
  clFrame.Parent := Form1;
  clFrame.Align := alTop;
  //clFrame.OnPulsante1 := Self.TestPulsante;
 clFrame.OnPulsante1 := TestPulsante;
  clFrame.Show;
end;
procedure TForm1.TestPulsante;
begin
  ShowMessage('Pulsante 1');
end;
end.
-----------------------
unit Unit2;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, ExtCtrls;
type
  TFrame2 = class(TFrame)
    Panel1: TPanel;
    SpeedButton1: TSpeedButton;
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
    FOnPulsante1: TNotifyEvent;
  public
    { Public declarations }
    property OnPulsante1: TNotifyEvent read FOnPulsante1 write FonPulsante1;
  end;
implementation
{$R *.dfm}
{ TFrame2 }
procedure TFrame2.SpeedButton1Click(Sender: TObject);
begin
  OnPulsante1 := SpeedButton1Click;
end;
end. 

 ma continuo a non capire l'errore.
sorvolo il tuo codice.....cio� in parte.
Ho letto il suggerimento di Alberto ( nei post indietro ) e da come ho
capito, lui l'ha adottato per
un caso molto specifico che non so esattamente se ti riguardi.
Forse non ho capito a fondo il tuo problema ed ora magari ti sto dicendo una
caxxata, ma se da questo
tuo ultimo codice elimini la propriet� che hai dichiarato, ( nella classe
TFrame2 dell'unit2 )
elimini il metodo SpeedButton1Click associato all'evento OnClick dello
SpeedButton e, nella
Unit1 dove hai scritto :
clFrame.OnPulsante1 := TestPulsante;
scrivi :
clFrame.SpeedButton1.OnClick:=TestPulsante;
e dichiari TestPulsante in questa maniera ( e non come hai fatto tu ) :
procedure TestPulsante(Sender:TObject);
e nell'implementazione avrai :
procedure TForm1.TestPulsante(Sender:TObject);
begin
  ShowMessage('Pulsante 1');
end;
il risultato che ottieni � che quando clicchi sullo SpeedButton del frame,
verr� automaticamente richiamato
TestPulsante e quindi il codice contenuto.
Ricordati di eseguire il Free di clFrame che non mi pare di aver visto nel
tuo codice.
Credo di non dimenticare nulla. Se ho capito il tuo problema dovresti
risolvere, altrimenti lascio le critiche
con la soluzione agli amici sul forum.
Ciao e buona giornata.
Antonio

>[...]
Il test riguardava la possibilita' di applicare TNotifyEvent ad una ToolBar, 
che ora e'
gestita eriditando un frame che contiene la ToolBar.
del parametro Sender mi ero accorto TestPulsante(Sender:TObject); , quello 
che proprio
non avevo capito era, come da te detto di richiamare l'evento OnClick.
  clFrame.SpeedButton1.OnClick := TestPulsante;
ora ho capito come usare un TNotifyEvent , grazie davvero.