Es muß nichtmal am OnGradientChange liegen, denn dieses wird auch nochmal im OnColorChange aufgerufen.
Delphi-Quellcode:
Procedure TMyForm.MyFormInitialize;
Begin
MyControl.OnDoSomething := MyFormDoSomethingEventHandler;
// ... more init stuff here
End;
Procedure TMyForm.FormActivate(Sender : TObject);
Begin
if not FInitialized Then MyFormInitialize;
FInitialized := True;
End;
Also entweder das Event später dranhängen
oder es ignorieren (innerhalb der Komponente oder im Event)
Delphi-Quellcode:
procedure TGradientDialog.GradientChange(Sender: TObject);
var
I: Integer;
A: TColorArray;
begin
if FUpdate or not Assigned(cbReverse) then Exit;
Delphi-Quellcode:
procedure TGradientDialog.GradientChange(Sender: TObject);
var
I: Integer;
A: TColorArray;
begin
if FUpdate or not Assigned(cbReverse) then Exit;
Es wird ja am Ende sowieso aufgerufen, also kann man es auch einfach überspringen, ohne etwas zu beachten.
TGradientDialog.Create => ColorChange => GradientChange