El problema en el for lo tienes en que desactivas los botones en cada paso del for
Por ejemplo e un registro que no es TRATAMIENTO desactivas el boton5, aunque en el registro anterior lo actives.
Lo que puedes hacer es desactivar todos los botones fuera del for y una vez dentro activar los botones
Código Delphi
[-]
TMSFMXToolBarButton5.Enabled := False;
TMSFMXToolBarButton5.Opacity := 0.3;
TMSFMXToolBarButton6.Enabled := False;
TMSFMXToolBarButton6.Opacity := 0.3;
TMSFMXToolBarButton13.Enabled := False;
TMSFMXToolBarButton13.Opacity := 0.3;
TMSFMXToolBarButton17.Enabled := False;
TMSFMXToolBarButton17.Opacity := 0.3;
for i:= 0 to DataModule1.UniQueryConsultaDOC.RecordCount-1 do begin
if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'TRATAMIENTO' then
begin
TMSFMXToolBarButton5.Enabled := true;
TMSFMXToolBarButton5.Opacity := 1;
end;
if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'EXAMEN' then
begin
TMSFMXToolBarButton6.Enabled := true;
TMSFMXToolBarButton6.Opacity := 1;
end;
if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'LABORATORIO' then
begin
TMSFMXToolBarButton13.Enabled := true;
TMSFMXToolBarButton13.Opacity := 1;
end;
if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'FICHA MEDICA' then
begin
TMSFMXToolBarButton17.Enabled := true;
TMSFMXToolBarButton17.Opacity := 1;
end;
DataModule1.UniQueryConsultaDOC.Next;
end;