INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Fragen zu XControls



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

19.04.2009, 13:28
Beitrag #1

SteffenSI Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 64
Registriert seit: Nov 2008

8.6
2007
en

69115
Deutschland
Fragen zu XControls
Hallo,

mittlerweile steckt fast meine gesamte Programmlogik in XControls (gerade das 15te implementiert), was das Heuptprogramm schlanker und uebersichtlicher macht. Allerdings kamen mir nun 2 Fragen zu XControls auf, auch wuerde ich gerne mehr darueber erfahren, falls ihr mir diesbezueglich nuetzliche Referenzen nennen koenntet. OIft ueberlege ich ob ich auf einen Bug gestossen bin oder das eine oder andere Verhalten doch noch nicht so nachvollziehen kann.

Mir sind zwei Fragen aufgekommen, zu denen ich leider noch keine Antwort finden konnte..

1.
Als ich kuerzlich eines meiner XControls aenderte (unter anderem habe ich dem XControl Zugriff auf mehr meiner Klassen gegeben) erscheint es nun (wie auch schon zwei weitere XControls zuvor) als locked, wenn ich mein Projekt oeffne. Um editieren zu koennen muss ich "Unlock library for editing" waehlen, um das Programm anschliesend wieder starten zu koennen "Apply changes to instances". Da nun schon 3 XControls betroffen sind, ist dieses geklicke jedes mal sehr aufwaendig.

Leider kann ich ueberhauopt nciht nachvollziehen warum das XControl gesperrt ist, insbersodnere ist es ja schon gesperrt, bevor ich das VI oeffne, welches das XControl beinhaltet. "Why is library locked?" sagt mir, dass "The library is locked because: A vi in the library is reserved in this application instance or another application instance". Wie erfahre ich auf welches VI sich dieser Satz bezieht?

2.
Eines meiner XControls ist ein Slider, den der Benutzer mit der Maus ziehen kann. Die ereignisbehandlung laeuft dann ueber das Event "Value change". Da das ziehen des XControls ein kontinuirlicher Prozess ist, wird das Ereignis folglich sehr oft aufgerufen. Leider wird (so scheint es) die vergangenen Event aufrufe in eine queue gesteckt und nacheinander abgearbeitet, was zur folge hat, dass das Programm verzoegert reagiert. Nun wuerde es ausreichen wenn ich nur immer das letzte event behandle und wenn der prozessor mit den ganzen anfallenden events nicht mehr nachkommt, die vorherigen (gleichartuigen) events einfach verwerfe und nur auf das letzte value change event reagiere.

Wie kann ioch so etwas umsetzten?

Das sind zwei lange Fragen, ich hoffe man kann es einigermassen verstehen, freue mich ueber jede antowrt und jede referenz, wo ich mehr ueber XControls erfahren kann.

Viele Gruesse,

Steffen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.04.2009, 07:46
Beitrag #2

VDB Offline
LVF-Stammgast
***


Beiträge: 426
Registriert seit: Oct 2005

2010-2011
1997
kA

52134
Deutschland
Fragen zu XControls
Die erste Frage kann ich nicht direkt beantworten, dafür habe ich zu wenig mit XControls zu tun...

Zweite Frage: Benutze das Even "Mouse Up" statt "Value changed". Dann wird das Event nur ausgeführt wenn du den Slider loslässt.

VDB
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.04.2009, 17:49
Beitrag #3

SteffenSI Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 64
Registriert seit: Nov 2008

8.6
2007
en

69115
Deutschland
Fragen zu XControls
' schrieb:Zweite Frage: Benutze das Even "Mouse Up" statt "Value changed". Dann wird das Event nur ausgeführt wenn du den Slider loslässt.

Hallo,

nein das geht so leider nicht, da man zur Feineinstellung die Slider schon kontinuirlich ziehen koennen soll (mit Reaktion der Hardware) - es sollen nur keine Werte "geloggt" bzw. "gequeued" werden.

Gruss Steffen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.04.2009, 14:56
Beitrag #4

thomas.sandrisser Offline
LVF-SeniorMod


Beiträge: 1.298
Registriert seit: Sep 2005

xxxx
2005
EN

78759
United States
Fragen zu XControls
Wenn du Value change event hast dann setz den hacken 'lock FP until....' im dialog window von der event struktur und bau klugerweise noch ein kurzes wait until next multiple ein mit 25ms wartezeit (kann auch weniger oder mehr sein, je nachdem wie die user experience sein soll).

zu frage 1.
die abhilfe ist, dass du auf das xctl (als auch auf subvis die du evtl. verwendest) einen rechtsklick machst und nach caller suchst. das hilft dir rauszufinden wer im hintergrund eine komponente des xctls 'mitverwendet'. das caller laeuft aber nur auf VIs die im project sind, d.h. stell sicher dass alle VIs (in welcher art auch immer) im project eingebunden sind zum zeitpunkt der suche.

Mir passiert das, wenn ich ein xctl. oder eine komponente davon als probe verwende. probes laufen in einer anderen app instance und daher ist die class, die library oder das xctl selbst gelocked.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.04.2009, 14:32
Beitrag #5

SteffenSI Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 64
Registriert seit: Nov 2008

8.6
2007
en

69115
Deutschland
Fragen zu XControls
Hallo Thomas,

vielen Dank fuer deine Hilfe.

Die "Loesung" zu 1.) war nun uebrigens folgende:
Immer wenn ein bestimmtes VI einer Klasse (ausser das main.vi) auf einen XCtrl zugriff (bspw. durch uebergeben eines Zeigers), so wurde die entsprechende Klasse (welche dem VI angehoert) und das entsprechende XCtrl gesperrt. Irgendeine Idee warum das so ist?

Gruesse Steffen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: