Está en la página 1de 13

DELPHI

Delphi realmente no es un lenguaje, sino la IDE (Integrated Development


Environment), o sea el espacio de trabajo para Object Pascal, el cual es un lenguaje
de programación de alto nivel, Object Pascal como su nombre indica es Pascal
orientado a objetos, un objeto es una colección independiente de estructuras, una
clase alberga las estructuras de datos y rutinas de un objeto, en el caso de Delphi, los
objetos se comunican mediante mensajes, así pues cuando pulsamos con el ratón
sobre un botón, se produce un mensaje el cual desencadena un evento.

Además delphi utiliza la RAD (Rapid Application Development), que nos permite
desarrollar nuestros programas de forma rápida y visual. Delphi controla por si solo el
sistema de mensajes de Windows, con lo cual no necesitaremos preocuparnos de
capturar los mensajes que dicta Windows para desencadenar un procedimiento.

Los programas hechos en delphi se dividen en Formularios "Forms" que se


corresponden con las distintas ventanas que tendrá nuestro programa, para mostrar
un formulario desde otro se ha de poner "Nombredelform.ShowModal" si quieres que
tome el control y si quieres utilizar los dos indistintamente "Nombredelform.Show",
además de los forms un programa esta compuesto por distintos objetos (Etiquetas,
botones...) todos ellos están incluidos en la VCL...

Una propiedad determina la operación de un componente. Un evento es algo que


ocurre como resultado de la interacción de un componente con el usuario o con
windows. Un controlador de evento es una sección de código que se invoca en su
aplicación en respuesta a un evento.

Un componente es una pieza binaria de software independiente, que realiza cierta


función específica predefinida, como una etiqueta de texto, un control de edición o un
cuadro de lista. Un Objeto es una pieza binaria de software que realiza una tarea de
programación específica

Partes del Delphi


La parte principal del IDE de Delphi es el espacio de trabajo. Inicialmente, el espacio
de trabajo despliega el Form Designer. En delphi, un formulario representa una
ventana en su programa. El formulario podría ser la ventana principal del programa,
un cuadro de diálogo o cualquier otro tipo de ventana. El Form Designer se emplea
para colocar, mover y dimensionar componentes como parte del proceso de creación
del formulario.

El Code Editor está oculto tras el Form Designer. Aquí es donde usted introduce el
código al escribir sus programas. El Object Inspector, Form Designer, Code Editor y la
paleta Component trabajan de manera interactiva y junto con la ventana principal
(barra de menús) constituyen las partes principales del delphi.
El Object Inspector es la ventana que se encuentra en la parte izquierda de la
pantalla. A través de éste usted modifica las propiedades y eventos de un
componente. El Object Inspector tiene dos fichas: Properties y Events. Las
propiedades de un componente controlan la forma en que éste opera; mientras que
los eventos ocurren al interactuar con el componente.
Programación orientada a objetos
La Programación Orientada a Objetos (POO u OOP según siglas en inglés) es un
paradigma de programación que define los programas en términos de "clases de
objetos", objetos que son entidades que combinan estado (es decir, datos),
comportamiento (esto es, procedimientos o métodos) e identidad (propiedad del
objeto que lo diferencia del resto). La programación orientada a objetos expresa un
programa como un conjunto de estos objetos, que colaboran entre ellos para realizar
tareas. Esto difiere de los lenguajes procedurales tradicionales, en los que los datos y
los procedimientos están separados y sin relación. Estos métodos están pensados
para hacer los programas y módulos más fáciles de escribir, mantener y reutilizar.

Otra manera en que esto es expresado a menudo, es que la programación orientada


a objetos anima al programador a pensar en los programas principalmente en
términos de tipos de datos, y en segundo lugar en las operaciones ("métodos")
específicas a esos tipos de datos. Los lenguajes procedurales animan al programador
a pensar sobre todo en términos de procedimientos, y en segundo lugar en los datos
que esos procedimientos manejan.

Los programadores que emplean lenguajes procedurales, escriben funciones y


después les pasan datos. Los programadores que emplean lenguajes orientados a
objetos definen objetos con datos y métodos y después envían mensajes a los objetos
diciendo que realicen esos métodos en sí mismos.

Unidades en Pascal
El código que usted escribe simplemente va a un archivo de texto. El compilador
toma ese archivo y lo compila en código de máquina que la computadora puede
entender. El archivo de texto que delphi compila en código de máquina se denomina
unidad.

