¿Uso de enumeraciones con TEdit?
Publicado por arsenio (1 intervención) el 19/02/2006 11:53:45
Saludos
Tengo una enumeración TDiaSemana (Lunes, Martes, Miercoles, ...) y quiero recoger un valor numérico en un TEdit. Con un Case ... Of me gustarÃa imprimir 'Lunes', 'Martes', etc. en función del valor numérico del Tedit pero no sé como hacerlo. Hago esto:
procedure TForm1.Button1Click(Sender: TObject);
var
dia : TDiaSemana;
begin
dia := StrToInt (Edit1.Text);
case dia of
Lunes : ShowMessage ('Lunes');
Martes : ShowMessage ('Martes');
Miercoles : ShowMessage ('Miercoles');
Jueves : ShowMessage ('Jueves');
Viernes : ShowMessage ('Viernes');
Sabado : ShowMessage ('Sabado');
Domingo : ShowMessage ('Domingo');
end;
end;
Me da error en la lÃnea de dia := StrToInt(...); de tipos incompatibles entre 'Integer' y 'TDiaSemana'. Es lógico pero me interesa hacer asà el case, utilizando valores de enumeración. El problema es que el "valor numérico" de cada valor de la enumeración (no sé si me explico) se recoge por TEdit, lo decide el usuario.
También he probado a poner el case asi: case StrToInt (Edit1.Text) of pero me da el mismo error en la compilación
¿Cómo tengo que hacerlo, alguien sabe? En C++ sé que se puede hacer y no es algo muy complejo...
Tengo una enumeración TDiaSemana (Lunes, Martes, Miercoles, ...) y quiero recoger un valor numérico en un TEdit. Con un Case ... Of me gustarÃa imprimir 'Lunes', 'Martes', etc. en función del valor numérico del Tedit pero no sé como hacerlo. Hago esto:
procedure TForm1.Button1Click(Sender: TObject);
var
dia : TDiaSemana;
begin
dia := StrToInt (Edit1.Text);
case dia of
Lunes : ShowMessage ('Lunes');
Martes : ShowMessage ('Martes');
Miercoles : ShowMessage ('Miercoles');
Jueves : ShowMessage ('Jueves');
Viernes : ShowMessage ('Viernes');
Sabado : ShowMessage ('Sabado');
Domingo : ShowMessage ('Domingo');
end;
end;
Me da error en la lÃnea de dia := StrToInt(...); de tipos incompatibles entre 'Integer' y 'TDiaSemana'. Es lógico pero me interesa hacer asà el case, utilizando valores de enumeración. El problema es que el "valor numérico" de cada valor de la enumeración (no sé si me explico) se recoge por TEdit, lo decide el usuario.
También he probado a poner el case asi: case StrToInt (Edit1.Text) of pero me da el mismo error en la compilación
¿Cómo tengo que hacerlo, alguien sabe? En C++ sé que se puede hacer y no es algo muy complejo...
Valora esta pregunta


0