Cita:
Empezado por Norum
Hola Delphius!
Vayamos por partes....
Con respecto al formato para que quede el código encuadrado, lo hice con el boton de "resaltar sintaxis de delphi", ahora lo raro es que en la vista preliminar se veía bien como debería ser, ahora en la versión final salió lo que salió, medio desparejo.
Voy a ver en la próxima a ver cómo sale.
|
Es sencillo simplemente antes de poner el código escribres [ DELPHI ] (pero sin los espacios). Luego escribes el código y al finalizar, colocas [ /DELPHI ] (también sin espacios).
Cita:
Empezado por Norum
Con respecto a la Cara Oculta, lo estuve leyendo, me parece un librazo, pero justamente no es para novatos, Ian Marteens lo explica al principio. Si bien pude seguirlo un poco al principio y el libro tiene un tono ameno y divertido, que me ha hecho reir más de una vez (supongo que a otro le ha pasado lo mismo), después se torna más complejo.
Voy a ver de nuevo donde trata el tema de parámetros por valor y por referencia.
|
La Cara Oculta es un buen libro para comenzar... si cuesta un poco es porque no es que te va a explicar todo sobre el lenguaje.
A ver... el asunto de valor o referencia no es tan complicado. Cometí un error en el mensaje anterior. Veamos de nuevo.
Código Delphi
[-]Procedure MiProcedimientoA (Algo: integer); Procedure MiProcedimientoB (var Algo: integer);
Cuando los parámetros se pasan por valor, el compilador lo que hace es copiar el VALOR que contiene la variable Algo. Por lo que dicha variable no se ve alterada dentro del procedimiento. En cambio, cuando se pasa por referencia, el compilador suministra el "puntero" de dicha variable, y con esto se conseguie que la variable Algo pueda alterar su valor.
Supongamos que tienes una variable MiAlgo y se hace esto:
Código Delphi
[-]MiAlgo := 5; MiProcedimientoA(MiAlgo); ShowMessage(IntToStr(MiAlgo));
Pero en cambio si haces:
Código Delphi
[-]MiAlgo := 5; MiProcedimientoB(MiAlgo); ShowMessage(IntToStr(MiAlgo));
Es decir que cuando se procede por referencia se está pidiendo que se trabaje con dicha variable y no una copia. Es por ello que una vez que finalizas este procedimiento debes chequear el valor que contiene MiAlgo.
Se debe usar MiAlgo cuando tenga sentido esperar un cambio en alguna variable. O incluso cuando se desea obtener más de un valor.
Te voy a poner un ejemplo, extremo, de un mal uso del var:
Código Delphi
[-]
procedure Sumar(A, B: integer; var Suma: integer);
begin
Suma := A + B;
end;
Lo que tenga la variable Suma será cambiado por la operación que se realice. En este caso la suma de A y B. ¿Es útil tener esto? La respuesta es no. Bastaría con tener una función:
Código Delphi
[-]function Sumar(A, B: integer): integer;
begin
result := A + B;
end;
Pero en cambio, es útil el valor de var cuando se desea crear variables de control de operación (o variables de estado). Por ejemplo puede ser útil esto:
Código Delphi
[-]procedure RealizarOperacion(Operacion: TOperacion; var Estado: TEstado);
Y asi como tenemos un procedimiento, podemos tener una función.
Cita:
Empezado por Norum
Por último, voy a seguir adelante porque creo que esto no tiene mucha vuelta que darle. Si se llega a complicar con más unidades (cosa que no creo), voy a investigar más a fondo este tema de no dejar variables "muy al descubierto".
|
Sigue. Continua. Si tu crees que esta bien, no dejes de avanzar.
Saludos,