2009-04-30 13 views
5

¿Alguien sabe lo que significa este error?Delphi: F2084 Error interno T2575

Viene y entra en una de mis unidades. La adición de un espacio o un lineshift en algún momento va a resolver que, en algún momento no ...

estoy usando Delphi 2007.

+0

Por favor, brinde información acerca de la versión – schnaader

Respuesta

12

Aquí está una Delphi internal error guide que quizá le ayude. El error interno a menudo se puede resolver borrando archivos DCU, reiniciando el IDE o no usando una herramienta que acelera el inicio de Delphi (como DelphiSpeedUp).

Pero en la mayoría de los casos, este es un error extraño en el compilador Delphi y si sabes trabajar en ello y esto no va a ser costoso, hazlo y sé feliz. Una vez tuve la versión de la consola dcc32 fallando (IDE compilado bien) cuando aumenté una variable con Inc y usando la suma en lugar de Inc resolvió el problema ...

+1

de Delphi No me sirve de ayuda en algunos casos, pero "* Error interno a menudo puede resolverse borrando archivos DCU, reiniciando el IDE *" - suena parecido a "* reinstalar Windows * "y" * llamar a un exorcista * "podrían ser los siguientes dos consejos ;-) – JensG

+0

La guía de error interna da error interno :-) – nurettin

+0

@nurettin: Gracias por informar, corregido por Wayback Machine :) – schnaader

5

Lo mejor que se puede hacer es informar esto a CodeGear. Realmente ayuda si puede encontrar una manera de causar el error de forma consistente a propósito, para que puedan rastrearlo más fácilmente.

1

Todos los errores internos son cosas que no deberían haber sucedido, pero sí lo hicieron. Marque QC y si no está allí, repórtelo. Si puede proporcionar una forma de reproducirlo, será más probable que lo solucionen.

Normalmente para errores internos Hago una compilación completa o reinicio Delphi.

1

tengo este error en un caso:

procedure TDMData.SetValue(AValue: Word); 
var 
    prevValue: Word; 
    method: TMethod; 
begin 
    if FValue = AValue then 
    Exit; 
    prevValue := FValue; 
    FValue := AValue; 
    for method in FValueChangeEvent.Notifications do 
    TDMDataValueChangeNotification(method)(Self, AValue, prevValue); 
end; // <--- Fatal: F2084 Internal Error: T2575 

Tanto la propiedad GetNotifications Notificaciones y el método GetEnumerator del registro devuelto por GetNotifications tenido una directiva en línea. Solo quitando la línea de GetEnumerator, el problema desapareció.

Nota: ¡funciones similares no estaban causando este error interno!

2

Tuve este problema también, y he probado muchas soluciones, pero ninguna de ellas me ayudó. luego he encontrado esta causa de error: en la función que se produce un error, tenía un func Inc() que estaba tratando de incluir una variable de cadena. así que solucioné ese error y todo se volvió normal :)

4

Una manera simple de obtener un error interno es usar el corte & pegar para crear una nueva rutina. Moví todo el código dentro de un bloque IF a un nuevo procedimiento y obtuve el error interno T2335 al final del nuevo proceso (en Delphi 7).

El error fue causado por la línea "If (Something) then Break;". El problema era que este código ya no estaba dentro de un bucle, por lo que no había nada de lo que romperse. Cambiar 'Salto' a 'Salir' solucionó el problema.

Así que busque las instrucciones Break and Continue.

2

tuve otro caso en la actualidad (D2010), todo sintaxis perfectamente legal ya que el buen ol' días Turbo Pascal:

type 
    TValueRec = record 
    selector : (int,str,unk); 
    intVal : Integer; 
    strVal : WideString; 
    unkVal : IUnknown; 
    end; 

El uso de este registro en un método de una clase basada en los genéricos me trajo un "F2084 interna error: AV0661CFEF-R0000000C-0 "en algún lugar en el medio de otra unidad.

Cambiar esta manera hizo el truco para mí:

type 
    TValueRecSelector = (int,str,unk); 

    TValueRec = record 
    selector : TValueRecSelector; 
    intVal : Integer; 
    strVal : WideString; 
    unkVal : IUnknown; 
    end; 

Sin embargo, muy molesto que tales cosas producen este tipo de errores en los lugares que no tienen relación en el código.

Cuestiones relacionadas