SlideShare una empresa de Scribd logo
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)
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)
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)
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)
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)
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)
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)

Más contenido relacionado

PDF
Practica Tres Delphi
PDF
Practica Dos Delphi
PDF
Guia de Laboratorios 5 - VB.NET 2005
PDF
2. Manejo de la sintaxis del lenguaje
PDF
3. Utilización de los objetos predefinidos del lenguaje
PDF
5. Interacción con el usuario: eventos y formularios
PDF
4. Programación con arrays, funciones, y objetos definidos por el usuario
PPTX
Java básico
Practica Tres Delphi
Practica Dos Delphi
Guia de Laboratorios 5 - VB.NET 2005
2. Manejo de la sintaxis del lenguaje
3. Utilización de los objetos predefinidos del lenguaje
5. Interacción con el usuario: eventos y formularios
4. Programación con arrays, funciones, y objetos definidos por el usuario
Java básico

La actualidad más candente (20)

PPTX
POO. Unidad 2: Clases y objetos Ejercicio 2
PDF
Semana 2 Fundamentos de Python(Ciclos y Listas)
PPT
Introducción a la Progamación en Javascript. Classe 2
PPTX
Formularios y contenedores
PDF
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
PDF
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
DOC
Separata java script
PDF
Semana 1 Estructuras de Control en Java
PDF
Semana 7 Proyecto Misión TIC 2022
PDF
Semana 1 Estructuras de Datos en Java
PPTX
Mod2ud2 1
PDF
3. lenguaje c-
PPTX
POO Unidad 2: Clases y objetos Ejercicio 1
PDF
Javascript - Módulo 8: LocalStorage, iFrames, Origin policy y JSON
PDF
Programación Java
PDF
Programación Java
PDF
Ejercicios en Netbeans
PDF
Informe karen jacome
PDF
Semana 5 Java Swing
POO. Unidad 2: Clases y objetos Ejercicio 2
Semana 2 Fundamentos de Python(Ciclos y Listas)
Introducción a la Progamación en Javascript. Classe 2
Formularios y contenedores
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Separata java script
Semana 1 Estructuras de Control en Java
Semana 7 Proyecto Misión TIC 2022
Semana 1 Estructuras de Datos en Java
Mod2ud2 1
3. lenguaje c-
POO Unidad 2: Clases y objetos Ejercicio 1
Javascript - Módulo 8: LocalStorage, iFrames, Origin policy y JSON
Programación Java
Programación Java
Ejercicios en Netbeans
Informe karen jacome
Semana 5 Java Swing
Publicidad

Destacado (10)

PDF
Clase4 - Operadores en Delphi
PPT
Practicas en delphi sumar
XLSX
Nomina De Empleados
PPTX
Tarea de Pseudocodigo
PPTX
Presentación Delphi
PPT
Practica de delphi factorial
PDF
56874982 curso-de-delphi-7
PDF
Practica Uno Delphi
PDF
Ejercicio de estructuras_condicionales
PPT
Elementos Básicos en Delphi 7
Clase4 - Operadores en Delphi
Practicas en delphi sumar
Nomina De Empleados
Tarea de Pseudocodigo
Presentación Delphi
Practica de delphi factorial
56874982 curso-de-delphi-7
Practica Uno Delphi
Ejercicio de estructuras_condicionales
Elementos Básicos en Delphi 7
Publicidad

Similar a Practica Cuatro Delphi (20)

