TStringGrid Individuelles Edit
-
Guten Tag
Brauche für mein Projekt eine Tabelle. Habe mich für TStringGrid entschieden.
Nun möchte ich aber nicht, dass der Benützer einfach jede Spalte editieren kann.
Ich möchte z.B sagen können bei dem Feld [1][2] kann man editieren und bei dem feld [1][1] nicht.
Ich denke, das muss man ja auf das OnSelectCell Ereignis machen.
Aber wie kann ich z.B eine if Abfrage machen, wenn z.B Feld [1][1] ausgewählt ist, dass man das nicht editieren darf und wenn [1][2] ausgewählt ist darf man editieren?
Die Hilfe vom Borland hilft einem mal wieder nicht viel weiter. Besten Dank für eure Hilfe.
-
http://www.c-plusplus.net/forum/viewtopic-var-t-is-136184.html
[edit] oder auch einfach ein bool array hinterlegen
-
em das habe ich schon gefunden, aber dbgrid ist ein untschied zu stringgrid
das mit dem bool array müsstest du mir mal erklähren..
-
simons schrieb:
em das habe ich schon gefunden, aber dbgrid ist ein untschied zu stringgrid.
ja, aber viele sachen sind gleich und können gleich behandelt werden. ich habe gerade den anderen thread überflogen und wenn ich das richtig verstanden habe, geht das Bei TStringGrid wirklich nicht.
das wegen dem bool
du kannst ja eine Klasse von TStringGrid ableiten und dan dein "ReadOnly"selber erstellen
zB:
class TMyReadOnlyStringGrid : TStringGrid { public: bool ReadOnly[10][10]; }
dan kannst so abfragen:
TMyReadOnlyStringGrid *StringGrid = new TMyReadOnlyStringGrid(); ... ... if(StringGrid->ReadOnly[3][2]) { ... }
das ganze ist natürlich stark vereinfacht.
Du müsstest zB die Speicherreservierung von ReadOnly dynamisch an ColCount und RowCount anpassen etc..BigNeal
-
ok, danke. dann gebe ich halt alles frei. ist ein zu grosser aufwand mit dem bool
-
Sind dass denn wirklich immer nur einzelne, verstreute Zellen, die von der Einschränkung betroffen sein sollen, oder nicht doch eher ganze Zeilen und/oder Spalten? Wenn letzteres, dann reduziert sich der Aufwand ja schon erheblich.
Umsetzen liesse sich das, indem man im OnSelectCell ARow bzw. ACol auswertet und entsprechend die StringGrid-Option goEditing setzt.