Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #16  
Antiguo 11-07-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Totalmente de acuerdo con lo que decis; pero vuelvo a remarcar que a mi no me interesa mucho el ahorro de bytes en el binario final sino el concepto (impacto que tiene en el diseño) el tener un uses que sobra

Cita:
Lazarus es igual, aunque en esto es un poco más vivo: te informa de las unidades que no se están usando.
Eso es sencillamente fantastico. En Delphi no tenemos algo asi?


Cita:
Y considerar que los constructores y destructores de clase vienen a ser, para muchas nuevas bibliotecas, una mejor alternativa que las tradicionales secciones Initialization y Finalization. Estas últimas, opcionales al final de las unidades .pas, sí que hacen que el programa ejecutable pese y haga más cosas de las que vemos a simple vista.
Si y no. Si la clase nunca se usa entonces el constructor de clase no se ejecuta. Por eso el truco del .ClassName . Por supuesto que si el usuario usa la biblioteca todo marcha bien

Código Delphi [-]
unit Unit3;

interface

type
  TTestClassConstructor = class
  public
    class constructor Create;
    class destructor Destroy;
  end;

implementation

class constructor TTestClassConstructor.Create;
begin
  Writeln('TTestClassConstructor.Create');
end;

class destructor TTestClassConstructor.Destroy;
begin
  Writeln('TTestClassConstructor.Destroy');
end;

end.

Con un codigo de aplicacion de consola vacio (un simple Readln para que no se cierre), aunque este la unit3 en el uses, los constructor/destructor de clase no se ejecutan.

Pero, si hago esto si:

Código Delphi [-]
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Unit3 in 'Unit3.pas';

begin
  try
    TTestClassConstructor.ClassName;
    Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.

Esto se ejecuta siempre

Código Delphi [-]
unit Unit3;

interface

implementation

initialization
  Writeln('initialization');

finalization
  Writeln('finalization');

end.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Instalador de programas Delphi Jose Roman Varios 5 13-03-2015 20:20:20
enlazar dos programas delphi cadina Varios 7 01-10-2008 17:11:47
enlazar dos programas delphi cadina OOP 2 08-08-2007 20:37:53
Programas Ocultos en Delphi 5 eljavi Varios 3 07-03-2007 04:37:31
Programas escritos con Delphi [Gunman] Varios 16 23-11-2005 14:32:36


La franja horaria es GMT +2. Ahora son las 16:44:29.


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
Copyright 1996-2007 Club Delphi