depComponentsPack 3.0: OPC + SVG + Аrchive Components

Общие вопросы по оборудованию и программному обеспечению Компании ДЭП
Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 07 июн 2008, 17:38

Доступен для загрузки набор компонентов версии 3.0 для Delphi/С++Builder depComponentsPack-3.0.

В depComponentsPack 3.0 входит:
- Development OPC ARM Expert (эксперт среды программирования RAD Studio 2007 для разработки автоматизированных рабочих мест)
- Display SVG (отображение SVG. Компонент TdepSvgPanel).
- Work with archive data (Работа с архивными данными. Компоненты TdepArcStorage, TdepArcPeriodicAnalogViewRead,
TdepArcPeriodicCounterViewRead, TdepArcNoPeriodicAnalogViewRead, TdepArcNoPeriodicCounterViewRead, TdepArcEventViewRead, TdepArcLogBookOGViewRead, TdepArcViewX). Для их использования требуется установить дистрибутив "Работа с архивами" 6-ой версии.
- Custom Components (Специализированные компоненты: TdepWavePlayer)

Основные новые возможности (возможно не все):
- Поддержка SVG (сокращение от англ. Scalable Vector Graphics, масштабируемая векторная графика). Подробнее на SVG.
Для созданя SVG файлов рекомендуется использовать открытый графический редактор Inkscape (Inkscape). Компонент TdepSvgPanel работает с SVG-клонами как с отдельными объектами. OPC привязки для клона наследуются из оригинала, при динамизации в клоне можно только поменять OPC имя SVG-объекта и добавить новые привязки. Тем самым клоны можно рассматривать как подобие VCL-фреймов.
- Возможно создание OPC АРМ приложений как в среде C++Builder, так и в Delphi.
- Повысилось быстродействие работы и объем памяти, выделяемый разрабатываемым приложением, за счет изменения внутренней структуры объектов.
- Вся динамизация хранится в файлах xml формата.
- Группы динамизации, для более быстрого задания привязок к типовым элементам.
- Вызов редактора динамизации из приложения(возможность исправить OPC динамизацию без среды программирования).
- Возможно быстрое подключение/отключение OPC динамизации (в среде программирования меню depOPC Design->OPC Config).
- Для любого динамизированного компонента возможно задать OPC имя(подложку). Раньше для этого использовался в версии 2 использовался компонент TdepOPCPanel.
- Для выбора OPC имени привязки используется более усовершенствованный OPC проводник.
- Вызов редактора OPC динамизации по "горячим клавишам".

Обратите внимание:
Для данной версии требуется RAD Studio 2007, 2009 или 2010

Совместимость с предыдущей версией (2) не поддерживается и вряд-ли будет поддерживаться.

depComponentsPack 3.0 распространяется по принципу "как есть". При этом не предусматривается никаких гарантий, явных или подразумеваемых. Вы используете его на свой собственный риск. Автор не отвечает за потери данных, повреждения, потери прибыли или любые другие виды потерь, связанные с использованием (правильным или неправильным) этой программы.

Справка в процессе разработки. Общая идеология от версии OPC Components 2.2 сохранилась.

Данная версия проходит тестирование и доработку. Любые замечания и пожелания можно обсуждать в этой теме.
Последний раз редактировалось Dino 01 мар 2010, 13:38, всего редактировалось 11 раз.
С уважением Климов Александр
Компания ДЭП
г. Москва
(495) 995-00-12 доб. 150

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

Вопрос Первый

Сообщение Faster » 11 июн 2008, 04:27

И где TdepOPCDesigner ?????7

Как с опц сигналы читать !!!!!!!!!

Я чтото не вкурил ....

Пойду ман поисчю

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

OPCTech.chm

Сообщение Faster » 11 июн 2008, 04:37

ГЫ не правельно сформирован , не работат

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

КАК ЧИТАТЬ ЗНАЧЕНИЯ ИЗ ДЕКОНТА?

Сообщение Faster » 11 июн 2008, 06:19

НАрод я в шоке , так и не нашол как читать значения из OPC в новых компонентах ... ЭТО СРОЧНО !!!

Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 11 июн 2008, 15:21

