Hola santiago14.
Según interpreto de tu mensaje
#11:
Código Delphi
[-]indice:=obtener_ItemIndex_segun_codigo('ES001', cbxTipoSolicitud.Items);
El campo código es de tipo
string.
Si es así, a diferencia de un valor entero, no es posible hacerlo en forma directa mediante el método
AddItem (o
AddObject), tendrías que hacer algo como:
Código Delphi
[-]
...
implementation
type
TClase = Class
Codigo: string;
end;
var
Cl : TClase;
function GetIndexObjFromStr(LB: TComboBox; const Value:string): Integer;
var
i: Integer;
begin
Result := -1;
for i:= 0 to LB.Items.Count-1 do
if Value = TClase(LB.Items.Objects[i]).Codigo then
Result := i;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
while not IBQuery.Eof do
begin
Cl := TClase.Create;
Cl.Codigo := IBQuery.FieldByName('COD_CLIENTE').AsString;
ComboBox1.AddItem(IBQuery.FieldByName('NOMBRE_CLIENTE').AsString,
TObject(Cl));
IBQuery.Next;
end;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
with ComboBox1 do
ShowMessage(Format('%s %s',[Items[ItemIndex],
TClase(Items.Objects[ItemIndex]).Codigo]));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ComboBox1.ItemIndex := GetIndexObjFromStr(ComboBox1, 'ES001');
end;
...
Saludos