Pregunta

Estoy tratando de deshacerme de algunas sugerencias (*) El compilador de Delphi emite. Navegando por el Herramientas veo un Iotatoolsfilter Parece que podría ayudarme a lograr esto a través de su notificador, pero no estoy seguro de cómo invocar esto (a través de qué XXXServices puedo acceder al filtro).

¿Alguien puede decirme si estoy en el camino correcto aquí? ¡Gracias!

(*) En particular, H2365 sobre los métodos anulados que no coinciden con el caso del padre. No es tan agradable cuando tiene alrededor de 5 millones de líneas de código activo con una convención de código ligeramente diferente que la de Embarcadero. Hemos estado trabajando sin pistas durante meses, y extrañamos un poco 'm. :-)

¿Fue útil?

Solución

Incluso si pudieras consultar Borlandideservices para iotatoolsfilter, esa interfaz no te ayudará a hacer lo que estás pidiendo. Esa interfaz se introdujo como parte de un mecanismo para agregar herramientas de compilación adicionales (compiladores, etc.) al IDE (antes de que el IDE usara MSBuild). Le permitió escribir un "filtro" personalizado para manejar la salida de una herramienta de compilación en particular, pero no le permitiría aplicar un filtro a una de las herramientas incorporadas (como el compilador Delphi).

La razón por la que el Supports(BorlandIDEServices, IOTAToolsFilter, OTAToolsFilter) La llamada falla en Delphi2010 es que una vez que el soporte de MSBuild se agregó al IDE, la antigua forma de agregar herramientas de compilación al IDE se deshabilitó, y la interfaz Borlandideservices ya no admitió iotatoolsfilter.

La declaración de IOTATOOLSFILTER probablemente debería haberse marcado en desuso en ToolsAPI.pas (o al menos debería haberse mencionado en el comentario del código fuente que ya no es compatible).

En cuanto a su deseo de filtrar una pista en particular, no soy consciente de una forma de hacerlo a través de ToolsAPI. Parece una cosa razonable que se puede agregar a IotamessageServices (la capacidad de enumerar, filtrar y cambiar los mensajes en la vista del mensaje del IDE). Ingresaría una solicitud en QualityCentral para eso.

Además, vote por QC #35774 (http://qc.embarcadero.com/wc/qcmain.aspx?d=35774), como si eso se implementara, no necesitaría usar el ToolsAPI para este tipo de cosas.

Otros consejos

De acuerdo a http://docwiki.embarcadero.com/radstudio/en/obtaining_tools_api_services Debería ser posible acceder a él directamente usando Borlandideservices, por ejemplo:

var
  OTAToolsFilter: IOTAToolsFilter;
begin    
if Supports(BorlandIDEServices, IOTAToolsFilter, OTAToolsFilter) then
  ShowMessage('supports IOTAToolsFilter')
else
  ShowMessage('IOTAToolsFilter NOT supported');
end;

Sin embargo, esto no devuelve la interfaz deseada en Delphi 2010 (obtendrá el mensaje no compatible), por lo que hay un error en la documentación o un error en Borlandideservices que no devuelven la interfaz correcta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top