Hola lynu, básicamente se trata de recorrer el grid sabiendo en la columna en la que quieras buscar el valor, si ese valor existe.
Un ejemplo rápido sin comprobar:
Código Delphi
[-]
function ExisteEnGrid(Columna : Integer; Valor : String) : Boolean;
var r : Integer;
begin
Result := False;
for r := 0 to Grid.RowCount - 1 do begin if Trim(Grid.Cells[Columna, r]) = Valor then begin Result := True; Break;
end;
end;
end;
Despues, donde tengas que controlar cuando se inserta el valor, puede ser un botón de guardar o si meten los valores en el grid
directamente puedes usar evento OnExitCell por ejemplo y validar ese valor si es true muestras un mensaje de error y borras el valor de la celda
Espero te sirva.
Saludos