Hola Roman ¡
Te paso la Unit Biblioteca y le hechas un ojo
Código Delphi
[-]
unit Ubiblioteca;
interface
type
Tipo=(Economia,Deportes,General); TBiblioteca=class private
Editorial:string;
Dir_Edit:string;
Per_Contac:string;
Tlfno:string;
Poblacion:string[15];
Provincia:string[15];
public
constructor Inicia;
destructor Destroy;
procedure Alta(Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov:string);
procedure Baja;
procedure Modificacion;
procedure mostrar(var Editorial1:string;
var Dir_Edit1:string;
var Per_Contac1:string;
var Tlfno1:string;
var Poblacion1:string;
var Provincia1:string;
var Autor1:string;
var Ano_Public1:Integer;
var Nombre_Nov1:string;
var ISBN1:string;
var Nombre1:string;
var Director1:string;
var Ttipo1:Tipo;
var Epoca1:string;
var Persona_prin1:string;
var Tema1:string;
var Personaje1:string;
var Autobiografia1:boolean); virtual;
end;
TNovela=class(TBiblioteca) private
Autor:string;
Ano_Public:Integer;
Nombre_Nov:string;
ISBN:string;
public
constructor Inicia;
destructor Destroy;
procedure alta(Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov,aut,nom_nov,tisbn:string;ano_publ:integ er);
procedure mostrar(var Editorial1:string;
var Dir_Edit1:string;
var Per_Contac1:string;
var Tlfno1:string;
var Poblacion1:string;
var Provincia1:string;
var Autor1:string;
var Ano_Public1:Integer;
var Nombre_Nov1:string;
var ISBN1:string;
var Nombre1:string;
var Director1:string;
var Ttipo1:Tipo;
var Epoca1:string;
var Persona_prin1:string;
var Tema1:string;
var Personaje1:string;
var Autobiografia1:boolean); override;
end;
TPrensa=class(TBiblioteca) private
Nombre:string;
Director:string;
Ttipo:Tipo;
public
constructor Inicia;
destructor Destroy;
procedure alta(Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov,nom,dir:string; tip:tipo);
procedure mostrar(var Editorial1:string;
var Dir_Edit1:string;
var Per_Contac1:string;
var Tlfno1:string;
var Poblacion1:string;
var Provincia1:string;
var Autor1:string;
var Ano_Public1:Integer;
var Nombre_Nov1:string;
var ISBN1:string;
var Nombre1:string;
var Director1:string;
var Ttipo1:Tipo;
var Epoca1:string;
var Persona_prin1:string;
var Tema1:string;
var Personaje1:string;
var Autobiografia1:boolean); override;
end;
Thistorica=class(Tnovela) private
Epoca:string;
Persona_prin:string;
public
constructor Inicia;
destructor Destroy;
procedure alta(Epk,per_prin,Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov,aut,nom_nov,tisbn:string;a no_publ:integer);
procedure mostrar(var Editorial1:string;
var Dir_Edit1:string;
var Per_Contac1:string;
var Tlfno1:string;
var Poblacion1:string;
var Provincia1:string;
var Autor1:string;
var Ano_Public1:Integer;
var Nombre_Nov1:string;
var ISBN1:string;
var Nombre1:string;
var Director1:string;
var Ttipo1:Tipo;
var Epoca1:string;
var Persona_prin1:string;
var Tema1:string;
var Personaje1:string;
var Autobiografia1:boolean); override;
end;
Tficcion=class(Tnovela) private
Tema:string;
public
constructor Inicia;
destructor Destroy;
procedure alta(tem,Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov,aut,nom_nov,tisbn:string;ano_publ:i nteger);
procedure mostrar(var Editorial1:string;
var Dir_Edit1:string;
var Per_Contac1:string;
var Tlfno1:string;
var Poblacion1:string;
var Provincia1:string;
var Autor1:string;
var Ano_Public1:Integer;
var Nombre_Nov1:string;
var ISBN1:string;
var Nombre1:string;
var Director1:string;
var Ttipo1:Tipo;
var Epoca1:string;
var Persona_prin1:string;
var Tema1:string;
var Personaje1:string;
var Autobiografia1:boolean); override;
end;
Tbiografia=class(Tnovela) private
Personaje:string;
Autobiografia:boolean;
public
constructor Inicia;
destructor Destroy;
procedure alta(Pers,Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov,aut,nom_nov,tisbn:string;ano_publ: integer;Autobio:boolean);
procedure mostrar(var Editorial1:string;
var Dir_Edit1:string;
var Per_Contac1:string;
var Tlfno1:string;
var Poblacion1:string;
var Provincia1:string;
var Autor1:string;
var Ano_Public1:Integer;
var Nombre_Nov1:string;
var ISBN1:string;
var Nombre1:string;
var Director1:string;
var Ttipo1:Tipo;
var Epoca1:string;
var Persona_prin1:string;
var Tema1:string;
var Personaje1:string;
var Autobiografia1:boolean); override;
end;
implementation
constructor Tbiblioteca.Inicia; begin
inherited create;
end;
procedure Tbiblioteca.Alta(Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov:string);
begin
Editorial:=Edit; Dir_Edit:=Dir_Editorial;
Per_Contac:=Persona_Contact;
Tlfno:=telefono;
Poblacion:=Poblac;
Provincia:=Prov;
end;
procedure Tbiblioteca.Baja; begin
end;
procedure Tbiblioteca.Modificacion; begin
end;
procedure Tbiblioteca.mostrar(var Editorial1:string;
var Dir_Edit1:string;
var Per_Contac1:string;
var Tlfno1:string;
var Poblacion1:string;
var Provincia1:string;
var Autor1:string;
var Ano_Public1:Integer;
var Nombre_Nov1:string;
var ISBN1:string;
var Nombre1:string;
var Director1:string;
var Ttipo1:Tipo;
var Epoca1:string;
var Persona_prin1:string;
var Tema1:string;
var Personaje1:string;
var Autobiografia1:boolean); begin
Editorial1:=Editorial; Dir_edit1:=Dir_Edit;
Per_contac1:=Per_Contac;
tlfno1:=Tlfno;
Poblacion1:=Poblacion;
provincia1:=Provincia;
end;
destructor Tbiblioteca.Destroy; begin
inherited destroy;
end;
constructor Tprensa.Inicia; begin
inherited create;
end;
procedure Tprensa.alta(Edit,Dir_Editorial,Persona_Contact,Telefono,
Poblac,Prov,nom,dir:string; tip:tipo);
begin
inherited alta(Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov); Nombre:=nom;
Director:=dir;
ttipo:=tip;
end;
procedure tprensa.mostrar(var Editorial1:string;
var Dir_Edit1:string;
var Per_Contac1:string;
var Tlfno1:string;
var Poblacion1:string;
var Provincia1:string;
var Autor1:string;
var Ano_Public1:Integer;
var Nombre_Nov1:string;
var ISBN1:string;
var Nombre1:string;
var Director1:string;
var Ttipo1:Tipo;
var Epoca1:string;
var Persona_prin1:string;
var Tema1:string;
var Personaje1:string;
var Autobiografia1:boolean);
begin
inherited mostrar(Editorial1,Dir_Edit1,Per_Contac1,Tlfno1,
Poblacion1,Provincia1,Autor1,Ano_Public1,
Nombre_Nov1,ISBN1,Nombre1,Director1,
Ttipo1,Epoca1,Persona_prin1,Tema1,Personaje1,
Autobiografia1);
nombre1:=nombre;
director1:=director;
ttipo1:=ttipo;
end;
destructor Tprensa.Destroy; begin
inherited destroy;
end;
constructor Tnovela.Inicia; begin
inherited create;
end;
procedure Tnovela.alta(Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov,aut,nom_nov,tisbn:string;ano_pu bl:integer);
begin
inherited alta(Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov); Autor:=aut;
Nombre_nov:=nom_nov;
ISBN:=tisbn;
ano_public:=ano_publ;
end;
procedure tnovela.mostrar(var Editorial1:string;
var Dir_Edit1:string;
var Per_Contac1:string;
var Tlfno1:string;
var Poblacion1:string;
var Provincia1:string;
var Autor1:string;
var Ano_Public1:Integer;
var Nombre_Nov1:string;
var ISBN1:string;
var Nombre1:string;
var Director1:string;
var Ttipo1:Tipo;
var Epoca1:string;
var Persona_prin1:string;
var Tema1:string;
var Personaje1:string;
var Autobiografia1:boolean);
begin
inherited mostrar(Editorial1,Dir_Edit1,Per_Contac1,Tlfno1,
Poblacion1,Provincia1,Autor1,Ano_Public1,
Nombre_Nov1,ISBN1,Nombre1,Director1,
Ttipo1,Epoca1,Persona_prin1,Tema1,Personaje1,
Autobiografia1);
Ano_Public1:=ano_public;
autor1:=autor;
nombre_nov1:=nombre_nov;
isbn1:=isbn;
end;
destructor Tnovela.Destroy; begin
inherited destroy;
end;
constructor Thistorica.Inicia;
begin
inherited create; end;
procedure Thistorica.alta(Epk,per_prin,Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov,aut,nom_nov,tis bn:string;ano_publ:integer);
begin
inherited alta(Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov,aut,nom_nov,tisbn,ano_publ);
Epoca:=Epk;
Persona_prin:=per_prin;
end;
procedure thistorica.mostrar(var Editorial1:string;
var Dir_Edit1:string;
var Per_Contac1:string;
var Tlfno1:string;
var Poblacion1:string;
var Provincia1:string;
var Autor1:string;
var Ano_Public1:Integer;
var Nombre_Nov1:string;
var ISBN1:string;
var Nombre1:string;
var Director1:string;
var Ttipo1:Tipo;
var Epoca1:string;
var Persona_prin1:string;
var Tema1:string;
var Personaje1:string;
var Autobiografia1:boolean);
begin
inherited mostrar(Editorial1,Dir_Edit1,Per_Contac1,Tlfno1,
Poblacion1,Provincia1,Autor1,Ano_Public1,
Nombre_Nov1,ISBN1,Nombre1,Director1,
Ttipo1,Epoca1,Persona_prin1,Tema1,Personaje1,
Autobiografia1);
Epoca1:=Epoca;
persona_prin1:=persona_prin;
end;
destructor Thistorica.Destroy;
begin
inherited destroy;
end;
constructor Tficcion.Inicia;
begin
inherited create;
end;
procedure Tficcion.alta(tem,Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov,aut,nom_nov,tisbn:string;a no_publ:integer);
begin
inherited alta(Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov,aut,nom_nov,tisbn,ano_publ);
tema:=tem;
end;
procedure tficcion.mostrar(var Editorial1:string;
var Dir_Edit1:string;
var Per_Contac1:string;
var Tlfno1:string;
var Poblacion1:string;
var Provincia1:string;
var Autor1:string;
var Ano_Public1:Integer;
var Nombre_Nov1:string;
var ISBN1:string;
var Nombre1:string;
var Director1:string;
var Ttipo1:Tipo;
var Epoca1:string;
var Persona_prin1:string;
var Tema1:string;
var Personaje1:string;
var Autobiografia1:boolean);
begin
inherited mostrar(Editorial1,Dir_Edit1,Per_Contac1,Tlfno1,
Poblacion1,Provincia1,Autor1,Ano_Public1,
Nombre_Nov1,ISBN1,Nombre1,Director1,
Ttipo1,Epoca1,Persona_prin1,Tema1,Personaje1,
Autobiografia1);
tema1:=tema;
end;
destructor Tficcion.Destroy;
begin
inherited destroy;
end;
constructor Tbiografia.Inicia;
begin
inherited create;
end;
procedure Tbiografia.alta(Pers,Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov,aut,nom_nov,tisbn:strin g;ano_publ:integer;Autobio:boolean);
begin
inherited alta(Edit,Dir_Editorial,Persona_Contact,Telefono,Poblac,Prov,aut,nom_nov,tisbn,ano_publ);
Personaje:=Pers;
Autobiografia:=Autobio;
end;
procedure tbiografia.mostrar(var Editorial1:string;
var Dir_Edit1:string;
var Per_Contac1:string;
var Tlfno1:string;
var Poblacion1:string;
var Provincia1:string;
var Autor1:string;
var Ano_Public1:Integer;
var Nombre_Nov1:string;
var ISBN1:string;
var Nombre1:string;
var Director1:string;
var Ttipo1:Tipo;
var Epoca1:string;
var Persona_prin1:string;
var Tema1:string;
var Personaje1:string;
var Autobiografia1:boolean);
begin
inherited mostrar(Editorial1,Dir_Edit1,Per_Contac1,Tlfno1,
Poblacion1,Provincia1,Autor1,Ano_Public1,
Nombre_Nov1,ISBN1,Nombre1,Director1,
Ttipo1,Epoca1,Persona_prin1,Tema1,Personaje1,
Autobiografia1);
personaje1:=personaje;
autobiografia1:=autobiografia;
end;
destructor Tbiografia.Destroy;
begin
inherited destroy;
end;
end.
Tomare en cuenta tu consejo, yo por ahora solo me limito a aprender, llebo solo 1 mes programando en Delphi y es mi primer lenguaje de programacion orientado a objetos que aprendo, la pregunta mas logica es....¿Podria utilizar siempre Propiedades cuando exista una jerarquia de clases?