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