Компонента TdepOPCDesigner нет в данной версии, т.к. изменился немного подход к OPC-динамизации.
Последний раз редактировалось Dino 22 дек 2008, 17:56, всего редактировалось 1 раз.
С уважением Климов Александр

Компания ДЭП

г. Москва

(495) 995-00-12 доб. 150

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

Сообщение Faster » 14 июн 2008, 06:28

Спасибо , эта часть вроде работает но вот с архивами ...

Бросаю архивный компонент Deparcstorage на форму пытаюсь открыть свойства и получаю :
Класс не зарегистрирован, ClassID:{2fdd66ba=5baf-9e55-bfdb069894ae}
Это что и с чем его есть ???? что же за бед то ?

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

РЕШЕН ПРОБЛЕМЫ

Сообщение Faster » 14 июн 2008, 06:38

И ТАК ВОТГЛЮК ТО ГЛЮК !!!!
Я ставил сначала жжонуюлису деп и работу с архиваиа компоненты потом ...
Вылазиет этот глюк ...
После трёх часоф мучений был найден ответ ... сначала ставим весь деп в месте с компонентами , а уж после лиса и на него уже работу с архивами , тогда проблеммы нет !

видимо ваш компонент какимто чудом не чуствует стоявших до него прог :)

И ещё таварисчи ну надо реально проверять наличие компонентов прежде чем лукаться внмис .. а то аксес виалейшины в 0x0000004 это ну школьные уровень .... обвязку надо делать ... коль уже работаем на серьёзном уровне , ато ну тяжко так думать кто што и где ?

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

Как надоело ....

Сообщение Faster » 14 июн 2008, 06:45

Вопрос ранее вы юзали depArcFreeStruct
теперь его нет и не чего похожего тоже нет ...
Чтоделать .. я так думаю что чистить то надо ?
или вы созрели до delete ???

Вот это уже интересней :
[BCC32 Warning] Main.cpp(388): W8004 'code_error' is assigned a value that is never used
[ILINK32 Error] Error: Unresolved external '_setFuncBeginCallQt@4' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_setFuncEndCallQt@4' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_getListProperties@8' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_getScale@4' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_setScale@8' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_getProportional@4' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_setProportional@8' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_getStretch@4' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_setStretch@8' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_getCenter@4' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_setCenter@8' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_getBackgroundColor@4' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_setBackgroundColor@8' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_destroyDepSvgPanel@4' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_createDepSvgPanel@4' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_setFuncSelectListNodes@8' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_setFuncEventListNodes@8' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_setDesign@8' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_setParentWnd@8' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_setSvgFileName@8' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_setSize@12' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_setSvgProperty@24' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_getParentNames@8' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg
[ILINK32 Error] Error: Unresolved external '_getSvgSructure@8' referenced from C:\PROGRAM FILES\DEP\COMPONENTS\DEPCOMPONENTSPACK 3.0\BDS2007\DEPSVGCORED11R.LIB|depSvg

Что с эти делать ?

Ура товарисчи, лезим на бронивиГ !!

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

ГЫ я в шоке тосиГ, бронивиг не плавает ????

Сообщение Faster » 14 июн 2008, 06:50

Решение предыдущего поста в конфиге включить галку поддержка SVG графики ...

Я в шоке это как умелко софта, хотите установить MS Office ? ой а а для этого надо Kb9898976 который входит в MS Office, установите его первым ...


Зачем делать галку если без неё не компилиться ????????????

Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 17 июн 2008, 15:15

Faster писал(а):Бросаю архивный компонент Deparcstorage на форму пытаюсь открыть свойства и получаю :
Класс не зарегистрирован, ClassID:{2fdd66ba=5baf-9e55-bfdb069894ae}

Для корректной работы с архивными компонентами требуется установить дистрибутив "Работа с архивами" 6-ой версии.
Faster писал(а):Решение предыдущего поста в конфиге включить галку поддержка SVG графики ...

Вопрос ранее вы юзали depArcFreeStruct
теперь его нет и не чего похожего тоже нет ...

Проблемы исправлены в новой версии, доступной для загрузки.

