Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#5

AW: TValueListEditor automatisch füllen Funktion deaktivieren

  Alt 2. Okt 2012, 09:50
Das war gar nicht so schwer (Ich sitze gerade an der Arbeit, daher erstmal nur theoretisch der Code, heute Abend kann ich den richtigen nachliefern):

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  // ....
  // Ich nenne das Ding jetzt der Einfachheit halber "vle"...
  vle.ColCount := 7; // <- Ja das geht ... keine Ahnung ob, bzw. was ich vorher in den Options geändert habe, aber es geht...
 
  // Und dann habe ich im Objektinspektor noch unter den ... Keys (??) (evtl. KeyNames - irgendwie sowas, wie gesagt, grade an der Arbeit, kann nicht
  // gucken) die ganzen Strings eigegeben ... also "Monsternamen", "Bossmonster" etc...
end;
Ich weiß ja nicht, welche Delphi-Version du benutzt, aber in XE2 ist ColCount read-only.

Ganz deutlich wird es aber, wenn man sich GetCell und SetCell betarchtet. Dort wird nämlich lediglich auf Col=0 abgeprüft und zum Speichern der Werte eine erweiterte StringList benutzt, wobei dort im Wesentlichen die Name-Value-Funktionalität verwendet wird.

Wie Himitsu schon sagte: falsche Komponente!

Unter der Annahme, daß alle Zeilen einen identischen Satz an Eigenschaften (Spalten) haben, kommt einem direkt der Gedanke einer Datenbanktabelle. Vielleicht solltest du mal einen Ansatz mit einem ClientDataSet durchdenken.

Ein weiterer Unterschied eines solchen DatenGrids zum ValueListEditor ist auch, daß bei einem ValueListEditor die Value-Spalte in jeder Zeile einen anderen Datentyp mit unterschiedlichen Eigenschaften und Editiermöglichkieten enthalten kann (ähnlich dem ObjektInspektor). Bei einem Datengrid sind alle Zeilen gleich aufgebaut - dafür kann eine Zeile aber mehrere Spalten (Felder) haben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat