practica cuatro delphi

7
I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (1 de 7) GUÍA DE LABORATORIO N° 04 OBJETIVOS : Creación y uso de Array Bidimensionales. Creación y uso de procedimientos con parámetros. Uso de variables de memoria con diferentes alcances. Creación de un Formulario de Inicio de Sesión. 1.1 CONSIDERACIONES INICIALES Debe abrir su proyecto anterior y deberá agregar los formularios para las aplicaciones siguientes: 1.2 CREACIÓN DE LA UNIDAD DE CÓDIGO DELPHI “MÓDULO ” FORMULARIO (ArrayRegistro.pas) a) En el formulario inserte los controles necesarios y establezca las propiedades necesarias para obtener la siguiente apariencia: b) Ahora procedemos a establecer la Propiedades a los objetos según la gráfica anterior, para luego establecer propiedad (NAME) tal como se indica a continuación: Para el formulario deberá establecer como NAME: frmArrayRegistro Para los TextBox y ComboBox establecer el NAME según se observa en la figura. Para los RadioButton establesca los nombres rbtMasculino y rbtFemenino respectivamente. Para los botones de Desplazamiento su NAME será: BtnPrimero, BtnAnterior, BtnSiguiente, BtnUltimo. Para los botones de Operaciones su NAME será: BtnNuevo, BtnGuardar, BtnEditar, BtnCancelar, BtnBuscar, BtnEliminar, BtnListar y BtnSalir.

Upload: jose-ponce

Post on 18-Nov-2014

1.609 views

Category:

Education


0 download

DESCRIPTION

Guías de Laboratorio de programación con Delphi, por José Luis Ponce Segura

TRANSCRIPT

Page 1: Practica Cuatro  Delphi

I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente

Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (1 de 7)

GUÍA DE LABORATORIO N° 04 OBJETIVOS: Creación y uso de Array Bidimensionales. Creación y uso de procedimientos con parámetros. Uso de variables de memoria con diferentes alcances. Creación de un Formulario de Inicio de Sesión. 1.1 CONSIDERACIONES INICIALES

Debe abrir su proyecto anterior y deberá agregar los formularios para las aplicaciones siguientes:

1.2 CREACIÓN DE LA UNIDAD DE CÓDIGO DELPHI “MÓDULO” FORMULARIO (ArrayRegistro.pas) a) En el formulario inserte los controles necesarios y establezca las propiedades necesarias para obtener la

siguiente apariencia:

b) Ahora procedemos a establecer la Propiedades a los objetos según la gráfica anterior, para luego establecer

propiedad (NAME) tal como se indica a continuación:

Para el formulario deberá establecer como NAME: frmArrayRegistro Para los TextBox y ComboBox establecer el NAME según se observa en la figura. Para los RadioButton establesca los nombres rbtMasculino y rbtFemenino respectivamente. Para los botones de Desplazamiento su NAME será: BtnPrimero, BtnAnterior, BtnSiguiente,

BtnUltimo. Para los botones de Operaciones su NAME será: BtnNuevo, BtnGuardar, BtnEditar,

BtnCancelar, BtnBuscar, BtnEliminar, BtnListar y BtnSalir.

Page 2: Practica Cuatro  Delphi

I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente

Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (2 de 7)

c) Ahora proceda a escribir el código correspondiente a los objetos necesarios:

Declare las variables y/o procedimientos en la sección PRIVATE tal como se observa a continuación: { Private declarations } listar:boolean; alumnos:Array[1..10,1..9] of string; i, t, pos:Byte; sexo:String; procedure mostrardatos; procedure limpiar; procedure HabilitaBotones(sw:Boolean); procedure habilitacontroles(estado:Boolean); Objeto: TfrmArrayRegistro Evento: OnCreate procedure TfrmArrayRegistro.FormCreate(Sender: TObject); begin // Agregando items al combobox cboEspecialidad cboEspecialidad.Items.Add('Computación e Informática'); cboEspecialidad.Items.Add('Secretariado Ejecutivo'); cboEspecialidad.Items.Add('Contabilidad'); cboEspecialidad.Items.Add('Electricidad'); cboEspecialidad.Items.Add('Electrónica'); cboEspecialidad.Items.Add('Construcción Civil'); updown1.min := 1; updown1.max := 6; edciclo.ReadOnly := True; HabilitaControles(False); HabilitaBotones(True); // Estableciendo el nro. de columnas y filas de la grilla stringgrid1.ColCount:=9; stringgrid1.RowCount:=10; // Fijando la primera columna y fila para uso de encabezados stringgrid1.FixedCols:=1; stringgrid1.FixedRows:=1; //Encabezados para las columnas //grilla.Celda[Columna,fila]:=ValorTipoCadena //Nótese que la Col y Fil empiezan desde cero stringgrid1.cells[1,0]:='Codigo'; stringgrid1.cells[2,0]:='Apellidos'; stringgrid1.cells[3,0]:='Nombres'; stringgrid1.cells[4,0]:='Dirección'; stringgrid1.cells[5,0]:='Sexo'; stringgrid1.cells[6,0]:='Teléfono'; stringgrid1.cells[7,0]:='Especialidad'; stringgrid1.cells[8,0]:='Ciclo'; stringgrid1.cells[9,0]:='e-mail'; i:=1; listar:=false; end; Objeto: edApellidos Evento: onKeyPress procedure TfrmArrayRegistro.edApellidosKeyPress(Sender: TObject; var Key: Char); begin If key=#13 Then begin edNombres.setfocus; end; end; Objeto: edApellidos Evento: onExit procedure TfrmArrayRegistro.edApellidosExit(Sender: TObject); begin edApellidos.Text :=uppercase(edApellidos.Text); end;

