TRadioGroup Item umbenennen
-
Hey,
nutze ein TRadioGroup-Objekt mit 12 Items. Diese möchte ich im Laufe des Programms ändern lassen. Wie kann ich dieses durchführen lassen. Ein Quellcode Beispiel wäre nett.
Mein bisheriger Versuch sah so aus:Form_ChannelDiscr->RG_Channel->Items[i].Text = searchXMLFile(IntToStr(i), language , "-", "CHANNEL", ExtractFilePath(Application->ExeName)+"dynamictext_channel.xml");
-
Hallo
Form_ChannelDiscr->RG_Channel->Items->Strings[i] =
Siehe auch die BCB-Hilfe zu TStrings.
bis bald
akari
-
Erhalte dann leider diese Meldung:
[C++ Fehler] ChannelDiscr.cpp(28): E2285 Keine Übereinstimmung für 'TStrings::operator =(AnsiString)' gefunden
Die Funktion serachXMLFile(...) gibt allerdings ein AnsiString-Wert zurück.
-
Hallo
Das kann aber nicht am RadioGroup-Teil liegen, denn dieser kleiner Test funktioniert nachweislich korrekt
RadioGroup1->Items->Strings[1] = "Test!";
Aus der Fehlermeldung geht aber hervor, das die Funktion keinen AnsiString, sondern einen TString zurückliefert. Das kannst du so nicht zuweisen. Entweder must du noch aus dem TStrings noch einen einzelnen AnsiString aussuchen, oder du weist gleich die ganze Liste der RadioGroup zu.
RadioGroup1->Items->Assign(xml(...));
Allerdings stellt sich so die Frage, wer dann die Ownership des TStrings-Objektes übernimmt. Da TStrings nicht auf dem Stack angelegt werden können, müßen sie mit new erzeugt wurden sein, was bedeutet das auch jemand diesen Speicher mit delete wieder freigeben muß. Schau in der Doku des XML-Packetes nach, wer für den Speicher verantwortlich ist.
Das würde dann also so aussehenTStrings* result = xml(...); RadioGroup1->Items->Assign(result); delete result;
bis bald
akari