[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