Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1195569942
Stanislav_
2007-11-20 17:45
2007.12.23
Админу


15-1195788241
Slider007
2007-11-23 06:24
2007.12.23
С днем рождения ! 23 ноября 2007 пятница


2-1196165148
ImA
2007-11-27 15:05
2007.12.23
Paradox в меня не понимать =)


15-1195544501
DelphiN!
2007-11-20 10:41
2007.12.23
VCL c потдержкой Unicode для Delphi6


15-1196144491
chem
2007-11-27 09:21
2007.12.23
Экспертная система (Химия)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский