2016-03-23 5 views
1

Ich schreibe eine Komponente, die wenige Komponenten enthalten.Ereignis von interner Komponente propagieren

Ich möchte in der Lage sein, das Ereignis von der Komponente (TPanel) auf das enthaltene fGrid zu propagieren. Wie kann ich dieses Ziel erreichen?

Ich denke, ich sollte ein Ereignis mit dem gleichen Typ auf dem TPanel (als Container-Komponente) deklarieren. Wie breitet man sich dann in das fGrid aus?

+0

Ich gehe davon aus, meine Antwort ist, was Sie gesucht haben, aber es ist ein wenig verwirrend, dass Sie scheinen, die Ausbreitung rückwärts zu beschreiben. Sie propagieren nicht vom Panel zum Raster, sondern vom Raster zum Panel. –

+0

Sie haben Recht. In der Tat ... Ich möchte ein Ereignis in meinem TPanel haben, das aufgerufen wird, nachdem das DBGrid.OnCellClick-Ereignis ausgelöst wurde. Um den Code auszuführen, setze ich mein TPanel.OncellClick Event ein. – ffert2907

Antwort

6

Es ist ein wenig unklar, was Sie fragen, aber basierend auf dem Code, den ich sehen, einen Event-Handler schreiben und es an das Netz zuweisen ...

procedure TMyComponent.DBGridCellClicked(Column: TColumn); 
begin 
    if Assigned(fOnCellClick) then 
    fOnCellClick(Column); 
end; 

constructor TMyComponent.Create(AOwner: TComponent); 
begin 
    inherited; 
    fGrid := TExCustomDBGrid.Create(self); 
    fGrid.Parent := self; 
    fGrid.Align := alClient; 
    fGrid.OnCellClick := DBGridCellClicked; 
end; 
+0

Es funktioniert einwandfrei – ffert2907

Verwandte Themen