Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2018, 18:24   #1
diakin
 
Регистрация: 20.04.2007
Сообщений: 6
По умолчанию sender

Hi,All!
Непонятно, так и должно не работать?
Есть одна форма с chart1 и другая форма с chart1
Есть процедура
procedure RunSpkClick(Sender: TObject); //
в которой производится обработка и вывод графика на chart.
Хотелось бы вызывать как-то так

FormIzm1.RunSpkClick(FormB11); // из формы FormB11
или
FormIzm1.RunSpkClick(FormIzm1); // из формы FormIzm1

а внутри писать так например
...
Sender.Chart1.Series[3].Clear;

чтобы работа происходила с chart из вызвавшей формы

Но что-то ругается на Sender.Chart1 - undeclared identifier Chart1
---------
Понятно, что можно проверять
if sender=FormB11 then
FormB11.Chart1.Series[3].Clear;
else if sender=FormIzm1 then
FormIzm1.Chart1.Series[3].Clear;
итд

но хотелось бы покороче Sender.Chart1.Series[3].Clear;
Почему так не работает? Может из-за какой ерунды?
WBR, Andrew
diakin вне форума Ответить с цитированием
Старый 08.01.2018, 18:33   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Потому что в TObject нет ваших полей.
p51x на форуме Ответить с цитированием
Старый 08.01.2018, 18:41   #3
diakin
 
Регистрация: 20.04.2007
Сообщений: 6
По умолчанию

То есть остается проверять?
if sender=FormB11 then
??
WBR, Andrew
diakin вне форума Ответить с цитированием
Старый 08.01.2018, 18:43   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Передавай Chart1 параметром, а в процедуре обращайся так например TChart(Sender).Series[3].Clear;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.01.2018, 18:44   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну если ООП вы совсем не знаете, то да... А так предок с полями, наследование и as.
p51x на форуме Ответить с цитированием
Старый 08.01.2018, 20:44   #6
diakin
 
Регистрация: 20.04.2007
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Передавай Chart1 параметром, а в процедуре обращайся так например TChart(Sender).Series[3].Clear;
С параметрами наверное разумней всего. По крайней мере не как сейчас - для каждой формы своя процедура, отличающаяся только чартами )))
Спасибо за ответ.
WBR, Andrew
diakin вне форума Ответить с цитированием
Старый 08.01.2018, 20:47   #7
diakin
 
Регистрация: 20.04.2007
Сообщений: 6
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Ну если ООП вы совсем не знаете, то да... А так предок с полями, наследование и as.
Ой, нет, это слишком сложно. ) Да и смысл какой.
WBR, Andrew
diakin вне форума Ответить с цитированием
Старый 09.01.2018, 10:03   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

сага X-Y-Z
опишите задачу БЕЗ "хочу вызывать".
есть две формы
1. у них есть одинаковые Chart
2. и есть РАЗНЫЕ ....
3. надо по разным ... одинаково заполнить chart(построить ОДИНАКОВЫЙ график).

а так
1.делаем FrameX
1.1.на него Chart
1.2. пишем одну и более
Код:
procedure RunChart1  
procedure RunChart2
....
2. делаем две и более Form
2.1. на каждую из них ранее сделанный FrameX
2.2. из каждой формы делаем нужный вызов
Код:
  self.frameX1.runChart?
P.S. возможно с передачей как параметра ФУНКЦИИ РАСЧЕТА.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 09.01.2018, 15:16   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Чо б не передавать Series как параметр-то, бть?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 11.01.2018, 23:25   #10
diakin
 
Регистрация: 20.04.2007
Сообщений: 6
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
сага X-Y-Z
опишите задачу БЕЗ "хочу вызывать".
есть две формы
1. у них есть одинаковые Chart
...
Да, есть две формы, есть процедура которая выводит результаты вычислений в chart. По нажатию кнопки на форме 1 - результаты должны выводиться в chart на форму 1, на кнопку в форме 2 - выводиться в chart на форму 2.
Можно в эту процедуру вычисления передавать чарты параметром. Соответственно она будет выводить в нужный чарт.
Да, можно чарты разместить на панели\фрейме и потом у панели менять родителя - или форму 1 или форму 2.

зы. Нет, с фреймами как Вы сказали, это другая история ))
WBR, Andrew

Последний раз редактировалось diakin; 11.01.2018 в 23:44.
diakin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sender и объект danka123 Общие вопросы Delphi 24 27.09.2013 12:11
Sender(TObject); Claster Помощь студентам 3 22.06.2011 16:53
sender as nark03 Общие вопросы Delphi 5 19.01.2009 17:11
sender as.. nark03 Помощь студентам 2 18.01.2009 16:13
TObject *Sender sergei64_89 Общие вопросы C/C++ 1 06.06.2008 13:36