Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
ВнизНаконец-то вопрос по теме сайта)) Найти похожие ветки
← →
lookin © (2007-11-24 22:35) [0]Решил задать очередной возникший у меня вопрос. Предположим, есть TChart и есть некий компонент, работающий с этим TChart. Этот компонент желал бы переопределить (а точнее, расширить) метод, например, TChartClickBackground. Скажем, у TChart (у его экземпляра) уже определен метод ClickBackground, например, на клике по фону чарта программа выдает Showmessage("First"). Компонент хотел бы лишь добавить при клике на фон второе сообщение в виде Showmessage("Second") в этот обработчик, не портя исходного. Т.е. так, чтобы появлялись оба сообщения. У компонента есть дизайн-тайм свойство Chart, которое назначается просто приравниванием FChart:=AChart в процедуре-описании этого свойства Chart (то бишь, это лишь указатель на AChart, а не сам объект AChart). Вопрос - можно ли это реализовать сразу в рамках компонента, а не в процедуре ChartBackgroundClick объекта TChart в программе, и если да, то как? Мои попытки почему-то оказались наполовину успешные, а наполовину нестабильные (в плане вылета с ошибками типа AV)... Заранее спасибо)
ПС Написал сюда, а не в тему "Компоненты", лишь потому, что тут народу сейчас поболее... За что и прошу прощения у модераторов...
← →
turbouser © (2007-11-25 01:58) [1]
> Мои попытки почему-то оказались наполовину успешные
Интересно, каким образом?
В идале - делаем наследника, перекрываем OnChartBackgroundClick
и творим что хотим. Однако у меня не получилось. Нет chart.pas
и не понятно в где и как этот метод реализован.
← →
lookin © (2007-11-25 03:22) [2]> [1] turbouser © (25.11.07 01:58)
я сделал не совсем так...
← →
lookin © (2007-11-25 03:26) [3]вот то, что я наппсал в компоненте
type TChartClickBackgroundReserved = procedure(Sender: TCustomChart;
Button: TMouseButton; Shift: TShiftState;
X, Y: Integer) of object;
procedure TEqapSeriesTool.SetChart(Value: TChart);
begin
FChart:=Value;
if not (csDesigning in ComponentState) then begin
if Assigned(FChart) then begin
ChartClickBackgroundReserved:=FChart.OnClickBackground;
FChart.OnClickBackground:=ChartClickBackground; end; end;
end;
procedure TEqapSeriesTool.ChartClickBackground(Sender: TCustomChart;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
showmessage("zzz");
ChartClickBackgroundReserved(Sender,Button,Shift,X,Y);
end;
← →
Johnmen © (2007-11-25 03:32) [4]
> lookin ©
Пеши исчо!
ЗЫ
Прежде, чем писАть, надо думать. (с)
← →
KilkennyCat © (2007-11-25 04:54) [5]
> Прежде, чем писАть, надо думать
Зачем?!
← →
lookin © (2007-11-25 05:03) [6]> [4] Johnmen © (25.11.07 03:32)
Здравую критику всегда выслушаю...
← →
lookin © (2007-11-25 05:08) [7]> [4] Johnmen © (25.11.07 03:32)
Хм, нездравую, типа "Пеши исчо", лучше не буду выслушивать...)
← →
antonn © (2007-11-25 12:15) [8]
> Johnmen © (25.11.07 03:32) [4]
>
>
> > lookin ©
>
> Пеши исчо!
>
> ЗЫ
> Прежде, чем писАть, надо думать. (с)
>
есть что сказать - скажите :)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c