Ver Mensaje Individual
  #7  
Antiguo 15-03-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Partamos desde el principio.

Un procedimiento (procedure) es una forma de agrupar varias sentencias (órdenes) bajo un nombre. En princpio no devuelve ningún valor después de su ejecución.

Una función es un procedimiento que devuelve un valor como resultado de la ejecución de esas sentencias que agrupa.

Lo que viene después de la palabra "function" es el nombre que le queremos dar, y después tiene opcionalmente unos parámetros (valores de entrada que le podemos pasar a ese grupo de sentencias). Normalmente se define así:
Código Delphi [-]

function DameUnDouble: double;

// o bien dándole parámetros:
function AreaTriangulo(base : double; altura:double):double;

En el primer caso, el tipo de valor que debe devolver se especifica después de los dos puntos ":" (double es un número en coma flotante, que puede tener decimales, vamos).

El segundo caso es más complejo, le decimos esa función va a recibir dos valores. A un valor le llamaremos "base" y al otro "altura". Podrían ser cada uno de un tipo diferente, pero ahora nos conviene que ambos sean de tipo "double".

Toda función debe devolver un valor, y para ello puede utilizarse dos nomenclaturas totalmente equivalentes:
Código Delphi [-]
function DameUnDouble: double;
begin 
  Result := 3.2;
end;

function DameUnDouble:double;
begin
   DameUnDouble:= 3.2;
end;

Se usa el nombre de la propia función asignándole un valor, o bien la palabra "Result" que quizás es más intuitiva y que es lo que normalmente se usa.

Para ejecutar un procedimiento o función basta usar su nombre y darle los parámetros de entrada si los tiene, en el Onclic de un botón podemos poner:
Código Delphi [-]
procedure TForm1.ButtonClick(Sender:TObject);
var area :double;
begin
   DameUnDouble;
   area := AreaTriangulo(40,50);
   showMessage('el area es ' + floattostr(area));
end;
vale, lo he complicado usando dos funciones no explicadas, la ayuda de delphi puede aclararte algo sobre ellas. Ya va siendo hora que acudas a ella, será tu mejor aliado.

Ahora dale una vueltecita a la función de Marcos y quizás la comprendas mejor.

CTRL + SHIFT + C es lo que se llama "class completion", una mejora que tiene el IDE de delphi para ahorrarnos teclear código. Lo que hace es leer la declaración de nuestra clase y crear el esqueleto de dicha clase en la parte implementation.
Un ejemplo escribe esto en tu delphi:
Código Delphi [-]
type TForm1 = Class(TForm)
  public
     procedure Unproc;
     function AreaTriangulo(base:double; altura:double):double;
     procedure Dos;
     procedure Tres;
end;
y ahora pulsa la combinación de teclas, ve a la parte de abajo después de "implementation" verás pura magia .


Offtopic: mmm esto bien podría ser un wiki del estilo de ixMike jeje.

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 15-03-2008 a las 23:30:06.
Responder Con Cita