PDF
Guia n2 tam 2009 1
PDF
Guia de Laboratorios 2 - VB.NET 2005
PDF
Elemento n3
PDF
Elemento 3
PDF
Guia no2 ado.net
PDF
Cuaderno digital
PDF
VISUAL BASIC 6.0
PDF
Guia de Laboratorios 3 - VB.NET 2005
DOCX
Crear una solución en visual studio
PDF
Practica calificada de lenguaje de programación I
DOCX
Evaluación 3ER Parcial programación web 1
PDF
Guia n1 tam 2009 1
PDF
Imports system
DOCX
Guia lab2
DOC
Actividad Vb0506
PDF
Entrega 8 arreglos - controles - gráficos
PDF
Practica 02-taller-de-programacion-121226180145-phpapp02
PDF
Desarrollo de práctica para un modelo de tres capas
DOCX
Manual de usuario
Guia n2 tam 2009 1
Guia de Laboratorios 2 - VB.NET 2005
Elemento n3
Elemento 3
Guia no2 ado.net
Cuaderno digital
VISUAL BASIC 6.0
Guia de Laboratorios 3 - VB.NET 2005
Crear una solución en visual studio
Practica calificada de lenguaje de programación I
Evaluación 3ER Parcial programación web 1
Guia n1 tam 2009 1
Imports system
Guia lab2
Actividad Vb0506
Entrega 8 arreglos - controles - gráficos
Practica 02-taller-de-programacion-121226180145-phpapp02
Desarrollo de práctica para un modelo de tres capas
Manual de usuario

Más de Jose Ponce (20)

PDF
Insertar Videos Youtube en Moodle
PPS
Net1 capitulo iii - estructuras condicionales
PPS
Net1 capitulo ii - variables de memoria & array
PDF
Sesion 1 introduccion a moodle
PPTX
PROYECTO “MEJORAMIENTO DE LA PRODUCCIÓN AGROPECUARIA RECURSOS NATURALES Y MED...
PPS
ADO .NET
PDF
Guia N5 Proyectos Web Consultas Php Y My Sql
PDF
Guia N4 Proyectos Web My Sql Y Php
PDF
Guia N3 Proyectos Web Php Css, Js
PDF
Guia N2 Proyectos Web Php
PDF
Guia N1 Proyectos Web Html
PDF
Practica Siete Delphi
PDF
Practica Seis Delphi
PDF
Practica Cinco Delphi
PDF
Manual de Joomla
PPSX
Proyectos Web 1 Fundamentos
PPSX
Proyectos Web 3 Introduccion Php
PPSX
Proyectos Web 2 Introduccion Html
PDF
Curso Cms 03
PPSX
Curso Cms 2 Sistema De GestióN De Contenidos
Insertar Videos Youtube en Moodle
Net1 capitulo iii - estructuras condicionales
Net1 capitulo ii - variables de memoria & array
Sesion 1 introduccion a moodle
PROYECTO “MEJORAMIENTO DE LA PRODUCCIÓN AGROPECUARIA RECURSOS NATURALES Y MED...
ADO .NET
Guia N5 Proyectos Web Consultas Php Y My Sql
Guia N4 Proyectos Web My Sql Y Php
Guia N3 Proyectos Web Php Css, Js
Guia N2 Proyectos Web Php
Guia N1 Proyectos Web Html
Practica Siete Delphi
Practica Seis Delphi
Practica Cinco Delphi
Manual de Joomla
Proyectos Web 1 Fundamentos
Proyectos Web 3 Introduccion Php
Proyectos Web 2 Introduccion Html
Curso Cms 03
Curso Cms 2 Sistema De GestióN De Contenidos

Último (20)

PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
PDF
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
PDF
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
Escuela Sabática 6. A través del Mar Rojo.pdf
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
DOCX
Tarea De El Colegio Coding For Kids 1 y 2
PDF
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
DOCX
2 GRADO UNIDAD 5 - 2025.docx para primaria
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
Híper Mega Repaso Histológico Bloque 3.pdf
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
V UNIDAD - PRIMER GRADO. del mes de agosto
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
DI, TEA, TDAH.pdf guía se secuencias didacticas
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
Escuela Sabática 6. A través del Mar Rojo.pdf
Fundamentos_Educacion_a_Distancia_ABC.pdf
Tarea De El Colegio Coding For Kids 1 y 2
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
2 GRADO UNIDAD 5 - 2025.docx para primaria
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf

Practica Cuatro Delphi

  • 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. 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. 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. 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. 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. 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. 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)