[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