PDA

Ver la Versión Completa : Hacer referencia de una variable a un elemento de un ComboBox


Missael
14-11-2018, 20:21:22
Hola, buenas tardes

Disculpen, Si tengo un ComboBox con ciertos Strings, y quiero hacer referencia a ellos dentro de otra variable.

Por ejemplo: Si el usuario selecciona el primer valor del ComboBox, este le corresponda el 1, y si selecciona el segundo string se le asigne en otra variable, el numero 2, y asi sucesivamente. y si este elimina lo que a escogido del combobox, el valor sea 0

En pocas palabras, asignar numeros a los elementos del comboBox.

Missael
14-11-2018, 20:24:17
Talvez sea una pregunta bastante tonta, pero estoy atorado, estoy trabajando con dos forms, donde la primera es la que recibe los datos del comboBox y es donde y la segunda muestra los datos en el comboBox, es ahi donde quiero que al seleccionar, automaticamente me diga que numero le correponde a cada elemento del comboBox

movorack
14-11-2018, 20:29:51
TComboBox.ItemIndex (http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/StdCtrls_TComboBox_ItemIndex.html)


Lea ItemIndex para determinar qué elemento está seleccionado. El primer elemento de la lista tiene índice 0, el segundo elemento tiene índice 1 y así sucesivamente. Si no se selecciona ningún elemento, el valor de ItemIndex es -1. Si el control de lista admite varios elementos seleccionados, ItemIndex es el índice del elemento seleccionado que tiene el foco.

Establezca ItemIndex mediante programación para seleccionar un elemento pasando el valor del índice.

Missael
14-11-2018, 22:35:23
Esos datos se pueden manipular? cambiarlos por valores dentro de un array ?

Los valores que quiero sustitur los obtengo de un JsonArray

movorack
14-11-2018, 22:39:13
Si el ItemIndex es equivalente al Index del array podrás usarlo algo así


JsonArray[ComboBox.ItemIndex]

Missael
14-11-2018, 23:06:46
Creo que ocupo un poco de mas ayuda, al parecer no redacte bien

En un For obtengo los valores de mi JsonArray, tengo dos valores en un comboBox, y otros en un StringList, los que quiero añadir como indice al comboBox son los que obtengo en el StringList


for LITEM in lJsonValue as TJSONArray do
begin
Form2.BoxQaQc.Items.Add(((LITEM as TJSONObject).Get('subject').JsonValue as TJSONString).Value
+' - '+(((LITEM as TJSONObject).Get('qc').JsonValue as TJSONString).Value));
dcid := (((LITEM as TJSONObject).Get('qcid').JsonValue as TJSONString).Value);
qcid.Add(dcid);
end;

qcdi es el StringList, en dcid guardo cada uno de los valores que obtengo con el Get('qcid');


procedure TForm2.BoxQaQcSelect(Sender: TObject);
var
i : Integer;
r : String;
begin
r := qcid[BoxQaQc.ItemIndex];
fileName := BoxQaQc.Items[BoxQaQc.ItemIndex];
i := AnsiPos('-',fileName);
delete(fileName, 1, i+1);
QcWork.Caption :='You are working on: '+fileName;
ShowMessage(r);
end;

Esto es de mi segunda pantalla, donde para probar, imprimo lo que tenga r que deseo que sean los valores del qcid de la pantalla anterior, y al hacerlo asi, me imprime cosas raras o no imprime nada.

Missael
14-11-2018, 23:12:10
Ya me quedo, lo eh modificado en lo que comente en el mensaje anterior. Gracias por la ayuda movorack :) un saludo