TValueListEditor => PickList + STrings
-
Hallo!
1. Ich habe hier die TValueListEditor-Komponente und würde gerne bei den Values (Werten) eine PickList haben
2. und irgendwie scheitere ich schon daran, einen einfachen Wert in die Liste hinzuzufügen.
Also die 2 FragenMein erster Versuch, die Komponente zu einer Picklist zu überreden:
ValueListEditor1->ItemProps->Picklist={"this","that"};
Ich habe kein Beispiel für meine 2 Fragen finden können.
MfG
Genscher
-
Sieh dir mal an, vom welchem Typ ItemProps::PickList ist.
Ausserdem solltest du noch einen Blick auf die Deklaration von TValueListEditor::ItemProps selbst werfen; die Elemente werden zwingend per Index angesprochen.
-
Hallo!
Ich habe jetzt eine Stunde die Hilfe + Forum durchsucht, und komme erfolglos zurück.
Ich habe mich deines Vorschlags angenommen und mein Befehl sieht jetzt so aus:
TStringList *TempList = new TStringList; TempList->Clear(); TempList->Add("Ja"); TempList->Add("Nein"); ValueListEditor1->ItemProbs[1]->Picklist=TempList;
Jedoch kommt da ein Compiler-Fehler:
[C++ Error] Unit2.cpp(161): E2316 'ItemProbs' is not a member of 'TValueListEditor'Vielleicht weiß jemand wie ich das behebe.
MfG
Genscher
-
ItemProbs ist nun mal kein Mitglied von TValueListEditor ...
-
Hallo!
Ja, blöder Rechtschreibfehler, aber funktioniert trotzdem nicht.
Ich bin jetzt auf einen weiteren Hinweis in der bcb-hilfe gestoßen, dass man erst die "esPicklist" Property setzen soll und dann halt die Liste der Picklist-Property hinzufügen soll. Aber die praktische Umsetzung hapert noch:Setzen der "esPickList"-Propery: (gibt natürlich Fehler zurück)
ValueListEditor1->ItemProps[1]= ValueListEditor1->ItemProps[1] << esPickList;
Zuweisung der Strings zur PickList mag er auch noch nicht:
ValueListEditor1->ItemProps[1]->Picklist=TempList;
Ich weiß halt nicht, wie man auf Properties (Eigenschaften) zugreift, und ihnen Werte zuweißt.
Danke schonmal für die Mühe!
-
Nackte Form, ValueListEditor mit Standardeinstellungen, ein paar Strings eingetragen.
for (int i = 0; i < ValueListEditor1->RowCount - 1; i++) ValueListEditor1->ItemProps[i]->PickList->CommaText = "111,222,333";
Die PickList muss nicht explizit eingestellt werden, aber wenn, dann so:
ValueListEditor1->ItemProps[0]->EditStyle = esPickList;
-
Danke schön!
Funktioniert tadellos.
-
Hallo,
Ich mache es einfach so:
Die Einträge in eine TStringliste wie Genscher
TStringList *TempList = new TStringList; TempList->Clear(); TempList->Add("Ja"); TempList->Add("Nein");
und dann mit
ValueListEditor1->ItemProps[1]->PickList->Assign(TempList)
zuweisen.
Daß lohnt sich wenn man viele Picklisten mit gleichem Inhalt hat.
Gruß Mario
-
Danke, da wäre sonst bestimmt nie jemand drauf gekommen ...
-
Hallo,
so nun hoffendlich nicht als Unregistrierter.
Mal noch ne Frage:
Wenn ich im ValueListEditor eine Zeile anfüge, dann soll im Werte-feld die Picklist belegt werden.
Welches Ergeignis tritt ein, wenn eine neue Zeile angelegt wird ?
Gruß Mario
-
Mario Rosenbohm schrieb:
Welches Ergeignis tritt ein, wenn eine neue Zeile angelegt wird ?
Gar keines!? Und wozu auch? Du (bzw. dein Programm) erzeugst die neue Zeile, also solltest du (bzw. dein Programm) doch auch wissen, wann das passiert und die Zuweisung vornehmen können.
-
Na ganz einfach, wenn ich auf der letzten Zeile stehe und [Cursor down] drücke.
Da muß ich doch wohl nicht das Key Press Ereigniss auswerten (Oh Gott mit Kanonen auf Spatzen ...)
Gruß Mario