Главная страница
    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.045 c
15-1196157580
All More system
2007-11-27 12:59
2007.12.23
Архивация потока/строк в режиме реалнього времени


4-1180950245
TCrash
2007-06-04 13:44
2007.12.23
Сообщение WM_USER_PREPARE_TO_CLOSE


2-1196059598
nika
2007-11-26 09:46
2007.12.23
createprocess


15-1196087452
DVM
2007-11-26 17:30
2007.12.23
Глюк с дизайнером меню в Delphi 2007. Это только у меня? Или нет?


2-1195824372
Student00
2007-11-23 16:26
2007.12.23
вызов процедур из модуля, delphi





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский