Jump to content

Michael Aivaliotis

Administrators
  • Posts

    6,200
  • Joined

  • Last visited

  • Days Won

    109

Everything posted by Michael Aivaliotis

  1. I agree with Jack that the picture control will do it, however (be warned) it's NOT a walk in the park. If you don't mind using ActiveX controls you can probably find one that will do what you want. Do a search for "activex controls" on the web and you will uncover a goldmine of stuff. Some of what you find are products you have to buy but they probably have free timed versions. Other items are free... One link I found is this: http://www.programmersheaven.com/zone15/ca...at228/index.htm If you need any help with ActiveX, let me know.
  2. I have consulted with some people from National Instruments during NIWEEK 2003 and it may be possible to borrow their webcasting capabilities to assist the LAVA user groups in performing LIVE webcasts of meetings. However, if this is not possible we will forge ahead on our own and figure out a solution.
  3. It appears to be a known issue. I just got this from Info-Labview:
  4. Thanks Jim. I guess I should move this to the buglist.
  5. This issue has been confirmed by NI. So I guess the solution is to always name your clusters in your strict-type defs.
  6. Has anyone gotten LV7 to work successfully with Microsoft Visual SourceSafe? It appears that this version of LV has problems integrating with it. I have sent a support request to NI. I can reproduce this on three different computers. Anyone else out there? I keep getting an error message that says: "Microsoft Visual Studio is not installed". However it is definitly installed...
  7. There is a new feature in lv7 that auto-relinks the item names in the bundle by name node if you rename the objects in the cluster. I wonder if this is the culprit. In any case this is what happens. You can create a strict-typedef cluster and leave it unnamed. This is fine because you can assign a name to it when you actually use it. In my case, I use typedef clusters inside other typedef clusters. When I place it, I label it. The fun starts when you decide to disconnect the typedef cluster. When this happens, LV tries to use the original name given in the typedef. Of course since this does not exist, it shows up as a blank entry in the bundle by name. If you try to relink it, you can't, because empty names simply don't exist in the pull-down list. Now why would you want to disconnect the typdef, you ask? Well, you may not want to but the application builder shure as hell wants to! it breaks all the links to the typdefs and uses plain controls. Once it tries to do this it finds a whole bunch of bundle (and unbundle) by name nodes that it can't resolve. I've attached an image of the solution that uses a plain bundle. Also and image of what happens when you disconnect a typedefed object. I've also attached a toplevel.vi that you can try to build into an application. If you open the built app, you will se that the vi is broken. Download File:post-16-1073112613.zip
  8. Just want to let everyone know that now we can have ctrl+click in listboxes... just like everyone else. No more shift+click to select multiple items! Ya!
  9. A bit of head scratching and some head banging later, I figured it out. The solution is quite simple actually. Lucky for us, the last event which occures after you the mouse is up, is registered and shows as being equal to previous. This will do exactly what I want. Some extra checking is required to trap maximize and restore sizes, but overall is a robust solution.
  10. I love the panel resize event, however what happens if you have a slow routine that runs in response to this event? Every single pixel increment of the panel resize fires an event. Is there a way to filter out and ignore all the intermeadiate panel sizes and only acknowledge the last panel size?
  11. With all this talk lately of subpanels and how they compare to "true" child windows, I decided to see if i could create this same effect with the new sub-panels in LV7. In the LabVIEW examples, there is a VI that shows how you can dynamically register events and click+drag a front panel object. Using this same approach, I tried to do the same with subpanels. The only drawback is that when you register the subpanel event, you lose the ability to click on the subpaneled VI. I thought it would be nicer if you were limited to dragging the titlebar (just like child windows). I then proceeded to edit the subpanel frame and make it "look" like it had a titlebar. Oops, editing the sub-panel frame is forbidden! I then decided to embed the subpanel in a cluster along with a boolean. the boolean would simulate the titlebar. This approach seems to work well. The only thing left to do is track when the mouse is on the edge of the cluster and perform resizing (like child windows). Too bad resizing subpanels and dragging isn't automatic. :roll: Download File:post-15-1073110865.llb
  12. Someone emailed me the following: Some more discussion at NIWeek is expected...
  13. Someone asked me how would I pass data back to the caller. Well, it is really simple since you would use the user parameter. I've attached a modified version with data sent back to caller. This would be the easiest method, however you can wire anything into this even a queue reference if you please. then data can be tossed onto a queue. Download File:post-15-1073111204.llb
  14. In another post, Jim Kring suggested using callback vi's in his own development.:
  15. Yes well, i'm trying to build an installation package for my LV7 executable using installshield so I'm collecting the files necessary for this. So far I've noticed that there are merge modules that you can use in installshield. These are the same ones that the LV7 install utility uses during build time. So far, by poking around, i've found that there are several dll's that you can install to give you support for specific hardware. For example: serial: NiViAsrl.dll gpib: NiVi488.dll ethernet: NiViEnet.dll all need: NiViSv32.dll This means that when you click the check-box: incude serial support, all that happens is the installer calls the merge module which specifies the dll's required. I just wish all of this was documented better or at least give us the resources to selectivly install support for the required hardware. If i can check-off serial why can't I check-off GPIB? Also, to this day I haven't used the built-in LV install creator. Call me stubborn but I just like the flexibility and power that installshield provides. If only NI would publish information on these merge modules and how to use them.
  16. ok, serpdrv has been removed from the shared run-time folder in 7.0. Where has it gone and do I still need it for distributions?
  17. Yes, I just noticed this. Another curious thing... if you run the execution state property on the vi , right after the static reference, it shows the vi running. Is this because it is set for re-entrant run? This means you can run a vi that is running? I guess tis only works for reentrant vi's right? Well, i still don't understand the point of this static reference.
  18. OK, can someone please explain how the static vi reference helps me in LV7? I mean you can drag a vi into it and it gives you a reference but is it really just for property nodes? The online help says: The Static VI Reference acts as a subVI and appears in the VI hierarchy of the top-level VI. You cannot use the Call By Reference node, Run VI method, or any other method to run a VI inside the Static VI Reference node. You also cannot use the Abort VI, Revert VI, Make Current Values Default, Export VI Strings, or Import VI Strings methods on the Static VI Reference node. To avoid recursion, you cannot have a reference to the top-level VI that the Static VI Reference is in. How boring... NI, why do you give us crippled capabilities?
  19. With dynamic events, I was wondering if there was a way to have controls with multiple functions. A good example would be a START button that would change into a STOP button. It would be great to have one event case per funtion and determine dynamically which case will execute for the specified button press. I was thinking that you would have to register the control for each individual function you wanted. Then the question arrises, how do you switch registration over to another event case. Any suggestions?
  20. I don't know how i did it but here it is: Download File:post-15-1073110288.llb
  21. I create a strict-type indicator of enum datatype. I place it on the front panel of a VI. I right-click on the diagram terminal and select "create constant". The diagram constant is a strict-type as well. This is correct, however if you notice the wire connection to the indicator has a coercion dot. Why? Also, on another note. Before (in lv6.1), if you right-clicked on a strict-typed control, you would have the option of "Update From Type def.". Now in 7 this menu item is still there but greyed out. Why?
  22. Actually, you can do this right now. You have to hover over the horizontal scroll bar of the vi panel. Then when you use the scroll wheel it will scroll in the horizontal direction.
  23. I agree on this one. It seems I always place the labels on the left side.
  24. Are you interested in working on an open-source test executive? There has been some interest expressed by myself and others on the openg site but it hasn't progressed much. I have built my own test executive as well but my approach is different. I use the OpenG variant Data tools vi's from the OpenG site. Instead of linking my data to the front panel controls, I define it in a datatype that is built into a Variant Cluster and passed allong a data queue. Each test module has it's own VCluster that is added to this data queue. Also, a test module does not necessarily mean 1 VI. The test module can consist of a group of vi's such as a configuration vi, a test vi, a data presentation vi and a data save vi. Each of these sections will run in a parallel engine and accept requests via a queue. This data queue will also contain the data which will be passed from the test engine. Now with LV7 this becomes easier because of embeded panels. :idea:
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.