Ver Mensaje Individual
  #27  
Antiguo 16-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Ese código está algo raro, yo lo sé. Deja te cuento el por qué.

Desde que comencé a usar Delphi en Windows 2000 y ahora en Windows XP me sucedían ocasionalmente comportamientos similares al que te sucede a tí aunque en otros casos; a veces colocando un ListView, a veces con un ImageList, etc.

Estuve buscando en la red y me encontré que esto del ntdll.DbgUserBreakPoint es conocido; al parecer algún programador en Microsoft se dejó una instrucción INT3 (punto de corte o 'break point') en el código de la librería ntdll.dll

El código que te puse lo publicó Peter Morris (conocido e los grupos de noticias de Borland) en http://www.howtodothings.com/showart...sp?article=654 y, en efecto, soluciona el problema.

No expliqué esto antes porque no sé a ciencia cierta si eso es lo que ocurre. Lo que sí es cierto, es que, de ser éste el problema, entonces no tienes de qué preocuparte ya que sólo se presenta cuando estás haciendo un 'debug' de la aplicación y no ya en ejecución.

Para usarlo simplemente pégalo en la sección initialization del formulario:

Código:
unit Unit1;

interface

uses
  bla, bla, bla;

type
  TForm1 = class(TForm)
  end;

var
  Form1: Form1;

interface

procedure PatchINT3;

{ 
  Aquí pegas el código 
}

initialization

// Llamada al procedimiento
PatchINT3;

end.
Si no es eso pues ya buscaremos por otro lado.

// Saludos
Responder Con Cita