Una aplicación GUI (Interfaz gráfica de usuario) de Delphi contendrá por lo menos dos
unidades. La unidad fuente del proyecto contiene el código fuente del mismo. Estas
unidades tienen la extensión DPR. El segundo tipo de unidad que siempre tiene una
aplicación GUI de Delphi es la unidad del formulario principal. Una unidad de
formulario, como su nombre implica, es una unidad de código fuente con un
formulario asociado; este tipo de unidad tiene una extensión de nombre de archivo
PAS. Hay un tercer tipo de unidad que puede emplear en aplicaciones, la cual
contiene solamente código fuente. Una unidad de sólo código contiene código que se
llama desde otras unidades en el proyecto.

La unidad de proyecto Delphi contiene la palabra clave program seguida por el


nombre de la unidad y un bloque de código marcado por las palabras clave begin y
end. A continuación se muestra un ejemplo:
01: Program Project1;
02:
03: uses
04: Forms,
05: Unit1 in ‘Unit1.pas’ {Form1};
06:
07: {$R *.RES}
08:
09: begin
10: Application.Initialize;
11: Application.CreateForm(TForm1, Form1);
12: Application.Run;
13: end.

Unidad en Pascal (Secciones)


Las lista uses es una lista de unidades externas a las que hace referencia esta
unidad. Existen dos reglas que necesita tener presentes al construir la lista uses:
 Cada unidad de la lista debe estar separada de la siguiente por medio de una
coma.
 Después de la última unidad listada debe seguir un punto y coma. El punto y
coma señala el final de la lista uses.

La sección interface es la sección de la unidad en la que se declaran los


identificadores exportados desde esta unidad. Un identificador exportado es aquél
que puede ser accedido por otras unidades del proyecto. Está sección contiene una
lista de elementos que otras unidades pueden utilizar, comenzando con la palabra
clave interface y terminando con la palabra clave implementation.

La sección implementation de una unidad es aquélla que contiene el código real de la


unidad. Esta sección inicia con la palabra clave implementation y finaliza con la
siguiente palabra clave de la unidad (por lo regular el end final); o por la palabra
clave initialization.

Las secciones initialization y finalization se pueden emplear para realizar cualquier


código de inicio y de limpieza que requiera la unidad. Todo código en la sección
initialization se ejecutará al cargar en memoria a la unidad. A la inversa, todo código
en la sección finalization se ejecutará antes de que se descargue de la memoria a la
unidad. Estas secciones son opcionales.

Palabras clave adicionales


Const.- En esta sección se declaran una lista de variables con sus respectivos valores
que son conocidas como constantes.
Type.- Se utiliza para declarar nuevos tipos de datos que su programa utilizará.
Var.- Se utiliza para declarar una sección de código en la cual se declaran variables.
Comentarios en el Código
Los comentarios son líneas de texto en su código fuente que están ahí con fines de
documentación; se pueden emplear para describir lo que hace el código, suministrar
información de derechos de autor, o simplemente para realizar anotaciones para
usted u otros programadores.

Ejemplos:

{ Hola como estas }


(* Hola como te sientes *)
// Hola a donde fuiste