Faster писал(а):И ещё таварисчи ну надо реально проверять наличие компонентов прежде чем лукаться внмис .. а то аксес виалейшины в 0x0000004 это ну школьные уровень .... обвязку надо делать ... коль уже работаем на серьёзном уровне , ато ну тяжко так думать кто што и где ?

Ничего не понятно. Выражайтесь более конкретно и по русски.
Последний раз редактировалось Dino 24 июн 2008, 13:09, всего редактировалось 1 раз.
С уважением Климов Александр

Компания ДЭП

г. Москва

(495) 995-00-12 доб. 150

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

Сообщение Faster » 23 июн 2008, 07:45

Непонятно :

Это значит что Сообщенние acess violation 0x0000004 это ошибка с++ уровня 7 класса школы ...


вот что это значит ...

Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 23 июн 2008, 10:29

Если Вы хотите, чтобы найденная Вами проблема была решена, то опишите возникающую ошибку более подробно(как и при каких условиях она возникает).
С уважением Климов Александр

Компания ДЭП

г. Москва

(495) 995-00-12 доб. 150

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

Сообщение Faster » 01 июл 2008, 01:52

К перудыдущему посту ? куда подробней ???? ошибка была хаотичной !

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

компоненты .89

Сообщение Faster » 01 июл 2008, 01:58

И так проблема , вот этот код не работает я уже просто замучился думать по чему ?

Код: Выделить всё

	//Читаем аналоги
	TdepArcPeriodicAnalogViewRead* view_values=new TdepArcPeriodicAnalogViewRead(this);
	view_values->Storage = ARC;
	view_values->NameViewGroup =DEP_ARC_NAME_GROUP_ALL_PAR;//DEP_ARC_NAME_GROUP_ALL_PAR;
	view_values->TypePeriod=1;


	view_values->Period=10;//Сам период
	view_values->ReadBetweenDateTime(DateBegin, DateEnd);
	int Readed=0;

	//Выборку сделали, начинаем читать
	for (int i = 0; i<view_values->Count; i++)
	{
		TdepArcPeriodicAnalogDataRow* data_row = view_values->Items[i];
		bool ToAdd=false;
		for (int j=0; j<view_values->ListViewGroupRefParRead->Count; j++)
		{
			TdepArcViewGroupRefParRead* ref_par =view_values->ListViewGroupRefParRead->Items[j];
			if (ref_par->IndexDataColumn != -1)
			{
				TdepArcPeriodicAnalogDataRecord* data_record = &data_row->DataRecord[ref_par->IndexDataColumn];
				if (data_record->HasData)
				{
					TdepArcPar* par;
					ARC->ListPar->FindById(ref_par->IdPar, par);
					if(par && !par->DeleteRecord)
					{
						ToAdd=true;
						Readed++;
					}
				}
			}
		}
		if(ToAdd)
		{
		.....
		}
//		depArcFreeStruct(data_row->DataRecord);
//		depArcFreeStruct(data_row);
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^Чем это заменить, нет этих функций !!!!!!!!!!!!!!!!!

	}


смысл в том что я вижу что мне пришло 84 записи
но при отработке этого кода количество полученных записей равно нулю ... мне просто нужно вычитать все аналоги за период времени , раньше это срабатывало теперь нет ! в чём загвоздка , не как в толк взять не могу .... причём за период который я выставляю данные точно были [/code]

Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 01 июл 2008, 11:30

В приведенном Вами коде ошибок не найдено. Readed должно равняться колличеству вычитанных значений.
Сделайте такую же выборку программой "Просмотр архивов" и посмотрите результат. Возможно таже, что все параметры, являющиеся периодичными аналогами, помечены к удалению(par->DeleteRecord == true).
С уважением Климов Александр

Компания ДЭП

г. Москва

(495) 995-00-12 доб. 150

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

Сообщение Faster » 02 июл 2008, 02:31

Я же писал.. что в программе выбора архивов , явно видно что вычитывается 84 записи ...

я не ка кне могу понять эуту проблему в предыдущий версии компонентов всё работало ... .83 .. сейчас опять нет !!!

Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 02 июл 2008, 12:44

