Доброго времени суток!
По клику на кнопку создаю новый 'TabSheet', далее в нём создаю новый экземпляр компонента 'SynEdit'.
Присваиваю обработчику 'OnGutterClick' этого компонента свою процедуру 'myGutterClick'.
Когда создан один экземпляр 'SynEdit', то всё отрабатывает нормально. Но стоит создать ещё несколько
экземпляров SynEdit-а (несколько табов), то мой обработчик события отрабатывает только на последнем
созданном SynEdit-е.
В интернете описываются случаи или с назначением на всего один экземпляр компонента (как правило кнопки)
или приводятся такие примеры, что пока "тёмный лес" для меня...
Как правильно назначать обработчики событий для SynEdit-а, когда динамически создаются
несколько его экземпляров ?
Мой код примера:
Код:
// кнопка
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
ts : TTabSheet;
sed : TSynEdit;
begin
with PageControl1 do
begin
// создаём новый таб
ts := TTabSheet.Create(Self);
ts.PageControl := PageControl1;
ts.Caption := 'TabSheet' + IntToStr(PageCount);
// создаём новый экземпляр 'SynEdit'
sed := TSynEdit.Create(ts);
sed.Parent := ts;
// присваиваем обработчик события
sed.OnGutterClick := myGutterClick;
end;
end;
// моя процедура для события 'OnGutterClick'
procedure TForm1.myGutterClick(Sender: TObject; Button: TMouseButton; X, Y, Line: Integer; Mark: TSynEditMark);
begin
...
код
...
end;