Los dos primeros ejemplos pueden utilizarse para comentar una o varias líneas de
código y pueden extenderse a más de un renglón (hasta que se cierre el corchete o el
asterisco y paréntesis. El tercero solamente se utiliza en líneas individuales. Todas las
líneas de comentarios se presentan en color azul para distinguirlas del código.

Variables
Las variables tienen que declararse antes de que puedan ser utilizadas. Una variable
se declara en una sección especial de código indicada con la palabra clave var. Una
variable es una ubicación que se aparta en la memoria de la computadora para
contener un valor.

En Object Pascal debe declarar el tipo de varible antes de poder utilizarla (ver la tabla
1.1 para ver todos los tipos de datos empleados en Object Pascal). A continuación se
da un ejemplo de declaración de variables.

var
sumacalif, numcalif : integer;
x1, x2, x3, x4, x5, x6 : integer;
promedio : integer;
calif : array [0..5] of integer;
nombre: char;

En Object Pascal, un tipo de datos define la forma en que el compilador almacena


información en la memoria. El uso inadecuado de un tipo de datos dará como
resultado un error o advertencia del compilador que puede analizarse y corregirse de
modo que pueda prevenir un problema antes de que empiece.

Operadores en Object Pascal


Los operadores se utilizan para manipular datos. Los operadores realizan cálculos,
verifican la igualdad, hacen asignaciones, manipulan variables y realizan otras
labores más esotéricas que la mayoría de los programadores nunca emplean. En la
tabla 1.2 se detallan los de uso más común.

Arreglos
Es posible colocar en un arreglo cualquiera de los tipos de datos intrínsecos de Object
Pascal. Un arreglo es simplemente un conjunto de valores. Por ejemplo, digamos que
necesita un arreglo de enteros que contenga 5 valores de tipo entero. Se declararía
de la siguiente manera:

Var
Miconjunto : array [0..4] of integer;

También existen arreglos de varías dimensiones, para declarar uno de dos


dimensiones (3 renglones por 5 columnas) se haría así:

Var
Arreglo2: array[0..2,0..4] of integer;

Cadenas
La cadena es una secuencia de caracteres y puede ser de 3 tipos: primero la cadena
corta que es de longitud fija con un máximo de caracteres de 255; la cadena larga y
la cadena amplia, en la cual se asigna la memoria de manera dinámica y cuyo
tamaño solo esta limitado por la memoria disponible.

If, Then, Else


La instrucción if se utiliza para probar una condición y después ejecutar secciones de
código es verdadera o falsa (True o False). Cuando la sentencia es verdadera se
ejecutan las instrucciones que están dentro del Then; cuando es falsa, se ejecutan las
instrucciones del Else. La sintaxis es como sigue:

Forma 1:
If exp._cond then
instrucción_verdadera
else
instrucción_falsa;

Forma2 :
If exp._cond then begin
instrucciones_verdaderas;
end else begin
instrucciones_falsas;
end;
Ciclos
El ciclo es un elemento común en todos los lenguajes de programación. Se puede
emplear para iterar a través de un arreglo, realizar una acción un número específico
de veces, leer un archivo desde disco… las posibilidades son interminables. Todos los
ciclos tienen elementos en común:
 Un punto de inicio.
 Un cuerpo, por lo regular comprendido entre las palabras clave begin y end,
que contiene las instrucciones a ejecutar en cada paso.
 Un punto de terminación.
 Una prueba de una condición que determina cuándo debe concluir el ciclo.
 El uso opcional de los procedimientos Break y Continue.

Un ciclo es un elemento de un lenguaje de programación que se utiliza para ejecutar


una acción una y otra vez hasta que se cumpla una condición.

Ciclo For
Es probable que el ciclo for sea el tipo de ciclo más común. Toma dos parámetros:
Los valores inicial y final. Si el ciclo cuenta en forma ascendente se utiliza la palabra
clave to. Si lo hace en forma descendente, se emplea la palabra clave downto.

El ciclo for ejecuta de manera repetida el bloque de código indicada por instrucciones
hasta alcanzar el valor_final. El estado del ciclo se inicializa mediante la instrucción
valor_inicial. La variable indicada en valor_inicial se incrementa o decrementa en una
a cada iteración a través del ciclo. Si el cuerpo del ciclo es una sola instrucción, no se
requieren las instrucciones begin y end.

Sintaxis:

Ascendente
for valor_inicial to valor_final do begin
instrucciones;
end;

Descendente
for valor_inicial downto valor_final do begin
instrucciones;
end;

Ciclo While
El ciclo while difiere del ciclo for en que contiene una prueba que se verifica al
principio de cada iteración. En tanto la condición de prueba sea True (verdadera), el
ciclo continúa operando.

Sintaxis:

while expr_cond do begin


instrucciones;
end;

Ciclo Repeat
Es casi idéntico al ciclo while, sin embargo, la diferencia entre ambos es que en el
ciclo repeat la condición se evalúa en la parte inferior del ciclo y en el while se evalúa
en la parte superior del ciclo.

Sintaxis:

repeat
instrucciones;
until exp._cond;

Instrucción Case
Se puede considerar la instrucción case como una instrucción if glorificada. Le
permite ejecutar uno de varios bloques de código con base en el resultado de una
expresión. Ésta podría ser una variable, el resultado de una llamada a una función o
cualquier código Object Pascal válido que se evalúe a una expresión.

Sintaxis

case exp. Of
valor_1: instrucciones_1;
valor_2: instrucciones_2;
.
.
valor_n: instrucciones_n;
else
else_instrucciones;
end;

Registros
Un registro es un conjunto de datos relacionados identificado como una sola unidad
de almacenamiento. Una vez declarado un registro, se puede crear una instancia de
ese registro para su uso. Cada uno de los elementos de un registro se denomina
campo.

Sintaxis:

Nombre = record
campo_1: tipo_datos;
campo_2: tipo_datos;
.
.
campo_n: tipo_datos;
end;

Funciones, procedimientos y métodos


Las funciones y procedimientos son secciones de código separadas del programa
principal. Estas secciones de código se ejecutan cuando se necesitan realizar
acciones específicas en un programa.

Una función es una sección de código separado del programa principal que realiza
alguna acción y devuelve un valor.

Un parámetro es un valor que se pasa a una función o procedimiento que se usa para
alterar su operación o indicar el grado de alcance de su operación.

Un procedimiento es una sección de código separada del programa principal que


realiza alguna acción pero no devuelve un valor.

A continuación se muestran las anatomías de una función y de un procedimiento:

palabra clave nombre de la lista de tipo de


de la función función parámetros devolución

inicio de la
función function primera (x : integer; y : word) : integer
begin
asignación del valor Resultado:= x * y;
de devolución end;
cuerpo de la
función
fin de la función
palabra clave nombre del lista de
del procedimiento procedimiento parámetros

inicio del
procedimiento procedure hola (x : integer; y : word)
begin
MessageDlg (‘Hola como estás’, mtInformation, [mbOk], 0);
end;
cuerpo del
procedimiento
fin del procedimiento

Un método es una función o procedimiento que es miembro de una clase. Las


funciones y procedimientos a menudo tienen una declaración y siempre tienen una
definición.

Una declaración es una sola instrucción que describe el nombre de un método y


parámetros, si los hay. En el caso de una función, la declaración también indica el
tipo de datos de devolución de la función.

La definición de una función o procedimiento es el cuerpo real de la función o


procedimiento en la sección implementation de la unidad.

Registros
La finalidad del comando TEdit es permitir la entrada de un dato por parte del
usuario. Este dato, en forma de cadena de caracteres, se almacenará en la propiedad
Text, a la cual es posible dar un valor inicial durante el diseño. El control TEdit no
cuenta con una propiedad Caption, por lo cual se suele disponer una etiqueta de texto
adjunta que sirve como título.

A continuación se transcribe un programa ejemplo utilizando algunas de las


instrucciones vistas:

unit mult_cuad;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
MonthCalendar1: TMonthCalendar;
Memo1: TMemo;
ScrollBar1: TScrollBar;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{Está función multiplica dos números enteros}


function multiply(num1, num2 : integer) : integer;
begin
result := num1 * num2;
end;

{Está función multiplica dos numeros enteros y


posteriormente el resultado lo eleva al cuadrado}
function cuadmult (num1, num2 : integer) : integer;
begin
num1:= num1 * num1;
num2:= num2 * num2;
result:= num1 * num2;
end;

{El siguiente procedimiento despliega un mensaje de saludo}


procedure SayHello;
begin
MessageDlg('Hola como estás! ya aprendiste a multiplicar', mtInformation, [mbOk],
0);
end;

{El siguiente procedimiento despliega un mensaje de felicitación}


procedure Felicidades;
begin
MessageDlg('Felicidades está bien tu programa!', mtInformation, [mbOk], 0);
end;

{Aquí es donde se ejecuta la multiplicación}


procedure TForm1.Button1Click(Sender: TObject);
var
x: integer;

begin
x:= multiply(10, 20);
Label1.Caption:= IntToStr(x);
SayHello;
end;

{En este punto se multiplica y eleva al cuadrado}


procedure TForm1.Button2Click(Sender: TObject);
var
x, y, z : integer;

begin
Memo1.Lines.Clear;
x:= 2;
y:= 3;
z:= cuadmult(x, y);
Memo1.Lines.Add('El resultado es => ' + IntToStr(z));
Felicidades;
end;

{Este es un ejemplo de procedimientos locales}


procedure TForm1.Button3Click(Sender: TObject);
var
x : integer;

procedure Test;
begin
Memo1.Lines.Add('Función de Tipo Local, x => ' + IntToStr(x));
end;
begin
x:=100;
Memo1.Lines.Clear;
Memo1.Lines.Add('Función de Tipo Global, X => ' + IntToStr(x));
Test;
MessageDlg('Que bien está tu procedimiento local', mtInformation, [mbOk], 0);
end;

end.

VCL

Delphi utiliza una librería de componentes llamada VCL (Visual Components Library)
que nos brinda una serie de objetos (por ejemplo una combobox) y que nos da la
posibilidad de utilizar los objetos sin necesidad de llamar a las distintas API de
Windows para que dibujen en pantalla el componente, podremos además manipular
a nuestro antojo el componente, cambiándole las propiedades como el nombre, el
caption o cosas así..., además de poder controlar de una manera muy fácil los
distintos eventos que podría generar.

También podría gustarte