Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[c++/VCL] TComboBox - key / value *

Pagina: 1
Acties:

Verwijderd

Topicstarter
In borland c++ lukt het mij niet om key/value regels toe te voegen aan een combobox.
Bij deze compenten geprobeerd:
- TComboBox
- TComboBoxEx
- TDBComboBox

Bij deze compnenten deze regels al ingesteld:
cbTest->Items->NameValueSeparator = '=';

Vervolgens op deze manier geprobeerd een item toe te voegen:
cbTest->Items->Append("1=test1");

Het resultaat is dat er in de lijst '1=test1' staat, terwijl ik alleen 'test1' verwacht.

Al veel met google gezocht, maar deze vraag lijkt nog niet te hebben gesteld

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:52
Vroeger, toen ik nog veel in Delphi werkte, maakte ik altijd gebruik van de AddObject method om items (display value + key) aan een combobox toe te voegen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op maandag 20 augustus 2007 @ 09:36:
Vroeger, toen ik nog veel in Delphi werkte, maakte ik altijd gebruik van de AddObject method om items (display value + key) aan een combobox toe te voegen.
Dat is inderdaad mogelijk, alleen is dat niet een beetje overkill, om TObjecten toe te voegen als alleen een String als value moet worden meegegeven.
Als het toch op deze manier moet hoe kan ik dan een String het beste meegeven, hoe kan ik een String casten naar een TObject

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:52
Dat is inderdaad mogelijk, alleen is dat niet een beetje overkill, om TObjecten toe te voegen als alleen een String als value moet worden meegegeven.
Ik weet niet hoe het werkt als je die NameValueSeparator gebruikt (nog nooit gedaan), maar achter de schermen wordt er dan wellicht ook gewoon een TObject toegevoegd ? Ik zou het even moeten uitzoeken. (Heb hier geen Delphi of BCB, en al helemaal niet de laatste versie).
hoe kan ik een String casten naar een TObject
Ehm, even zoeken hoe je moet casten in BCB ?
code:
1
(TObject)"string";

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op maandag 20 augustus 2007 @ 09:46:
[...]
Ik weet niet hoe het werkt als je die NameValueSeparator gebruikt (nog nooit gedaan), maar achter de schermen wordt er dan wellicht ook gewoon een TObject toegevoegd ? Ik zou het even moeten uitzoeken. (Heb hier geen Delphi of BCB, en al helemaal niet de laatste versie).

[...]
Ehm, even zoeken hoe je moet casten in BCB ?
code:
1
(TObject)"string";
Bij mij werkt dit niet, 'k zal wel iets kleins fout doen
code:
1
2
    String test = "1";
    cbTest->AddItem("test1",(TObject)test);

Trouwens, als ik dit doe werkt het wel:
code:
1
2
3
    TStrings *test1;
    test1->Add("1");
    cbTest->AddItem("test1",(TObject)test1);

Is mij alleen nog niet duidelijk hoe ik de geselecteerde value terug kan krijgen, de geselecteerde tekst uit de ComboBox is eenvoudig, maar nu nog de value, heb je daar zo nog een regel van ?

[ Voor 21% gewijzigd door Verwijderd op 20-08-2007 10:02 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

heb je daar zo nog een regel van ?
Zou je het PRG beleid eens door kunnen nemen? Daarin staat prima uitgelegd dat we dit soort vragen liever niet zien.

Overigens staat één en ander prima uitgelegd in de help inclusief een volledig code voorbeeld.De items property van een combobox heeft een Objects property.
Zie Help -> Tstrings -> Properties -> Objects.
C++:
1
2
3
4
5
void __fastcall TForm1::ComboBox1Click(TObject *Sender)

{
  ListView1->ViewStyle = (TViewStyle) ComboBox1->Items->Objects[ComboBox1->ItemIndex];
}

[ Voor 15% gewijzigd door Creepy op 20-08-2007 10:20 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1