jeg har fundet en løsning
1- man skjuler den oprindelige event, så den ikke kommer med i den klasse men selv laver. Altså programmøren som bruger den deriverede klasse vil ikke kunne bruge den event. For at skjule en event se:
http://www.eksperten.dk/spm/5049162- man assigner selv den skjulte event (in dette tilfælde OnExecSQL) til en procedure (i dette tilfælde har jeg kaldt den DoBeforeExecSQL)
nu er det sådan at hver gang den oprindelige event (OnExecSQL) bliver trigget, kalder den proceduren DoBeforeExecSQL (som jo er en method). En programmører der bruger komponentet kan ikke lave om på dette, idet han ikke kan assigner noget til den oprindelige event OnExecSQL (se ovenævnte link for at forstå hvorfor).
3- Tilsidst laver jeg en ny event: BeforeExecSQL, som bliver kaldt fra DoBeforeExecSQL. Og mission accomplished
grunden til at jeg laver en method: DoBeforeExecSQL, og ikke bare kalder BeforeExecSQL direkte fra OnExecSQL, er:
at, hvis jeg senere fik bruge for at derivere endnu en klasse og fik brug for at ændre i dens event, så kan jeg jo bare override DoBeforeExecSQL og ikke køre alt det jeg nu kørte endnu engang.