[Lazarus-es] Error en paso de parametros

José Mejuto joshyfun en gmail.com
Dom Oct 21 15:29:41 CEST 2012


El 21/10/2012 1:00, Antonio Évora escribió:
> Estimados listeros,
> Trabajo con la revisión de SVN 35723 de Lazarus y fpc 2.4.4. y estoy
> teniendo un problema con el paso de parámetros a una función. Llamo dos
> veces a la función (exactamente la misma llamada) y la primera se pasa
> todo correctamente pero la segunda vez el primer parámetro no es pasado
> (pasa como cadena vacía). Añado el código por si le queréis dar un
> vistazo, en un proyecto nuevo ponéis un botón y listo..
>
> function GetSubString(aStr, aSeparator: string;
>    EqualsIfNotSeparator, TrimParts: boolean; MinLenghtPartLeft,
>    MinLenghtPartRight: integer; out aPartLeft, aPartRight: string):
> boolean;

>    if not GetSubString(aStr,'|',false,true,2,5,aWhereField,aStr) then

Hola,

Pasas aStr 2 veces, al principio y al final. En GetSubString el primer 
parámetro no tiene modificador, pero los dos ultimos son tipo out, lo 
que quiere decir que la variable que se pase ahí será inicializada a "" 
justo antes de entrar en la función.

Usa var en vez de out, o mejor variables diferentes. Pasar la misma 
variable en dos parámetros cuando uno va a ser modificado suele ser un 
desastre por norma general.






More information about the Lazarus-es mailing list