Qué es esto..??
Altas
Navegar
Bajas
Modificar
Otros
unit LisCircu;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, mxgrid, ExtCtrls, mxpivsrc, ImgList, jpeg, Buttons;
var
Miformulario: TMiformulario;
PrimerNodo,Indice,NodoAuxiliar,NodoAnterior :puntero;
ban, cont:integer;
implementation
{$R *.DFM}
procedure TMiformulario.BotonAltasClick(Sender: TObject);
Begin
Nombre.Text := '' ;
Domicilio.Text:='';
Telefono.Text:='';
Domicilio.Enabled:=True;
Telefono.Enabled:=True;
PanelAltas.Visible:=True;
Grabar.Visible:=True;
CerrarAltas.Visible:=True;
Nombre.setfocus;
MiFormulario.Caption:=' Ingrese los datos: Nombre, Domicilio, Telefono';
GrillaDatos.Visible := False;
bCerrargrilla.Visible:=False;
bAceptarmodif.Visible:=False;
bAceptarBajas.Visible:=False;
GuardarModif.Visible:=False;
if Nombre.Text<>'' then
begin
Grabar.Visible := True;
end;
end;
procedure TMiformulario.GrabarClick(Sender: TObject);
begin
If Nombre.Text = '' then
begin
APPLICATION.MessageBox( 'No tipeo ningun datos ',
'NO PUEDE GRABAR',mb_OK );
end
else
begin
If 1=APPLICATION.MessageBox( 'Grabas los datos digitados ?',
'ALTA DE DATOS',mb_OKCancel+mb_defbutton1 )then
begin
BotonVerDatos.Enabled:=True;
NEW(NodoAuxiliar);
NodoAuxiliar^.Nombre:=Nombre.Text;
NodoAuxiliar^.Domicilio:=Domicilio.Text;
NodoAuxiliar^.Telefono:=Telefono.Text;
Nombre.Text :='';
Domicilio.Text :='';
Telefono.Text :='';
NodoAuxiliar^.CampoEnlace:=NIL;
IF PrimerNodo=NIL THEN
begin
PrimerNodo:=NodoAuxiliar;
NodoAuxiliar^.CampoEnlace :=PrimerNodo;
end
else
Begin
NodoAnterior := PrimerNodo;
While NodoAnterior^.CampoEnlace <> PrimerNodo do
NodoAnterior := NodoAnterior^.CampoEnlace;
NodoAnterior^.CampoEnlace := NodoAuxiliar;
NodoAuxiliar^.CampoEnlace := PrimerNodo;
end;
end ;
end;
Nombre.setfocus;
end;
procedure TMiformulario.bCerrargrillaClick(Sender: TObject);
begin
grilladatos.visible:=False;
bCerrargrilla.visible :=False;
end;
procedure TMiformulario.SalirClick(Sender: TObject);
begin
If 1=APPLICATION.MessageBox('CONFIRMA LA OPERACION...!!','ESTA POR CERRAR EL PROGRAMA',MB_OKCANCEL) THEN
MIFORMULARIO.CLOSE;
end;
procedure TMiformulario.bAceptarBajasClick(Sender: TObject);
begin
ban:=0;
Domicilio.Enabled:=True;
Telefono.Enabled:=True;
NodoAnterior := PrimerNodo;
While (NodoAnterior^.CampoEnlace <> PrimerNodo) and (ban=0) do
begin
If NodoAnterior^.Nombre = Nombre.Text then
begin
ban:=1;
indice:=NodoAnterior;
end;
NodoAnterior := NodoAnterior^.CampoEnlace;
end;
If NodoAnterior^.Nombre = Nombre.Text then
begin
ban:=1;
indice:=NodoAnterior;
end;
If ban=0 then
begin
Application.MessageBox('Ese nombre no fue ingresado',
'No existe',mb_ok);
Nombre.text:='';
Nombre.setFocus;
end
else
begin
Nombre.text:=Indice^.Nombre;
Domicilio.text:=Indice^.Domicilio;
Telefono.text:= Indice^.Telefono;
Nombre.SetFocus;
If 1=APPLICATION.MessageBox( 'Esta es la persona que da de bajas?',
'BAJAS',mb_OKCancel )then
begin
ban:=0;
cont:=0;
Indice := PrimerNodo;
While (Indice^.CampoEnlace <> PrimerNodo) and (ban=0) do
begin
cont:=cont+1;
If Indice^.Nombre = Nombre.Text then
begin
ban:=1;
end
else
begin
NodoAnterior:=Indice;
Indice:= Indice^.CampoEnlace;
end;
end;
// Borro un unico nodo
If (ban=0) and (cont = 0) then
begin
If Indice^.Nombre = Nombre.Text then
begin
PrimerNodo:=Nil;
MiFormulario.Caption:=' LA LISTA QUEDO VACIA';
end;
end;
// Borro el ultimo nodo
If (ban=0) and (cont <> 0) then
begin
If Indice^.Nombre = Nombre.Text then
begin
NodoAnterior^.CampoEnlace:=PrimerNodo;
end;
end;
// Borro el primer nodo de la lista
If (ban=1 ) and (cont=1) then
begin
NodoAuxiliar:=PrimerNodo;
While Indice^.CampoEnlace <> Primernodo do
begin
Indice:=Indice^.CampoEnlace;
end;
PrimerNodo:=NodoAuxiliar^.CampoEnlace;
Indice^.CampoEnlace:=Primernodo;
end;
//ultima opcion, borrar un nodo del medio
If (ban=1 ) and (cont>1) then
begin
NodoAnterior^.CampoEnlace:=Indice^.CampoEnlace;
Dispose(Indice);
end;
PanelAltas.Visible:= False;
MiFormulario.Caption:=' NOMBRE ELIMINADO !!!!';
end;
end;
end;
END.
procedure TMiformulario.bAceptarmodifClick(Sender: TObject);
begin
ban:=0;
Domicilio.Enabled:=True;
Telefono.Enabled:=True;
NodoAnterior := PrimerNodo;
While (NodoAnterior^.CampoEnlace <> PrimerNodo) and (ban=0) do
begin
If NodoAnterior^.Nombre = Nombre.Text then
begin
ban:=1;
indice:=NodoAnterior;
end;
NodoAnterior := NodoAnterior^.CampoEnlace;
end;
If NodoAnterior^.Nombre = Nombre.Text then
begin
ban:=1;
indice:=NodoAnterior;
end;
If ban=0 then
begin
Application.MessageBox('Ese nombre no fue ingresado',
'No existe',mb_ok);
Nombre.text:='';
Nombre.setFocus;
end
else
begin
Nombre.text:=Indice^.Nombre;
Domicilio.text:=Indice^.Domicilio;
Telefono.text:= Indice^.Telefono;
Nombre.SetFocus;
If 1=APPLICATION.MessageBox( 'Esta es la persona que modifica ?',
'MODIFICACION',mb_OKCancel )then
begin
MiFormulario.Caption:=' Ingrese los nuevos datos';
if Nombre.Text<> '' then
begin
Guardarmodif.Visible:=True;
bAceptarModif.visible:=False;
end;
end;
end;
end;
procedure TMiformulario.GuardarmodifClick(Sender: TObject);
begin
Indice^.Nombre:=Nombre.Text;
Indice^.Domicilio:=Domicilio.Text;
Indice^.Telefono:=Telefono.Text;
Nombre.Text :='';
Domicilio.Text :='';
Telefono.Text :='';
end;
procedure TMiformulario.CerrarAltasClick(Sender: TObject);
begin
PanelAltas.Visible:=False;
Grabar.Visible:=False;
CerrarAltas.Visible:=False;
end;