Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   librerías personalizadas para agregar en "uses" (https://www.clubdelphi.com/foros/showthread.php?t=90870)

ssouto 24-09-2016 00:56:07

librerías personalizadas para agregar en "uses"
 
Hola soy re novato en delphi y un tanto grandecito, pero me estoy animando a aprender, aunque mis neuronas no son las de la juventud.

necesito para la Facu, generar unas librerías de manejo de pilas, listas y colas. Tengo los códigos, pero no me doy cuenta como generar la librería.
no debo llamar con botón sino que tienen que estar disponible al incorporarla en "uses". existe ya algún tutorial que me ayude?

desde ya muchas gracias

BDWONG 24-09-2016 01:42:18

Hola aquí esta un tutorial http://www.codigo-facil.com/es/crear-unit-delphi.php en el foro hay también mucha información basta con que uses el buscador y escribas UNIT
Aqui tienes otro ejemplo precisamente del foro: https://www.clubdelphi.com/foros/showthread.php?t=21032

SALUDOSSS:)

ecfisa 24-09-2016 01:51:54

Hola ssouto, bienvenido a los foros de Club Delphi. Y como acostumbramos con los ingresantes, te invitamos a que leas nuestra guía de estilo.

Primero creas una nueva unidad ( File -> New -> Unit ). Delphi te creará un esqueleto similar a este:
Código Delphi [-]
unit Unit2; 

interface  {1}    

implementation {2} 

end.
Todo lo que desees que sea accesible desde cualquier unidad que incluya a esta, lo declaras en la sección interface (luego de {1}), ej.:
Código Delphi [-]
unit Unit2;

interface {1}

type
  PNodo = ^TNodo;
  TNodo = packed record
    dato1 : string[50];
    dato2 : integer;
    ant   : PNodo;
    sig   : PNodo;
  end;

  procedure CrearLista(var Nodo: PNodo; const cad: string; const nro: Integer);
  ...
Y todo lo que no desees que sea accesible desde otras unidades, en la sección implementation (luego de {2}), vg.:
Código Delphi [-]
...

implementation {2}

procedure CrearLista(var Nodo: PNodo; const cad: string; const nro: Integer);
begin
  New(Nodo);
  Nodo^.dato1 := cad;
  Nodo^.dato2 := nro;
  Nodo^.ant   := nil;
  Nodo^.sig   := nil
end;

...

end.
Luego ya podrías hacer:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;  // (también podrías incluirla aqui)

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation  

uses Unit2;  // <- aquí, incluida la unidad

procedure TForm1.Button1Click(Sender: TObject);
var
  Lista: PNodo;
begin
  CrearLista(Lista, 'Hola', 115);
end;
...

Mas sobre unidades:Buscando en la web, seguramente encuentres mas información.

Saludos :)

ssouto 24-09-2016 02:13:33

gracias
 
Agradezco la rápida respuesta, prometo leer el manual de estilo, ya comencé, estuve usando el buscador; pero cuando uno es ignorante de un tema busca mal, y estuve dando muchas vueltas sin encontrar nada, lo que encontré me llevaba a otras alternativas para usuarios mas adelantados que yo en delphi, ya introducidos en programación orientada a objetos.
En mi camino de aprendizaje todavía no hemos vistos nada de programación orientada a objetos. Me indicaron que seria en el próximo cuatrimestre. Actualmente utilizamos delphi como evolución de freepascal para avanzar con modularidad, reutilización, ocultamiento y encapsulamiento, como así también uso y aplicación de listas, pilas y colas.

muchas gracias

ssouto 25-09-2016 21:57:54

nueva inquietud
 
luego de leer todo lo que me sugirieron, no me doy cuenta donde debe guardar una unit para que luego la encuentren posteriores proyectos al referirla en el uses de dicho nuevo proyecto.
no estoy haciendo una dll, sino una unit que se pueda utilizar desde otros proyectos.
estoy utilizando Delphi 7.

Adicionalmete, hay una forma de identar varios renglones juntos? cuando lo quiero hacer como lo hacia en geany, dando TAB, me los borra.

desde ya muchas gracias

Lepe 26-09-2016 18:32:28

La unidad debe estar en una ruta donde Delphi la encuentre.

Para hacerlo de forma global:

Tools -> enviroment options -> library; añade en "Library paths" y también en "Browsing paths" por ejemplo $(delphi)\Projects\MisUnidades (tienes que crear la carpeta y poner la Unit allí).

Para un proyecto determinado nada más:
En Project -> Add to project -> elegir la unidad donde esté y listo.

Con respecto a sangrar el código, las teclas rápidas del IDE son CTRL + SHIFT + I (Indent) y CTRL+ SHIFT + U , que no sé como decir disminuir sangría en inglés :D Unindent??.

Si instalas cnWizards (gratis y open source) añade muchas cosas al IDE de Delphi, entre ellas el sangrar con TAB y disminuir el sangrado con SHIFT + TAB. Además de colorear el código fuente... indispensable hoy día jejeje.

Saludos!

ssouto 27-09-2016 03:33:38

gracias!!!
 
muchas gracias por todos los datos!!!
lo intento, cualquier cosa consulto.

ssouto 21-10-2016 22:33:43

muchas gracias
 
Hola Club Delphi, logre instalar en cnWIzard, la verdad muuy bueno, para un iniciado como yo es muy útil poder ver las conexiones entre sentencias de código.
Agradezco mucho.

los temas que tengo dudas tratare de buscar en lo foros.

Pero si alguien lee este mensaje, ando buscando entender el funcionamiento de las Pilas, Colas, Listas, Árbol binario de búsqueda y Árbol B, si tienen sugerencias para entrarle al tema para alguien que repito e un iniciado en programación y en delphi .

saludos


La franja horaria es GMT +2. Ahora son las 14:12:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi