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!
13.02.2008, 11:13 (Dieser Beitrag wurde zuletzt bearbeitet: 13.02.2008 11:21 von knochä.)
ich wollt am Anfang meines Programmes das Angehängte VI öffnen.
Die Eingabe in die Tabelle soll so lange gesperrt sein bis der Nutzer auf Tabelle bearbeiten klickt.
Dann soll er die Werte bearbeiten können. Dies würde soweit ja auch funktionieren.
Wenn ich jedoch am Anfang die Tabelle deaktivier kann ich die Bildlaufleiste nicht mehr bewegen.
Habt ihr eine Idee wie ich dies umsetzten könnte?
Mir würde es auch reichen wenn sich die Tabelle auf die grau hinterlegte Zelle zentriert
(Das Vi fragt beim Start nach einer Datei, hier könnt ihr eine leere .txt datei auswählen).
Du sperrst das ganze Control, also auch die Scrollleiste. Wenn du statt einer Tabelle eine Multi Column Listbox nimmst, hast du das Property "Allow Editing Cells", was genau das macht, was du willst.
VDB
13.02.2008, 12:07 (Dieser Beitrag wurde zuletzt bearbeitet: 13.02.2008 12:09 von Lucki.)
Wenn es auf elegante Art nicht gehen sollte, dann gäbe es immer noch die Möglichkeit das Problem unelegant zu lösen: Du kopierst die Tabelle, so daß Du zwei identische Tabellen hast, mit einem einzigen Unterschied: die eine ist Control, die andere Indikator. Die beiden Tabelle setzt Du genau übereinander und sorgst für, daß sie immer die gleichen Daten haben. Mittels Steuerung über Property Nodes ist nur immer ein der beiden Tabellen sichtbar. Sie sind optisch nicht zu unterscheiden, außer eben dadurch, daß sich in der einen Tabelle die Werte ändern lassen, in der anderen nicht. (Nicht beirren lassen: Wenn das Programm nicht läuft. lassen sich auch Werte in den Indikator rein schreiben. Bei laufendem Programm geht das aber nicht).
' schrieb:Wenn es auf elegante Art nicht gehen sollte, dann gäbe es immer noch die Möglichkeit das Problem unelegant zu lösen: Du kopierst die Tabelle, so daß Du zwei identische Tabellen hast, mit einem einzigen Unterschied: die eine ist Control, die andere Indikator. Die beiden Tabelle setzt Du genau übereinander und sorgst für, daß sie immer die gleichen Daten haben. Mittels Steuerung über Property Nodes ist nur immer ein der beiden Tabellen sichtbar. Sie sind optisch nicht zu unterscheiden, außer eben dadurch, daß sich in der einen Tabelle die Werte ändern lassen, in der anderen nicht. (Nicht beirren lassen: Wenn das Programm nicht läuft. lassen sich auch Werte in den Indikator rein schreiben. Bei laufendem Programm geht das aber nicht).
An diese Lösung habe ich auch schon mal gedacht. Hier hab ich jedoch den Nachteil, dass ich die Zeilenbeschriftung immer 2 mal eintragen muss.
Zu dem Vorschlag von VDB:
Hier hab ich das Problem das ich nicht nur Zahlen sondern auch Strings einlesen möchte (Pfad vom Prüfprotokoll...)
' schrieb:An diese Lösung habe ich auch schon mal gedacht. Hier hab ich jedoch den Nachteil, dass ich die Zeilenbeschriftung immer 2 mal eintragen muss.
Zu dem Vorschlag von VDB:
Hier hab ich das Problem das ich nicht nur Zahlen sondern auch Strings einlesen möchte (Pfad vom Prüfprotokoll...)
Das geht genau so, du musst es nur an das Property ItemNames des MCL zuweisen, nicht direkt an das Kontrol, wie bei der Liste.
Siehe Anhang. Das VI hat jetzt eine MCL. Überall im VI wo du eine Lokale Variabele der Liste verwendest musst du diese durch das Property "ItemNames" der MCL ersetzen. Beim Einlesen habe ich das schon gemacht.
Könnt ihr mir sagen wieso das Bedienfeld "Einstellungen Übernehmen" nicht deaktiv und grau hinterlegt wird sobald ich Tabelle bearbeiten drücke?
Außerdem kann ich trotz das ich Zellen bearbeiten auf True setzt die Tabelle nicht bearbeiten.
du kannst nur dann Zellen bearbeiten, wenn du vorher schon was drin stehen hattest (auch ein Leerstring!)...nur initialisierte Felder kann man bearbeiten! Dazu muss erst die entsprechende Zeile gewählt werden (1. Klick), und dann nochmal die Zelle (2. Klick)...das ist mühsam, ich weiß! Ich habs bei die probiert, es klappt!
Das Button Einstellungen übernehmen wird aktiv bei Tabelle bearbeiten und deaktiv, sobald du ihn gedrück hast...und genau so hast du's programmiert!
Ein Tipp: Du färbst unten alles weiß...wenn du das auf einen Schlag machen möchtest, guck dir mal die Hilfe zu ActiveCell an...
Generell solltest du mal drüber nachdenken, ob du für deine Zustandswechsel (de-/aktiviert) nicht mit ner Eventstruktur (nur EINE!) arbeiten willst...
A.
"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)