Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Obtener la descripcion de un package en ejecucion ($D) (https://www.clubdelphi.com/foros/showthread.php?t=50142)

Neftali [Germán.Estévez] 09-11-2007 11:05:21

Obtener la descripcion de un package en ejecucion ($D)
 
Pues eso, estoy liado con un tema de packages (espero compartirlo pronto con vosotros) y se me ha presentado una duda.
En el DPK de un package se puede utilizar la directiva {$D} o {$DESCRIPTION} para especificar una descripción para ese package.

Por ejemplo:

Código:

package PlugBase;

{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DESCRIPTION 'Objetos estandard'}
{$RUNONLY}
{$IMPLICITBUILD OFF}

requires
rtl,
vcl;

En ejecución voy a cargar ese package dinámicamente y me gustaría obtener esa descripción. Se que se puede (al menos Delphi lo hace) ya que es el texto que se muestra cuando en diseño (en el IDE) se carga un package.
Imagen del IDE.


He buscado, pero hoy estoy un poco/bastante espeso, así que si alguien sabe por donde van los tiros que me "ilumine".

Gracias.

Neftali [Germán.Estévez] 09-11-2007 12:28:55

Me contesto yo mismo. Mirando en la ayuda sobre funciones referentes a packages he encontrado esto:


function GetPackageDescription(ModuleName: PChar): string;

==> Returns the description resource from a package.

==> Call GetPackageDescription to obtain the description stored with the named package. If the package does not have a description resource, GetPackageDescription returns an empty string.


No la he probado todavía, pero la descripción parece clara; Cuando la pruebe os digo algo.

P.D: Ya dije que estaba "empanao"...:o

Neftali [Germán.Estévez] 09-11-2007 12:47:50

Efectívamente funciona como se esperaba...

Código:

procedure TForm1.Button4Click(Sender: TObject);
var
  Str: String;
begin
  if OpenDialog1.Execute then begin

    Str := GetPackageDescription(pChar(OpenDialog1.FileName));

    // Algo
    if (Str = '') then begin
      memo1.Lines.Add('Parece que no tienes Descriupcion');
    end
    else begin
      memo1.Lines.Add('Descripcion: '  Str);
    end;
  end;
end;


Neftali [Germán.Estévez] 09-11-2007 13:00:30

Gracias a todos por vuestras respuestas.
:D:D:D:D:D:D:D


La franja horaria es GMT +2. Ahora son las 08:24:09.

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