PDA

Просмотр полной версии : Контрол не видит Pin



pngun
18.10.2021, 21:57
Добрый день.

Имеется Pin в классе Program.cs :

public int storageId = 1;

В Program.xml :


<?xml version="1.0" encoding="utf-8" ?>
<FBConfig>
<Map>
<Items>
<Pin ID = "1" Name = "storageId" Type ="Строковый"/>
</Items>
</Map>
<VisualMap>
<Items>
<Pin ID = "1" Name = "storageId" Type ="Строковый"/>
</Items>
</VisualMap>
</FBConfig>

В определённый момент нужно получить его значение из контрола MainForm.cs :


public string getStorageId()
{
return FBConnector.GetPinValue(1).ToString();
}

И этот метод выдаёт "Ссылка на объект не указывает на экземпляр объекта", хотя компонент уже в рантайме и значение у pin'а уже есть

Вопрос: Почему может возникать подобная ошибка и как её исправить? А также есть ли другие способы получить значение pin'а из контрола?

SCADAMaster
18.10.2021, 23:06
В xml pin внутри VisualMap это ИЗ Контрола в ФБ.
Из ФБ в Контрол это pout

pngun
18.10.2021, 23:57
Спасибо, попробовал сделать так:

<?xml version="1.0" encoding="utf-8" ?>
<FBConfig>
<Map>
<Items>
<Pout ID = "1" Name = "storageId" Type ="Строковый"/>
</Items>
</Map>
<VisualMap>
<Items>
<Pout ID = "1" Name = "storageId" Type ="Строковый"/>
</Items>
</VisualMap>
</FBConfig>
А затем так:

<?xml version="1.0" encoding="utf-8" ?>
<FBConfig>
<Map>
<Items>
<Pin ID = "1" Name = "storageId" Type ="Строковый"/>
</Items>
</Map>
<VisualMap>
<Items>
<Pout ID = "1" Name = "storageId" Type ="Строковый"/>
</Items>
</VisualMap>
</FBConfig>
Но вылезает та же самая ошибка

SCADAMaster
19.10.2021, 13:00
В том что вы показываете ошибок нет.
Смотрите где и как вызываете. Также посмотрите примеры которые идут в поставке скады