Page 3: Practica Cuatro  Delphi

I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente

Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (3 de 7)

Objeto: rbtMasculino Evento: Onclick procedure TfrmArrayRegistro.rbtMasculinoClick(Sender: TObject); begin if TRadioButton(sender).name='rbtMasculino' then begin sexo:='masculino'; end; if TRadioButton(sender).name='rbtFemenino' then begin sexo:='femenino'; end; end; Procedimiento creado por el Usuario: Limpiar procedure TfrmArrayRegistro.limpiar; var nro:byte; begin for nro:=0 to frmArrayRegistro.ControlCount-1 do begin // Para limpiar las Cajas if (frmArrayRegistro.controls[nro] is TEdit) then begin TEdit(frmArrayRegistro.controls[nro]).clear; end; // Para limpiar los radiobutton if (frmArrayRegistro.controls[nro] is TRadioButton) then begin TRadioButton(frmArrayRegistro.controls[nro]).checked:=false; end; // Para limpiar el comobobox if (frmArrayRegistro.controls[nro] is TComboBox) then begin TComboBox(frmArrayRegistro.controls[nro]).itemindex:=-1; end; end; // fin del for end; Procedimiento creado por el Usuario: Habilitacontroles procedure TfrmArrayRegistro.Habilitacontroles(estado:Boolean); var nro:byte; begin for nro:=0 to frmArrayRegistro.ControlCount-1 do begin if (frmArrayRegistro.controls[nro] is TEdit) or (frmArrayRegistro.controls[nro] is TRadioButton) or (frmArrayRegistro.controls[nro] is TComboBox) then begin TEdit(frmArrayRegistro.controls[nro]).enabled:=estado; end; end; end; Procedimiento creado por el Usuario: HabilitaBotones procedure TfrmArrayRegistro.HabilitaBotones(sw:Boolean); begin BtnNuevo.Enabled := sw; BtnGuardar.Enabled := Not sw; BtnEditar.Enabled := sw; btnCancelar.Enabled := Not sw; btnEliminar.Enabled := sw; btnListar.Enabled:=sw; btnBuscar.Enabled := sw; BtnSalir.Enabled := sw; end;

Page 4: Practica Cuatro  Delphi

I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente

Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (4 de 7)

Procedimiento creado por el Usuario: mostrardatos procedure TfrmArrayRegistro.mostrardatos; begin edCodigo.Text := alumnos[pos, 1]; edApellidos.Text := alumnos[pos, 2]; edNombres.Text := alumnos[pos, 3]; edDireccion.Text := alumnos[pos, 4]; If alumnos[pos, 5] = 'masculino' Then begin RbtMasculino.Checked := True; end else begin RbtFemenino.Checked := True; end; edTelefono.Text := alumnos[pos, 6]; cboespecialidad.itemindex:= strtoint(alumnos[pos, 7]); edciclo.text:= alumnos[pos, 8]; edEmail.Text := alumnos[pos, 9]; end; Objeto: btnNuevo Evento: OnClick procedure TfrmArrayRegistro.btnNuevoClick(Sender: TObject); begin If i = 10 Then begin showmessage('ya no se puede agregar mas alumnos...'); btnPrimeroClick(sender); end else begin limpiar; edCodigo.Text :=Formatcurr('00000',i); // dar formato HabilitaControles(True); HabilitaBotones(False); end; end; Objeto: btnGuardar Evento: OnClick procedure TfrmArrayRegistro.btnGuardarClick(Sender: TObject); begin If (edApellidos.Text ='') Or (edNombres.Text = '') Then begin showmessage('debe ingresar nombres y apellidos'); Exit; end; alumnos[i, 1] := edCodigo.Text; alumnos[i, 2] := edApellidos.Text; alumnos[i, 3] := edNombres.Text; alumnos[i, 4] := edDireccion.Text; alumnos[i, 5] := sexo; alumnos[i, 6] := edTelefono.Text; alumnos[i, 7] := inttostr(cboespecialidad.itemindex); alumnos[i, 8] := edciclo.text; alumnos[i, 9] := edEmail.Text; t := i; i:=i+ 1; btnPrimeroClick(sender); HabilitaControles(False); HabilitaBotones(True); end;

Page 5: Practica Cuatro  Delphi

I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente

Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (5 de 7)

Objeto: btnCancelar Evento: Onclick procedure TfrmArrayRegistro.btnCancelarClick(Sender: TObject); begin btnPrimeroClick(sender); HabilitaControles(False); HabilitaBotones(True); btnPrimeroClick(sender); end; Objeto: btnBuscar Evento: OnClick procedure TfrmArrayRegistro.btnBuscarClick(Sender: TObject); var codi:string; x:integer; begin codi := InputBox('Ingrese código del alumno a buscar','Buscar','valor'); For x := 1 To i - 1 do begin If codi= alumnos[x, 1] Then begin pos := x; mostrardatos; exit; end; end; ShowMessage('Código no existe'); end; Objeto: btnListar Evento: Onclick procedure TfrmArrayRegistro.btnListarClick(Sender: TObject); begin if listar=false then begin btnlistar.caption:='Ocultar'; frmArrayRegistro.Height:=frmArrayRegistro.Height+ stringgrid1.Height +10; listar:=true; end else begin btnlistar.caption:='Listar'; frmArrayRegistro.Height:=frmArrayRegistro.Height- stringgrid1.Height -10; listar:=false; end; end; Objeto: btnPrimero Evento: OnClick procedure TfrmArrayRegistro.btnPrimeroClick(Sender: TObject); begin pos := 1; mostrardatos; end; Objeto: btnAnterior Evento: OnClick procedure TfrmArrayRegistro.btnAnteriorClick(Sender: TObject); begin If pos > 1 Then begin pos := pos - 1; mostrardatos; end; end;

Page 6: Practica Cuatro  Delphi

I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente

Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (6 de 7)

Objeto: btnSiguiente Evento: OnClick procedure TfrmArrayRegistro.btnSiguienteClick(Sender: TObject); begin If pos < t Then begin pos := pos + 1; mostrardatos; end; end; Objeto: btnUltimo Evento: OnClick procedure TfrmArrayRegistro.btnUltimoClick(Sender: TObject); begin pos := t; mostrardatos; end;

1.3 CREACIÓN DE LA UNIDAD DE CÓDIGO DELPHI “MÓDULO” (InicioSesion.pas)

a) En el formulario inserte los controles necesarios y establezca las propiedades necesarias para obtener la

siguiente apariencia:

b) Ahora procedemos a establecer la Propiedad (Name) a los siguientes objetos:

Objeto Propiedad Valor Asignado

Form1 Name frmInicioSesion Edit1 Name edUsuario Edit2 Name edPassword Button1 Name BtnAceptar Button2 Name BtnCancelar NOTA: establezca las demás propiedades que usted crea conveniente.

Page 7: Practica Cuatro  Delphi

I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente

Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (7 de 7)

c) Ahora proceda a escribir el código correspondiente:

Declare la variable nveces en la sección PRIVATE { Private declarations } nveces:Integer; Ahora deberá hacer referencia al módulo “Unidad de Código” (NO formulario) que se mostrará , esto va después de IMPLEMENTATION // implementation uses ArrayRegistro; // Sólo debe agregar ésta línea // {$R *.dfm} Objeto: btnAceptar Evento: OnClick procedure TfrmInicioSesion.btnAceptarClick(Sender: TObject); begin // Nótese que la contraseña es JOSELO con mayúsculas if upperCase(edpassword.text)='JOSELO' then Begin frmArrayregistro.show; // Luego deberá mostrar el Form PrmPrincipal "Menú" frmInicioSesion.hide; end else Begin ShowMessage('Intento Nro. ' + inttostr(nveces+1) + ', Acceso Denegado, Usuario: ' + edUsuario.Text); nveces:=nveces + 1; If nveces >= 3 Then Begin ShowMessage('Lo siento, tuvo sus 3 oportunidades... para otra vez será'); Close; end; End; end;

TAREA ENCARGADA: ….. / …../ ……….. Implemente Usted los procedimientos para Editar, Eliminar, etc. del formulario FrmArrayRegistro. Implemente el ó los procedimientos para que se muestren los datos en la grilla “StringGrid” del Formulario

FrmArrayRegistro. Investigue acerca de cómo validar los datos de entrada para ser implementados en el formulario

FrmArrayRegistro: No debe permitir dejar vació ningún atributo del alumno antes de guardar. Sólo se deberá ingresar número o letras donde corresponda. Ejemplo: en Apellidos no debe permitir el

ingreso de números. Deberá hacer los cambios necesarios para que el Formulario de inicio de sesión valide usuario y password antes

de ingresar al sistema. Diseñe Usted un formulario de presentación para su Aplicación, éste deberá tener animación y/o algunos otros

cambios que usted considere convenientes, deberá guardarlo como: Presentacion.pas, éste deberá mostrarse unos segundos después del Formulario FrmInicioSesion, para luego mostrar el Menú Principal.