Practica Cuatro Delphi

1,958 views

Published on

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

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,958
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
309
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Practica Cuatro Delphi

  1. 1. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente 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. Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (1 de 7)
  2. 2. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente 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; Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (2 de 7)
  3. 3. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente 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; Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (3 de 7)
  4. 4. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente 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; Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (4 de 7)
  5. 5. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente 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; Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (5 de 7)
  6. 6. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente 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. Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (6 de 7)
  7. 7. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente 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. Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac04 (7 de 7)

×