Para ese caso yo no me mataría pensando demasiado y me iría por lo simple:
Código Delphi
[-]type
TChemical = record
Name: string[20];
Value: double;
end;
TChemicalList[0..CHEMICALS_COUNTS] of TChemical;
var
Cl: TChemicalList;
Inicializo el array con los datos (otra alternativa, quizá más apropiada, es directamente definir este array como constante e inicializado por defecto) y cargo en el combo el [].Name. De este modo se puede vincular la posición del ítem seleccionado (ItemIndex) con el elemento en cuestión y recuperar el valor.
A modo de ejemplo:
Código Delphi
[-]TForm1.SelectElement(Sender: TObject);
var value: double;
begin
Value := Cl[ComboBox1.ItemIndex].Value;
end;
Saludos,