Diferentes opciones:
1- Por que no lo haces con SQL (la sintaxis puede variar dependiendo del motor)?
Código SQL
[-]
SELECT * FROM TABLA WHERE Campo IN ('A','PA','M,'PM','C','PC')
2- Puedes usar las funciones de RTI de Delphi y utilizar una enumeracion, que haga:
Código Delphi
[-]
type
TCosasEnum = (Alternadores,PiezasAlternador...) ;
uses TypInfo;
var s: string;
s := GetEnumName(TypeInfo(TCosasEnum ),
integer(tpDelphi)) ;
Cosa := TCosasEnum(GetEnumValue(TypeInfo(TCosasEnum ),s)) ;
Puedes crear un objeto, que interno maneje un Array. Me gusta un poco mas esto, porque es mas extensible (y solo si lo del SQL no se puede, aunque lo dudo)
Código Delphi
[-]
ObjetoDeCosas.EstaEnTipos(DataModule2.IBSQL1.FieldByName('ref_type').AsString
Ademas, la sintaxis del if se escribe de forma mas clara y sin tantas anidaciones
Código Delphi
[-]
if DataModule2.IBSQL1.FieldByName('ref_type').AsString = 'A' then
begin
... end else begin
if DataModule2.IBSQL1.FieldByName('ref_type').AsString = 'PA' then
begin
...end else begin end;