Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Desbordamiento de pila (https://www.clubdelphi.com/foros/showthread.php?t=51132)

ecfisa 06-12-2007 13:39:34

Desbordamiento de pila
 
Hola, mi problema es el siguiente:
Tengo en una unidad (xxx) una función que verifica nros. enteros:
unit xxx;
uses...
interface
procedure NumEntExit(Sender: TObject);
implementation
procedure NumEntExit(Sender: TObject);
begin
with Sender as TCustomEdit do
try
StrToInt(Text);
except
ShowMessage('Error');
SetFocus;
end;
end;

Ahora en la otra (yyy) creo el evento OnExit del TEdit...

procedure TForm1.EditExit(Sender: TObject);
begin
NumEntExit(Sender);
end;

y me da el error desbordamiento de pila. Trate de asignar al evento EditExit la función NumEdit (perteneciente a la otra unidad), pero no he podido.

Agradecería infinitamente cualquier sugerencia.

Chris 06-12-2007 15:27:27

Bueno, no entiendo a que te refieres con "desbordamiento de pila"; pero por otro lado, el que no puedas asignar el evento OnExit al componente se debe a que no se puede asignar un "Ordinal Procedure" a un "Procedure of Object". ¿Cómo solucionar esto? bien, la forma correcta de declarar sería:

Código Delphi [-]
unit xxx;
uses...
interface
Type
TmisProcedimientos = Class
procedure NumEntExit(Sender: TObject);
end;

implementation
procedure TmisProcedimientos.NumEntExit(Sender: TObject);
begin
//  .... tu código
end;

y luego lo asignas de esta forma:
Código Delphi [-]
miEdit.OnExit := TmisProcedimientos.NumEntExit;

Ya con eso deberías poder asignar los eventos sin problemas (sólo mediante código).

Saludos.

ecfisa 06-12-2007 16:08:35

D & W...
 
Muchas gracias, funciona perfecto.


La franja horaria es GMT +2. Ahora son las 04:49:16.

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