Muchas gracias Maxi, tras probar el ejemplo que t� me has mandado me daban estos errores:
Unit1.pas(69,41) Error: Only class methods, class properties and class variables can be referred with class references
Unit1.pas(69,46) Error: Only class class methods, class properties and class variables can be accessed in class methods
Unit1.pas(73,40) Error: Only class methods, class properties and class variables can be referred with class references
Unit1.pas(73,40) Error: Only class class methods, class properties and class variables can be accessed in class methods
Pero tu ayuda me ha sido valiosisima pues me has abierto un camino en el que he profundizado y ya me funciona
con este c�digo:
function TForm1.ControlCorrecto(Sender: TObject): Boolean;
begin
RESULT := False;
if Sender is TMemo then begin
// RESULT:= length(Trim(Sender as TMemo.Lines.Text)) = 0;
if length(Trim(Tmemo(Sender).Text)) = 0 then
EXIT;
end;
if Sender is TEdit then begin
if length(Trim(TEdit(Sender).Text)) = 0 then
EXIT;
end;
RESULT := True;
end;
Te repito much�simas gracias.
El 22 de junio de 2015, 14:51, Maxi <maximiliano.duarte en gmail.com> escribi�:
Show quoted text 91 lines
lo que tienes que saber que clase de objeto es en realidad. Si heredan
del mismo padre podrias hacer eso. Pero el memo tiene lines.text
llamas
ControlCorrecto(Edit1);
ControlCorrecto(Memo1);
function TForm1.ControlCorrecto(Sender: TObject): Boolean;
begin
Result:=False; //por si no es ninguno de los esperados
if Sender is TMemo then //preguntamos si es un objeto memo
Begin
result:= length(Trim(Sender as TMemo.Lines.Text))= 0; //tratamos
al objeto como un memo
end
Else
if Sender is TEdit then //preguntamos si es un objeto Edit
Begin
result:= length(Trim(TEdit(Sender).Text))= 0; //tratamos al
objeto como un edit en formato Cast estilo C++
end
end;
El d�a 22 de junio de 2015, 4:23, Juan Perles <perlesj en gmail.com>
escribi�:
> Quiero hacer una serie de comprobaciones que son iguales a un Control
TEdit
> y a un TMemo.
> Como se ve en el ejemplo de mas abajo, el cuerpo de los procedimientos
es el
> mismo, lo �nico que cambia es la cabecera. �No puedo hacer un �nico
> procedimiento?
>
> function TForm1.EditCorrecto(Control: TEdit): Boolean;
> begin
> if length(Trim(Control.Text))= 0 then
> RESULT := False
> else
> RESULT := True;
> end;
>
> function TForm1.MemoCorrecto(Control: TMemo): Boolean;
> begin
> if length(Trim(Control.Text))= 0 then
> RESULT := False
> else
> RESULT := True;
> end;
>
> He intentado unificarlos haciendo el siguiente procedimiento
>
> function TForm1.ControlCorrecto(Sender: TObject): Boolean;
> begin
> if length(Trim(Sender.Text))= 0 then
> RESULT := False
> else
> RESULT := True;
> end;
>
> El resultado es que no me reconoce el Atributo Text.
>
> Muchas gracias por anticipado por vuestras molestias.
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
>
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
--
El que pregunta aprende, y el que contesta aprende a responder.
No a la obsolecencia programada:
http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml
Linux User #495070
http://domonetic.com/blog
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20150622/4a4a9c80/attachment.html>