Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-01-2006
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
method WndProc not found in ....

Hola amigos, Bueno estoy teniendo este problemita con un servicio de windows., se que no es lo mas correcto visualizar formularios con un servicio, pero así me lo han requerido..
Buscando en el foro como hacer para detectar la creación de la barra de tareas. encontre el codigo que debajo uso
"procedure WndProc(var Msg: TMessage); override"

pero al momento de compilar me salta el siguiente error y no se porque. alguna idea??

method WndProc not found in Base class

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs,
  ExtCtrls,Forms,Newscsnycit;

type
  TXCnSrv = class(TService)
    Timer1: TTimer;
    procedure ServiceExecute(Sender: TService);
    procedure Timer1Timer(Sender: TObject);
    procedure ServiceCreate(Sender: TObject);
    procedure ServiceStop(Sender: TService; var Stopped: Boolean);
  private
    { Private declarations }
  public
    function GetServiceController: TServiceController; override;
    { Public declarations }
  Protected
    procedure WndProc(var Msg: TMessage); override;
end;

var
  XCnSrv: TXCnSrv;
  CMTaskBarCreated:Cardinal;
  fmX:TfmX;
implementation
uses auditoria;
{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  XCnSrv.Controller(CtrlCode);
end;

function TXCnSrv.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure TXCnSrv.ServiceExecute(Sender: TService);

begin
  While not terminated do
    ServiceThread.ProcessRequests(True);

end;

procedure TXCnSrv.Timer1Timer(Sender: TObject);
begin
  try
    EscribirAuditoria('ingreso en el Timer');
    fmX:= tfmX.Create(nil);
    EscribirAuditoria('Creo el formulario');
    fmX.Show;
    fmX.Hide;
    EscribirAuditoria('visualizo el form');
  finally
    Timer1.Enabled:=false;
    EscribirAuditoria('Desabilito el timer');
  end;
  EscribirAuditoria('Salio del Timer');
end;

procedure TXCnSrv.ServiceCreate(Sender: TObject);
begin
  EscribirAuditoria('*-*=**-*=**-*=**-*=**-*=**-*=**-*=*');
  EscribirAuditoria('Creando el servicio');
  Timer1.Enabled:=false;
  Timer1.Interval:=60000;//espera a que exchange & SQLsr. esten listos
  Timer1.Enabled:=true;
  EscribirAuditoria('Servicio Creado');
  EscribirAuditoria('*-*=**-*=**-*=**-*=**-*=**-*=**-*=*');
end;

procedure TXCnSrv.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
  EscribirAuditoria('Servicio detenido');
  Stopped :=true;
end;
//Detecta la Creación de la barra de tareas
procedure TXCnSrv.WndProc(var Msg: TMessage);
begin
  inherited;
if (Msg.Msg = CMTaskbarCreated) and (not CredTsk)  then
  begin
    //Procedimiento que crea el Icono en SysTray....
    fmX.MostrarForm;
  end;
end;

end.
Responder Con Cita
  #2  
Antiguo 27-01-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Enan0
...pero al momento de compilar me salta el siguiente error y no se porque. alguna idea??
method WndProc not found in Base class
Lo que pasa es relativamente sencillo; Que ese método lo debiste encontrar en un derivado de TCustomForm, que sí lo posee y por lo tanto se puede redefinir en sus derivados.
El problema es que la clase TService (de la que hereda la tuya) no lo tiene, por eso no puedes redefinirlo utilizando el overeride;
Eso es lo que te está diciendo el mensaje.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
could not find source location to add method nombre_del_metodo. "END." or INITIALIZAT rob1 Varios 1 16-12-2005 18:34:15
Aviso del compilador: Method hides virtual method of base type dec OOP 4 05-11-2005 13:35:35
Server method not found Luis59 SQL 0 19-06-2005 16:56:35
EdatabaseError FIELD NOT FOUND en consulta JOIN syntetiko SQL 5 02-10-2004 00:35:31
blob not found wonder boy Conexión con bases de datos 3 27-03-2004 16:03:12


La franja horaria es GMT +2. Ahora son las 17:28:27.


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
Copyright 1996-2007 Club Delphi