uses
type
var MiFormulario: TMiFormulario;
implementation
Qué es esto..??
Altas
Consulta
Bajas
Modificar
Otros
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, StdCtrls, Buttons, jpeg, ExtCtrls, ComCtrls, Tabnotbk;
PNodo = ^TNodo;
TNodo = record
PuntPila: PNodo;
PuntCola: PNodo;
Nombre:string[40];
Domicilio:string[20];
Legajo,Telefono:string[15];
end;
PrimerNodo,UltNodo,NodoAux:PNodo;
j:INTEGER;
{$R *.DFM}
unit ProgramaParcial;
interface
procedure TMiFormulario.FormCreate(Sender: TObject);
var Horizontal : INTEGER;
begin
MiFormulario.Grilla.Cells[0,0]:='NOMBRE';
MiFormulario.Grilla.Cells[1,0]:='DIRECCIÓN';
MiFormulario.Grilla.Cells[2,0]:='TELÉFONO';
MiFormulario.Grilla.Cells[3,0]:='LEGAJO';
j:=1;
PrimerNodo := NIL;
UltNodo := NIL;
NodoAux := NIL;
Horizontal:=Screen.Width div 12;
MiFormulario.Left:=Screen.Width div 15;
MiFormulario.Top:= Screen.Height div 15;
MiFormulario.Width := 2* (Screen.Width div 3)-Horizontal div 3;
MiFormulario.Height := 2* (Screen.Height div 3);
MiFormulario.Caption := 'Segundo Parcial: Pilas y Colas';
end;
begin
if(((MiFormulario.NombreA.Text='')OR(MiFormulario.NombreA.Text=' '))OR(MiFormulario.NombreA.Text=' '))
then application.messagebox('Debe ingresar el nombre','ALTA DE DATOS',mb_ok+mb_iconexclamation)
else begin
if(application.messagebox('Confirma inserción','ALTA DE DATOS',MB_ICONASTERISK+MB_YESNO+MB_DEFBUTTON1)=6)
then begin
OpcionBaja.Enabled:=TRUE;
GroupBox1.Enabled:=TRUE;
RadioGroup1.Enabled:=TRUE;
NEW(NodoAux);
NodoAux^.Nombre:=MiFormulario.NombreA.Text;
NodoAux^.Domicilio:=MiFormulario.DomAlt.Text;
NodoAux^.Telefono:=MiFormulario.TelA.Text;
NodoAux^.Legajo:=MiFormulario.LegA.Text;
NodoAux^.PuntPila:=NIL;
NodoAux^.PuntCola:=NIL;
if(PrimerNodo=NIL) {Esta vacío}
then begin
PrimerNodo := NodoAux; {PrimerNodo recibe la dirección del nodo auxiliar}
UltNodo := NodoAux;
end
else begin
NodoAux.PuntPila:=UltNodo;
UltNodo.PuntCola:=NodoAux;
UltNodo:=NodoAux;
end;
MiFormulario.Grilla.Cells[0,j]:=NodoAux^.Nombre;
MiFormulario.Grilla.Cells[1,j]:=NodoAux^.Domicilio;
MiFormulario.Grilla.Cells[2,j]:=NodoAux^.Telefono;
MiFormulario.Grilla.Cells[3,j]:=NodoAux^.Legajo;
if(j<>1)
then begin
Grilla.RowCount:=Grilla.RowCount+1;
end;
j:=j+1;
MiFormulario.NombreA.Text:='';
MiFormulario.TelA.Text:='';
MiFormulario.DomAlt.Text:='';
MiFormulario.LegA.Text:='';
MiFormulario.NombreA.SetFocus;
end;
end;
end;
procedure TMiFormulario.CorregirClick(Sender: TObject);
begin
MiFormulario.NombreA.Text:='';
MiFormulario.TelA.Text:='';
MiFormulario.LegA.Text:='';
MiFormulario.DomAlt.Text:='';
MiFormulario.NombreA.SetFocus;
end;
//////////////////////////////////////////////////////////
// Termina el programa
//
/////////////////////////////////////////////////////////////
procedure TMiFormulario.SalirClick(Sender: TObject);
begin
if(Application.MessageBox('Confirma la operación','Esta por cerrar el programa',MB_ICONASTERISK+MB_YESNO+MB_DEFBUTTON2)=6)
then BEGIN
MiFormulario.Close;
END;
end;
////////////////////////////////////////////////////////
// Elige si trabaja con cola o pila
////////////////////////////////////////////////////////
procedure TMiFormulario.OpcionBajaClick(Sender: TObject);
begin
SelectBaja.Clear;
NodoAux:=PrimerNodo;
if OpcionBaja.ItemIndex=0
then begin
while (NodoAux<>NIL)do
begin
SelectBaja.Items.Append(NodoAux^.Nombre);
NodoAux:=NodoAux^.PuntCola;
end;
end;
if OpcionBaja.ItemIndex=1
then begin
while (NodoAux<>NIL)do
begin
SelectBaja.Items.Append(NodoAux^.Legajo);
NodoAux:=NodoAux^.PuntCola;
end;
end;
if OpcionBaja.ItemIndex=2
then begin
while (NodoAux<>NIL)do
begin
SelectBaja.Items.Append(NodoAux^.Domicilio);
NodoAux:=NodoAux^.PuntCola;
end;
end;
if OpcionBaja.ItemIndex=3
then begin
while (NodoAux<>NIL)do
begin
SelectBaja.Items.Append(NodoAux^.Telefono);
NodoAux:=NodoAux^.PuntCola;
end;
end;
MiFormulario.SelectBaja.Visible:=TRUE;
end;
procedure TMiFormulario.NombreAChange(Sender: TObject);
begin
MiFormulario.Grabar.Enabled:=TRUE;
Corregir.Enabled:=TRUE;
end;
procedure TMiFormulario.RadioGroup1Click(Sender: TObject);
begin
SelectMod.Clear;
NodoAux:=PrimerNodo;
if RadioGroup1.ItemIndex=0
then begin
while (NodoAux<>NIL)do
begin
SelectMod.Items.Append(NodoAux^.Nombre);
NodoAux:=NodoAux^.PuntCola;
end;
end;
if RadioGroup1.ItemIndex=1
then begin
while (NodoAux<>NIL)do
begin
SelectMod.Items.Append(NodoAux^.Legajo);
NodoAux:=NodoAux^.PuntCola;
end;
end;
if RadioGroup1.ItemIndex=2
then begin
while (NodoAux<>NIL)do
begin
SelectMod.Items.Append(NodoAux^.Domicilio);
NodoAux:=NodoAux^.PuntCola;
end;
end;
if RadioGroup1.ItemIndex=3
then begin
while (NodoAux<>NIL)do
begin
SelectMod.Items.Append(NodoAux^.Telefono);
NodoAux:=NodoAux^.PuntCola;
end;
end;
SelectMod.Visible:=TRUE;
end;
procedure TMiFormulario.SelectBajaChange(Sender: TObject);
begin
if(SelectBaja.Text<>'')
then Baja.Enabled:=TRUE;
end;
procedure TMiFormulario.SelectModChange(Sender: TObject);
begin
if(SelectMod.Text<>'')
then begin
DatosModif.Visible:=TRUE;
Modificar.Enabled:=FALSE;
case RadioGroup1.ItemIndex of
0: begin{3}
NodoAux:=PrimerNodo;
while (NodoAux^.Nombre<>SelectMod.Text)do
begin{4}
NodoAux:=NodoAux^.PuntCola;
end;{4}
end;{3}
1: begin {a}
NodoAux:=PrimerNodo;
while (NodoAux^.Legajo<>SelectMod.Text)do
begin{b}
NodoAux:=NodoAux^.PuntCola;
end;{b}
end;{a}
2: begin{5}
NodoAux:=PrimerNodo;
while (NodoAux^.Domicilio<>SelectMod.Text)do
begin{6}
NodoAux:=NodoAux^.PuntCola;
end;{6}
end;{5}
3: begin {7}
NodoAux:=PrimerNodo;
while (NodoAux^.Telefono<>SelectMod.Text)do
begin{8}
NodoAux:=NodoAux^.PuntCola;
end;{8}
end;{7}
end;
Edit1.Text:=NodoAux^.Nombre;
Edit2.Text:=NodoAux^.Domicilio;
Edit3.Text:=NodoAux^.Telefono;
Edit4.Text:=NodoAux^.Legajo;
SelectMod.Visible:=FALSE;
RadioGroup1.ItemIndex:=-1;
end;
end;
procedure TMiFormulario.BotonesChange(Sender: TObject; NewTab: Integer;
var AllowChange: Boolean);
begin
if(PilaOCola.ItemIndex=0) then
PilaOCola.ItemIndex:=1
else PilaOCola.ItemIndex:=0;
if(PilaOCola.ItemIndex=0) then
PilaOCola.ItemIndex:=1
else PilaOCola.ItemIndex:=0;
DatosModif.Visible:=FALSE;
RadioGroup1.ItemIndex:=-1;
OpcionBaja.ItemIndex:=-1;
SelectBaja.Visible:=FALSE;
Corregir.Enabled:=FALSE;
Grabar.Enabled:=FALSE;
NombreA.Text:='';
DomAlt.Text:='';
TelA.Text:='';
LegA.Text:='';
Baja.Enabled:=FALSE;
SelectMod.Visible:=FALSE;
end;
procedure TMiFormulario.Edit1Change(Sender: TObject);
begin
Modificar.Enabled:=TRUE;
end;
procedure TMiFormulario.Edit2Change(Sender: TObject);
begin
Modificar.Enabled:=TRUE;
end;
procedure TMiFormulario.Edit3Change(Sender: TObject);
begin
Modificar.Enabled:=TRUE;
end;
procedure TMiFormulario.Edit4Change(Sender: TObject);
begin
Modificar.Enabled:=TRUE;
end;
procedure TMiFormulario.SelectModClick(Sender: TObject);
begin
Modificar.Enabled:=FALSE;
end;
end.