[Lazarus-es] Ayuda con POO

Maxi maximiliano.duarte en gmail.com
Lun Jun 22 22:34:47 CEST 2015


jeje, faltaron unos parentesis.... es que no lo hice sobre el ide

El día 22 de junio de 2015, 15:57, Juan Perles <perlesj en gmail.com> escribió:
> 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ó:
>>
>> 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
>
>
>
> _______________________________________________
> 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




More information about the Lazarus-es mailing list