Hi an alle,
ich habe ein 2-D Array was ich in eine Tabelle packe. Nun möchte ich gern das zwei Spalten nicht editierbar und ausgegraut sind, die restlichen jedoch editiert werden könenn. Gibt es da einen möglichkeit? Bin für jeden Tip dankbar.
Alternativ mit einer Listbox?
Ich würde sagen...Nein!
Problem: Es handelt sich dabei im Prinzip ja immer um Arrays...und die können nur als "Gesamtes" konfiguriert werden!
Wenn die Werte in der Tabelle immer am selben ort sind, könntest du ein transparentes Rechteck daruberlegen.
Dann ist es nicht mehr bedienbar, aber nicht ausgegraut.
' schrieb:Wenn die Werte in der Tabelle immer am selben ort sind, könntest du ein transparentes Rechteck daruberlegen.
Dann ist es nicht mehr bedienbar, aber nicht ausgegraut.
Ja...aber das ist halt nicht dynamisch...selbst wenn es sich immer um die gleichen Bereiche handelt: Programmatisch kommt man nachträglich nicht mehr dran!
Wenn es aber so der Fall ist, würde ich diese (Header?)-Werte einfach in nem separaten Indicator anzeigen!
Andere Möglichkeiten:
Mit zwei Tabellen arbeiten. Die auf dem FP sichtbare Tabelle ist nur zum Bedienen und enthält die beiden Spalten gar nicht.
In der Tabelle nach jedem Editieren in den zwei Spalten wieder die ursprünglichen Werte setzen. Ein eventuelles Editieren hätte dann keine Folgen.
Eleganteste Möglichkeit: (?)
Es gibt die Eigenschaft "Aktive Zelle". Damit könnte man verhindern, daß unerwünschte Zellen überhaupt aktiviert werden können, bzw nicht länger als ein paar us: Wenn mit dem Eigenschaftskonten festgestellt wird, daß von Bediener eine "falsche" Zelle aktiviert wird, dann wird das schreibend verhindert, indem die ursprüngliche Aktivierung schnell wieder hergestellt qird.
1. Punkt: Zelle-Element einer Tabelle ausgrauen:
Ausgrauen geht nicht, aber was natürlich zur Laufzeit geht, ist die Hintergrundfarbe einer Zelle per PropertyNode zu setzen. Dazu Zelle per "Active Cell" auswählen, Farbe per "Cellbackground" setzen.
2. Punkt: Nicht editierbar:
Geht direkt (wie schon gesagt) nicht, entweder ist die Tabelle komplett editierbar oder nicht. Sowas müsste sich aber programmatisch machen lassen: Du musst nur feststellen, ob gerade ein Zellenelement editiert wird. Wenn das in einer Spalte ist, die du nicht editierbar haben willst, musst du entweder rausspringen oder nach dem Editiervorgang den Wert wieder zurücksetzen. Müsste irgendwie per Event-Struktur machbar sein.
MfG, Jens
' schrieb:12. Punkt: Nicht editierbar:
Geht direkt (wie schon gesagt) nicht, entweder ist die Tabelle komplett editierbar oder nicht. Sowas müsste sich aber programmatisch machen lassen: Du musst nur feststellen, ob gerade ein Zellenelement editiert wird. Wenn das in einer Spalte ist, die du nicht editierbar haben willst, musst du entweder rausspringen oder nach dem Editiervorgang den Wert wieder zurücksetzen. Müsste irgendwie per Event-Struktur machbar sein.
MfG, Jens
z.B so: (Starten und mit der Maus über die Tabelle fahren):
[
attachment=14185]
Aber das ist nicht perfekt, z.B kann man das Programm austricksen, wenn man die Spalte mit dem Tabulator anfährt.
Ich danke für die schnelle Hilfe und die vielen Vorschläge. Ich werde mir nochmal alles durch den Kopf gehen lassen und schauen wie ich es am besten mache. Danke.