В текущей версии 3.0.89 по сравнению с версией 3.0.83 архивные компоненты не менялись. В нашем тестовом проекте работает все хорошо. Тяжело понять в чем у Вас дело. Для разрешения проблемы Вам нужно выслать нам свой проект(для C++ Builder), можно даже какой-нибуть тестовый с чтением данных из хранилища. Нужно также само хранилище и опишите что и за какой промежуток времени Вы пытаетесь вычитать.
С уважением Климов Александр

Компания ДЭП

г. Москва

(495) 995-00-12 доб. 150

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

Решение проблем.

Сообщение Faster » 07 июл 2008, 03:00

И так, глюк был явно гдето в вашей писанине, я устал пытаться чтот изменить и вот что япытался сделать:
-Переустановка ПО архивов, компонентов деконта, жарптицы
-изменение настроек архивов , обновления и прочее
-смену хранилища, созданиенового и прочее

всё это не превело не к какому результатау ...

решил проблему так убил всё по, жар птыцу не трогал, вычистил весь шлак депа с реестра, убил хранилище, поставил по создал хранилище , сконфигурировал архивы и всё .... всё заработало ...

Теперь просто назривает вопрос , что этобыло ...
хранлище я вам вслал , думайте . просто если это повториться в живой базе ипридётся терять архивы это будеточень печальная история ....[/list]

Аватара пользователя
Wisdom
Сообщения: 18
Зарегистрирован: 19 апр 2007, 17:18
Откуда: sigma avtomatika

Сообщение Wisdom » 15 фев 2010, 15:49

У меня Embarcadero® C++Builder® 2010.
Можно как нибудь использовать эти компоненты в нем?

Это же вроди как RAD 2010 - следующая версия. Она должна поддерживать компоненты для 2009 версии, так?

Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 01 мар 2010, 13:35

Добавлена поддержка для Embarcadero RAD Studio 2010.

Дистрибутив можно загрузить на странице загрузки http://www.dep.ru/page/updating_software/
С уважением Климов Александр

Компания ДЭП

г. Москва

(495) 995-00-12 доб. 150

Аватара пользователя
Wisdom
Сообщения: 18
Зарегистрирован: 19 апр 2007, 17:18
Откуда: sigma avtomatika

Сообщение Wisdom » 01 мар 2010, 16:09

Компонента TdepOPCDesigner нет в данной версии, т.к. изменился немного подход к OPC-динамизации.

А где можно почитать как теперь это делать?

Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 01 мар 2010, 16:28

В файле помощи depComponentsPack3.chm, устанавливается вместе с компонентами или можно загрузить по ссылке http://www.dep.ru/downloads/pub/tmp/dep ... sPack3.chm.
С уважением Климов Александр

Компания ДЭП

г. Москва

(495) 995-00-12 доб. 150

^Guffi^

Сообщение ^Guffi^ » 09 дек 2010, 10:52

Впервые закачал, установил и даже скомпелировал приложение с пустой формой и единственной надписью с динамическим цветом и Caption

у меня вопрос: можно ли оформить всю эту хрень в виде 1-го невизуального компонента с настройкой подключения к ОРС-серверу, списком тегов (свойство типа TList или TObjectList) и событием OnChange на изменение значения в ОРС-сервере? т.к. динамизация мне вопщемто ненужна...

Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 09 дек 2010, 13:41

^Guffi^ писал(а):у меня вопрос: можно ли оформить всю эту хрень в виде 1-го невизуального компонента с настройкой подключения к ОРС-серверу, списком тегов (свойство типа TList или TObjectList) и событием OnChange на изменение значения в ОРС-сервере? т.к. динамизация мне вопщемто ненужна...

Можно, читаем depComponentsPack3.chm -> Программный доступ для расширенных возможностей ->(Асинхронное чтение и запись значений в тэги(элементы) OPC сервера(пользовательские привязки)) или Синхронное чтение и запись значений в тэги(элементы) OPC сервера.
С уважением Климов Александр

Компания ДЭП

г. Москва

(495) 995-00-12 доб. 150

^Guffi^

Сообщение ^Guffi^ » 09 дек 2010, 19:33

Спасибо!
1. gOpcApplication можно считать таким компонентом
2. DefaultAlias подключение к ОРС-серверу
3. CreateItemTag сосдает обьект с нужным мне событием OpcItemChange

вот только в проседуру
procedure OpcItemChange(aOpcItemTag: TdepOpcItemTag; const aValue: Variant; const aQuality: TdepOpcQuality);
передается aOpcItemTag: TdepOpcItemTag, а нельзя ли узнать его индекс, я вообще не нашел списка обьектов создаваемых CreateItemTag
и поскольку он обязан существовать прошу ткнуть меня носом...

Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 09 дек 2010, 20:04

^Guffi^ писал(а):
вот только в проседуру
procedure OpcItemChange(aOpcItemTag: TdepOpcItemTag; const aValue: Variant; const aQuality: TdepOpcQuality);
передается aOpcItemTag: TdepOpcItemTag, а нельзя ли узнать его индекс, я вообще не нашел списка обьектов создаваемых CreateItemTag
и поскольку он обязан существовать прошу ткнуть меня носом...

CreateItemTag не создает никакого списка, а создает объект класса TdepOpcItemTag(довольно простой класс и в описании вроде не нуждается, рассматривайте его просто как TObject) и возвращает на него указатель, который Вы сами и можете поместить в свой список.
С уважением Климов Александр

Компания ДЭП

г. Москва

(495) 995-00-12 доб. 150

^Guffi^

Сообщение ^Guffi^ » 09 дек 2010, 22:20

Я и сказал что это обьект какогото списка, покрайней мере добавляется в fDefaultOpcGroup: TdepOpcGroup;
собственно я могу организовать и свой список, НО я говорил о передаче индекса в событие OpcItemChange
типа
procedure OpcItemChange(aOpcIndexTag: Integer; const aValue: Variant; const aQuality: TdepOpcQuality);
возможно ли это?
согласитесь
тратата.Items[aOpcIndexTag] будет работать быстрее чем
тратата.IndexOf(aOpcItemTag)
особенно когда OpcItemChange будет срабатывать для нескольких тысяч ОРС-тегов

Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 10 дек 2010, 12:34

^Guffi^ писал(а):Я и сказал что это обьект какогото списка, покрайней мере добавляется в fDefaultOpcGroup: TdepOpcGroup;
собственно я могу организовать и свой список, НО я говорил о передаче индекса в событие OpcItemChange
типа
procedure OpcItemChange(aOpcIndexTag: Integer; const aValue: Variant; const aQuality: TdepOpcQuality);
возможно ли это?
согласитесь
тратата.Items[aOpcIndexTag] будет работать быстрее чем
тратата.IndexOf(aOpcItemTag)
особенно когда OpcItemChange будет срабатывать для нескольких тысяч ОРС-тегов

В данной реализации это невозможно.
Есть пара вопросов:
Зачем Вам индекс объекта в списке и сам список, созданный не Вами, если Вам и так в событии OpcItemChange возвращается указатель на TdepOpcItemTag(искать вроде ничего не надо)?
Возможно Вам нужна возможность пронаследоваться от класса TdepOpcItemTag, чтобы добавить свою логику?
С уважением Климов Александр

Компания ДЭП

г. Москва

(495) 995-00-12 доб. 150

^Guffi^

Сообщение ^Guffi^ » 10 дек 2010, 13:35

Вопрос можно бы снять, еслиб у TdepOpcItemTag был хотябы преславутый Tag в свойствах, вот там и можно было бы хранить индекс уже моего списка

^Guffi^

Сообщение ^Guffi^ » 10 дек 2010, 14:52

Зачем Вам индекс объекта в списке и сам список, созданный не Вами

Прошу прощения, мне не нужен доступ к этому списку - это навеяно использованием других компонентов ОРС-клиент.
Возможно Вам нужна возможность пронаследоваться от класса TdepOpcItemTag, чтобы добавить свою логику?

дело в том что уже 8 лет мы используем свои програмные решения и за это время наша самописная СКАДА значительно разрослась (обзавелась функционалом) писать с нуля нет смысла (времени и желания), решено было перейти с Delphi 7 на Delphi 2010, но ОРС-компонент подходящий пока не найден. Впринципе без глобальных переделок уже прикрутили ваш компонент добавив как раз преславутый Tag в ваш код, надеюсь и впредь компоненты будут распространятся в исходниках, чтоб была возможность добавить 2 строчки в ваш код ))