M
@Xqgene
Danke, vielen Dank Xqgene für deine letzte Bemerkung. Deine Lösung funktioniert natürlich, der Fehler lag auf meiner Seite. Ich hab die Ereignisroutine, erst nachdem ich die Kinder erzeugt hatte dem Vater zugewiesen und das kann ja dann nicht gehen.
Sorry.
Ich stell hier nochmal die Komplettlösung rein:
Problem: Ereignis vom Kind an den Vater übergeben.
Lösung:
die Vater-Komponente
//** MyKompo.cpp
//---------------------------------------------------------------------------
// KONSTRUKTOR
//---------------------------------------------------------------------------
__fastcall TMyKompo::TMyKompo(TComponent* Owner): TPanel(Owner)
{
Parent = (TWinControl*)Owner;
TForm *Formular = (TForm*)Owner;
if (Parent)
{
//** Fürs Auge
Height = 250;
Width = 400;
//-- HIER
OnMouseDown = MyOnMOuseDown;
// SubKompo1 erzeugen
SubKompo1 = new TSubKompo(this);
SubKompo1->Parent = this;
SubKompo1->Align = alBottom;
SubKompo1->Color = clRed;
// SubKompo2 erzeugen
SubKompo2 = new TSubKompo(this);
SubKompo2->Parent = this;
SubKompo2->Align = alClient;
SubKompo2->Color = clBlue;
// Tasten zuerst ans Form und Komponente hat den Focus
Formular->KeyPreview = true;
Formular->ActiveControl = this;
}
}
//---------------------------------------------------------------------------
// DESTRUKTOR
//---------------------------------------------------------------------------
__fastcall TMyKompo::~TMyKompo()
{
delete SubKompo1;
SubKompo1 = 0;
delete SubKompo2;
SubKompo2 = 0;
}
void __fastcall TMyKompo::MyOnMouseDown(TObject* Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{
ShowMessage("Hier");
}
//** MyKompo.h
#include <vcl.h>
#include "SubKompo.h"
class TMyKompo : public TPanel
{
public:
__fastcall TMyKompo(TComponent* Owner); // Konstruktor
__fastcall ~TMyKompo(); // Destruktor
void __fastcall MyOnMOuseDown(System::TObject* Sender, TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
TSubKompo *SubKompo1;
TSubKompo *SubKompo2;
};
So und noch die Kind-Kompo
//**SubKompo.cpp
//---------------------------------------------------------------------------
// KONSTRUKTOR
//---------------------------------------------------------------------------
__fastcall TSubKompo::TSubKompo(TComponent* Owner): TLabel(Owner)
{
Parent = dynamic_cast<TPanel*>(Owner);
//-- Gibt es einen Parent?
if (Parent)
{
//-- HIER
OnMouseDown = Parent->OnMouseDown;
}
}
Nochmals Vielen Dank Xqgene