Вопрос по процедурам/функциям С++

Панели оператора PP/OP/TP/TD/MP.
Программные пакеты ProTool/WinCC flexible, SCADA система WinCC
Alex3110
Posts: 159
Joined: Mon Sep 27, 2010 7:17 pm

Вопрос по процедурам/функциям С++

Post by Alex3110 »

Где можно найти описание С++ скриптов типа «PCS7_****» и описание всех возможных параметров, которые используются при вызове таких функций/процедур с конструкцией (char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) ?

Или поясните, пожалуйста, следующее. Ничего нигде не смог найти, что меня бы убедило.

1. По левому клику мыши на иконке блока мотора вызывается скрипт, открывающий соответствующий фейсплейт :

Code: Select all

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
PCS7_OpenGroupDisplay_V6(lpszPictureName, lpszObjectName );
}
1.1 Зачем в параметрах продецуры OnClick указано lpszPropertyName, ведь далее вызывается другая процедура PCS7_OpenGroupDisplay, в которой параметр lpszPropertyName не используется.
1.2 При использовании конструкции (char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) что конкретно передаётся в ячейку памяти с именем lpszPropertyName. Как я понимаю, туда записываются строка символов, содержащая имя какого-то свойства. А какого именно свойства ? Ведь графический объект может содержать не одно, а множество свойств.

2. Также есть ещё один скрипт с процедурой OnClick, который срабатывает по событию Button_Off.Mouse action :

Code: Select all

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)   
{
PCS7_OpenInputBoxBin_V6(lpszPictureName,lpszObjectName,2);
Цифра «2» - я так понимаю,что это численное значение (или индекс ???) какого-то свойства. Какого именно и почему 2, а не 1, не 3 ?


3. Какие конкретно значения переменных «nFlags» , «x» и «у» будут использованы в параметрах процедуры void и как ими воспользуется (если воспользуется) процедура PCS7_OpenGroupDisplay_I_V6 :

Code: Select all

#include "apdefap.h"
void OnRButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
PCS7_OpenGroupDisplay_I_V6(lpszPictureName, lpszObjectName,"ILOCK" );
}
Почему, при вызове PCS7_OpenGroupDisplay_I_V6 , ей указывается имя "ILOCK" объекта (или это имя свойства ? ) , а в п.1 , при вызове PCS7_OpenGroupDisplay_V6 – ничего, аналогичного «ILOCK», не указывается. Ведь в обоих случаях происходит, в конечном счёте, открытие фейсплейтов.


4. Для функционирования кнопки «Manual» выбора режима управления используются скрипт, который срабатывает по Change свойства Display_Variable этой кнопки :

Code: Select all

#include "apdefap.h"
void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,  double  value)
{
PCS7_OpenInputBoxBin_V6(lpszPictureName,lpszObjectName,1);
- Какое именно свойство должно измениться, чтобы сработал этот скрипт ?
- Что такое «double value» ? Это значение (или индекс) свойства ? Какого именно ? И зачем понадобилось использовать для этого аж 8 байт ?
nemesis_782
Posts: 4
Joined: Mon Jan 09, 2012 6:58 am
Location: Беларусь

Re: Вопрос по процедурам/функциям С++

Post by nemesis_782 »

Привет!
Не так давно начал разбирать и изучать PCS7 по частям, так сказать. Поэтому поделюсь.
1. OnClick имеет в описании три параметра, которые являются указателями. А указатель в С/С++ может иметь значение NULL, т.е. никуда не указывать. По событию система вызывает функцию OnClick и передает в параметрах информацию об объекте. Этими указателями можно пользоваться в теле функции, а можно и не пользоваться.

2. Нужно смотреть функцию PCS7_OpenInputBoxBin_V6().
3. nFlags насколько я знаю, это информация о нажатых клавишах (Shift, Ctrl и т.д.).
4. Смотри функцию PCS7_OpenInputBoxBin_V6().