Главная страница
    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.046 c
2-1196405007
ardent
2007-11-30 09:43
2007.12.23
table order


15-1195944028
Суслик
2007-11-25 01:40
2007.12.23
Некие новости о Delphi


1-1191691397
Андрей_Св
2007-10-06 21:23
2007.12.23
разрезание StringGrid по листам


15-1196121599
Германн
2007-11-27 02:59
2007.12.23
Опять offtop, но не могу сдержаться.


2-1196023535
Бэтман
2007-11-25 23:45
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский