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!
15.01.2008, 02:11 (Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2008 02:13 von Chasing.)
Ich stehe hier vor einen Problem und weiß nicht so ganz, ob ich es überhaupt lösen kann und bitte um eure Hilfe.
Beim Versuch ein Tabellenbedienelement per Eigenschaftsknoten zu gestalten, ist mir aufgefallen das es wohl garkeine Eigenschaft gibt, um die Zellenhintergrundfarbe einzelner Zellen festzulegen, außer sie ist aktiv.
Ich möchte jeder einzelnen Zelle, eine Farbe anhand des Wertes, der in der Zelle steht zuweisen, besteht diese Möglichkeit?
Bsp. Werte 0-500 rot, 500-1000 grün, 1000-1500 blau
2. Problem: wie realisiert man eine Tastatursteuerung der einzelnen Zellen?
Ich muß duch die Pfeiltasten steuern, in welche Zelle ich einen Wert schreiben möchte, und diesen Wert mit den Tasten "+" und "-" erhöhen oder senken können.
Mir fehlt hier absolut der Ansatz.
Wenn euch irgendetwas dazu einfällt wäre ich sehr glücklich wenn ihr mich an euren Ideen teilhaben lasst.
Liebe Grüße
Andreas
Anzeige
15.01.2008, 07:26 (Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2008 07:28 von Achim.)
Zitat:Beim Versuch ein Tabellenbedienelement per Eigenschaftsknoten zu gestalten, ist mir aufgefallen das es wohl garkeine Eigenschaft gibt, um die Zellenhintergrundfarbe einzelner Zellen festzulegen, außer sie ist aktiv.
Ich möchte jeder einzelnen Zelle, eine Farbe anhand des Wertes, der in der Zelle steht zuweisen, besteht diese Möglichkeit?
Bsp. Werte 0-500 rot, 500-1000 grün, 1000-1500 blau
Wandle das 2D-String-Array (= Value) der Tabelle komplett mit "StringToNumber" in ein 2D-Numeric-Array. In diesem Array prüfst über geschachtelte FOR-Schleifen jeden einzelnen Wert ab...und stellst dann über die Eigenschaft "ActiveCell" die entsprechende Farbe ein.
Zitat:2. Problem: wie realisiert man eine Tastatursteuerung der einzelnen Zellen?
Ich muß duch die Pfeiltasten steuern, in welche Zelle ich einen Wert schreiben möchte, und diesen Wert mit den Tasten "+" und "-" erhöhen oder senken können.
Mir fehlt hier absolut der Ansatz.
Mir grad auch...
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
' schrieb:2. Problem: wie realisiert man eine Tastatursteuerung der einzelnen Zellen?
Ich muß duch die Pfeiltasten steuern, in welche Zelle ich einen Wert schreiben möchte, und diesen Wert mit den Tasten "+" und "-" erhöhen oder senken können.
Mir fehlt hier absolut der Ansatz.
vielen vielen Dank, nun seh ich durch, auf "ActiveCell" wär ich so schnell nicht gekommen.
Deine VI´s sind beide spitzenklasse und helfen mir sehr.
Das Färben jedoch scheint sehr rechenintensiv zu sein, bei 200x16 Werten dauert die Angelegenheit doch sehr lang wenn man bedenkt das ich hier mit 2x2,3GHz rechne und dennoch über 10 Sekunden brauche.
Ich muß zwar zpäter nur die geänderten Werte aktualisieren aber vorher werden die Werte aus einer Datei eingelesen und das dauert viel zu lang wenn ich daran denke, das diese Geschichte auf einem 150MHz embedded System laufen muß.
Liegt es an dem Eigenschaftsknoten, die ja bekanntermaßen eher lahm sind oder was ist der Performancekiller?
Test-VI ist im Anhang, ich hoffe das Runterspeichern auf 8.0 hat geklappt.
' schrieb:Das Färben jedoch scheint sehr rechenintensiv zu sein, bei 200x16 Werten dauert die Angelegenheit doch sehr lang wenn man bedenkt das ich hier mit 2x2,3GHz rechne und dennoch über 10 Sekunden brauche.
Liegt es an dem Eigenschaftsknoten, die ja bekanntermaßen eher lahm sind oder was ist der Performancekiller?
Ja, das liegt an den PropertyNodes...und da kannste auch nix dran machen! Es wird halt jede Zelle einzeln geprüft und gefärbt...
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Diese Mistdinger *g* aber die Lösung ist dennoch denkbar einfach.
Es liegt einfach daran, dass es neu gezeichnet wird, wenn man nun die Tabelle bevor man die Farben setzt, auf nicht sichtbar und erst wenn alle Farben gesetzt sind, wieder auf sichtbar Stellt, werden die Farben in Sekundenbruchteilen berechnet und anschließend sofort angezeigt.
' schrieb:Es liegt einfach daran, dass es neu gezeichnet wird, wenn man nun die Tabelle bevor man die Farben setzt, auf nicht sichtbar und erst wenn alle Farben gesetzt sind, wieder auf sichtbar Stellt, werden die Farben in Sekundenbruchteilen berechnet und anschließend sofort angezeigt.
Sehr guter Trick! Wenn's für den Benutzer nicht zu verwirrend ist, wenn die Tabelle erst "später" eingeblendet wird, ist das optimal! Und für's ersetzen einzelner Zellen kann sie ja sichtbar bleiben...
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
schön, dass du das Gefühl hast, es geht mit DeferPanelUpdate oder Visible schnell, aber ich bin der Meinung, du hast da einen dicken Bug in deinem Programm, das du hier hochgeladen hast.
Da besteht nämlich eine riesige Race-Condition:
Beim ersten Aufruf des VI wird nämlich das Table-Control ausgelesen, bevor es überhaupt über die lokale Variable gefüllt wird. Was du da hochgeladen hast, ist ganz ganz schlechter LV-Programmierstil...
Ich habe das mal geändert, und lande auf meinem Rechner immer bei so ca. 8 Sekunden, bis dann alle Felder neu eingefärbt sind (ohne DeferPanelUpdate dauert es ca. 1 Sekunde länger).
Probier doch mal folgende Variante, kann mir nicht denken, dass das bei dir "ratzfatz" geht: