キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

LabVIEW breaking my XControl without my help

解決済み
解決策を見る

Hi, all,

 

I'm using LabVIEW 14 to build an XControl that contains a row of buttons, and a tab control (HMIChartTab).  The tab control has 6 pages, and each one of them contains subordinate XControl, that displays a chart (HMIChart). The buttons cause the tab control to change pages. The assembled package looks like this:

 

MarkBowles_2-1589053047342.png

 

The functionality of all this is brand new, but working satisfactorily.

 

HMIChartTab is doing its own resizing, as its ultimate container will be a window.  When it gets a Pane Size event, it calculates the change in height and width, and adds this to the XControl:ContainerBounds for each of the 6 HMICharts (it also does the same thing for the tab control's Tab Control Pane Dimension). The code snippet for adjusting the sizes of the 6 HMICharts looks like this:

 

MarkBowles_1-1589052637332.png

 

My problem is this: if while developing this functionality, I edit a small change in the appearance or the code of HMIChart, LabVIEW changes this code snippet in HMIChartTab to this:

 

MarkBowles_0-1589052487969.png

 

But -- this code is broken, because the Bounds property is not writable. I can cope with this simply by changing the code back to the way I had it -- and everything's fine until the next time I change HMIChart.

 

What is happening here?  Why would LabVIEW change the properties in my code this way?

 

More generally, where can I read up on the dynamic relationship between call-er and call-ee libraries, like XControls? As I work on the two XControls, making small changes and improvements, they lock up in ways that I'm sure make sense, but not to me!  What exactly does "Apply Changes to Instances" do in the library shortcut menu -- I suspect this is where the code breakage is occurring.

 

Thanks,

-- Mark

0 件の賞賛
メッセージ1/2
2,447件の閲覧回数
解決策
トピック作成者MarkBowlesが受理

You shouldn't expect anyone to be able to do anything with those microscopic images.

If things change on the BD by themselves, the VI is probably corrupt.  Try a mass compile.

 

When you unlock a library for editing, all the instances of it in memory are disconnected (and hence their owning VIs are broken).

When you apply changes, those instances are reloaded with the new version of the XControl.

"If you weren't supposed to push it, it wouldn't be a button."
メッセージ2/2
2,367件の閲覧回数