Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Extraño y seio error. El IDE no identifica bien a TWebModule (https://www.clubdelphi.com/foros/showthread.php?t=53141)

rolandoj 12-02-2008 04:28:42

Extraño y seio error. El IDE no identifica bien a TWebModule
 
Hola,

Estoy teniendo serios y extraños problemas con la clase TWebModule en Delphi 2007 Update 3.

Para explicarlos, he aquí un DLL de ejemplo:

Proyecto PrbISAPI :

Código Delphi [-]
library PrbISAPI;
uses
  HTTPApp,
  WebBroker,
  ISAPIApp,
  UdmPrbISAPI in 'UdmPrbISAPI.pas'; {dmPrbISAPI: TWebModule}
{$R *.RES}
exports
  GetExtensionVersion,
  HttpExtensionProc,
  TerminateExtension;
begin
  Application.Initialize;
  Application.CreateForm(TdmPrbISAPI, dmPrbISAPI);
  Application.Run;
end.

Archivo UdmPrbISAPI.Pas :

Código Delphi [-]
unit UdmPrbISAPI;
interface
uses
  HTTPApp;
type
  TdmPrbISAPI = class(TWebModule)
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
   dmPrbISAPI:         TdmPrbISAPI;
implementation
{$R *.DFM}
end.

Archivo UdmPrbISAPI.dfm :

Código Delphi [-]
object dmPrbISAPI: TdmPrbISAPI
  Left = 386
  Top = 258
  ClientHeight = 123
  ClientWidth = 207
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
end

Para efectos de simplificar al máximo, deje solo la unidad HTTPApp en UdmPrbISAPI.Pas.

En este ejemplo, el sistema compila sin errores; pero, cuando se usa el inspector de objetos no muestra las propiedades publicadas de TWebModule en HTTPApp (o sea Actions, BeforeDispatch, AfterDispatch y OnException).

Ahora bien, si se intenta buscar la definición que el sistema está tomando para TWebModule (manteniendo presionado Ctrl y haciendo click sobre TWebModule en UdmPrbISAPI.Pas), el sistema conduce al archivo HTTPApp.Pas ubicado en el subdirectorio Source\Win32\Internet del directorio
de instalación de Delphi 2007. La definición que este archivo tiene de TWebModule muestra correctamente las propiedades publicadas, que no aparecen en el inspector de objetos.

El ejemplo lo he hecho para ilustrar mi investigación del problema original el cual era que mi verdadera aplicación, creada en una versión previa de Delphi, compila y se ejecuta aparentemente sin problemas con el sistema respondiendo a los eventos Action del TWebModule; pero cuando fuí
abrir en el IDE el fuente del TWebModule, me saca un error diciendo que la propiedad Actions no existe, con lo cual no me deja depurar. En conclusión, si no puedo depurar, tengo un problema muy serio.

Al principio pensé que algo en mi archivo estaba corrupto; pero después de gastar tiempo tratando de encontrar el error, opté por hacer este pequeño ejemplo de prueba, y para mi sorpresa, pasa lo mismo. Vale anotar que incluso apagué el computador antes de escribir el ejemplo.

Lo más sorprendente para mí es que una busqueda de todos los archivos HTTPApp muestra solo tres archivos en el directorio de instalación de Delphi :

HTTPApp.dcu de 71Kb en Lib
HTTPApp.dcu de 79Kb en Lib\Debug
HTTPApp.pas de 70Kb en Source\Win32\Internet

Todos con la siguiente fecha y hora : 2007/08/26 01:03 pm

Lo anterior parece indicar que la compilación de ambas versiones del archivo si corresponden al archivo fuente; pero lo dudo porque si la versión compilada de mi programa identifica correctamente las propiedades e igualmente el seguimiento a la definición del TWebModule lo hace; pero el Inspector de Objetos no lo hace, lo único que se me ocurre es que uno de los dos dcu, y
supondría que el de depuración, no corresponde a los fuentes.

Alguién puede confirmarme si le pasa lo mismo ?

Alguién sabe si es un error conocido de Delphi 2007 ?

Alguién conoce alguna solución ?

Por cierto, tampoco encontré en Delphi 2007 una opción para crear una Web Server application, como existía en las versiones anteriores, así que el ejemplo tuve que crearlo a mano. Alguién sabe que pasó ?. Es que acaso aparece con otro nombre ?

Agradezco de antemano cualquier ayuda

rolandoj 12-02-2008 04:52:02

Una observación
 
Hola,

Si alguién reproduce el ejemplo, es de advertir que a primera vista podría creer que su sistema está bien porque podría confundir la propiedad Action mostrada por el inspector con la propiedad Actions (s al final) que es la que debería aparecer y que permite invocar al editor de acciones.


La franja horaria es GMT +2. Ahora son las 19:20:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi