Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Debates
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues me extraña esto que comentas dec, pues hace poco se mencionó esto, y de ahí que no me sonara desconocido eso. Será cuestión de la versión.

// Saludos
Responder Con Cita
  #2  
Antiguo 26-04-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No sé. A mí me suena raro porque llevo usando UPX hace bastante tiempo y no recuerdo haberme topado con ese problema. He visto el Hilo que enlazas, pero, no me queda claro. UPX comprime el ejecutable, es cierto, pero cuando este último se ejecuta, propiamente, UPX lo descomprime: dejándolo, obviamente, como estaba.

Pero, aparte de esta idea mía, que puede estar equivocada, insisto: acabo de probar con UPX 1.25, que era el que venía utilizando; he ido a la Web de UPX y he descargado la versión 2.05 (la última versión) y he probado de nuevo y todo ha ido como esperaba, o sea.

Si fuera cuestión de la versión (que puede ser) lo cierto es que sería (según mi idea) un Bug de dicha versión, por lo que he mencionado: UPX comprime y añade un descompresor al ejecutable que se encarga de descomprimirlo: creo que se trata en todo caso de una compresión "sin pérdida", así que cuando se descomprime todo debe estar como al principio.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 26-04-2007 a las 01:38:44.
Responder Con Cita
  #3  
Antiguo 26-04-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Cool Upppss

Lamento si no me explique bien, no me refiero al upx pues este si respeta dicho recurso, el que no lo hace y el cual sugeri utilizar para aplicaciones realmente pequeñas. El mew es el que no respeta al xpman.res
Responder Con Cita
  #4  
Antiguo 26-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues tienes razón David. Ya lo he probado yo mismo y funciona como dices.

// Saludos
Responder Con Cita
  #5  
Antiguo 26-04-2007
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 20
xander Va por buen camino
A todo esto, ¿que c#ing@o$ es el XP Manifiesto ese??? pa que sirve o que onda??... me sirve de algo si estoy trabajando con Delphi2007 que según ya es para Vista y no para XP ???? o que onda?
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #6  
Antiguo 26-04-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Existe una unidad en Delphi 7 de nombre "XpMan.pas". Esta unidad se limita exclusivamente a añadir al ejecutable (como un recurso más) el archivo "WindowsXP.res", que puede encontrarse en: "C:\Archivos de programa\Borland\Delphi7\Lib".

Pues bien, dicho archivo ".res" contiene el siguiente XML:

Código:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
  	type="win32"
    name="DelphiApplication"
    version="1.0.0.0" 
  	processorArchitecture="*"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
</assembly>
El cual es "leído" por Windows cuando se ejecuta el ejecutable que lo contiene. Entonces Windows aplica a los controles "comunes" ("TEdit", "TButton", "TMemo", "TMainMenu", etc.) que contenga dicho ejecutable, le aplica, digo, el tema que esté establecido en Windows XP.

¿Si te sirve de algo en Delphi 2007? Ignoro siquiera si se incluye la unidad "XpMan.pas", empero, a no ser que se incluya el recurso "WindowsXP.res" por defecto en los ejecutables (cosa que dudo, pero por pura intuición), si quieres que tu programa adopte el tema de Windows XP... deberá usarse igual que en Delphi 7, por ejemplo.

En general podría decirse que cualquier ejecutable (de Delphi o de otro lenguaje/entorno) que contenga el XML referido (como un recurso más dentro del ejecutable), tomará en sus controles comunes (de Windows) la apariencia del tema de Windows XP que esté usando el usuario.

PD. Pero no mezclemos distintos temas en un mismo Hilo que puedo acabar echándome la bronca a mí mismo y no veas tú qué compromiso.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 26-04-2007 a las 03:58:15.
Responder Con Cita
  #7  
Antiguo 26-04-2007
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 20
xander Va por buen camino
Gracias Dec, las cosas de las que se entera uno... no tenía ni idea de eso

__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #8  
Antiguo 26-04-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Vamos a ampliar ambos la información, ya puestos, y a leer el artículo de Michael A. Allen y Zarko Gajic: Windows XP Manifest in Delphi.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #9  
Antiguo 26-04-2007
Avatar de Black_Ocean
Black_Ocean Black_Ocean is offline
Miembro
 
Registrado: nov 2006
Posts: 128
Poder: 20
Black_Ocean Va por buen camino
Cita:
Empezado por xander
A todo esto, ¿que c#ing@o$ es el XP Manifiesto ese??? pa que sirve o que onda??... me sirve de algo si estoy trabajando con Delphi2007 que según ya es para Vista y no para XP ???? o que onda?
Para todos aquellos que tienen esta duda tan extraña, el XPManifest es para que los formularios, botones, paneles, etc de tu programa soporten los temas (apariencia) de Windows XP y superior que tenga el usuario, de otra manera si no está el XPManifest presente los formularios no podrán soportar esta cualidad, y se verán con la misma apariencia antigua y no grata de Windows 2000 hacia abajo(ploma y poco vistosa) a pesar que el usuario tenga un tema de apariencia configurado en XP. Desde Delphi 7 este componente viene incorporado en la paleta Win32. Para usuarios con versiones inferiores a la 7 deben hacerlo manualmente, primero haciendo un archivo como se mencionó anteriormente con esas características y guardándolo con extensión .Manifest, luego creando un archivo especificando el tipo de recurso guardándolo en extensión con el mismo nombre del anterior pero con extensión .RC, luego compilándolo con el archivo Bcc32.exe que se encuentra en la carpeta bin, el cual les generará un archivo .RES que luego lo tienen que especificar en su código de la unidad del formulario.

Ejemplo de cómo especificarlo:

Código Delphi [-]

implementation

{$R *.dfm}
{$R Ejemplo.RES}

También el otro método que existe es simplemente poniendo el archivo .manifest en la misma carpeta en donde radicará el ejecutable de tu proyecto pero con el mismo nombre del ejecutable, es decir, si nuestro ejecutable se llama MiProyecto.exe, el archivo manifest se tendrá que llamar MiProyecto.manifest

Espero que les haya servido la información.

Última edición por Black_Ocean fecha: 26-04-2007 a las 11:35:44.
Responder Con Cita
  #10  
Antiguo 26-04-2007
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.025
Poder: 27
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Sé que llego tarde, y que esto está degenerando un poco, pero voy a recuperar el hilo inicial de esta conversación.

Lo de los programas "keygen" que muestran esas impresionantes presentaciones en poco más de 30Ko de ejecutable es herencia de las "tech-demos" que se empezaron a hacer en los '80. En estas se intentaba hacer el programa más impresionante (e inútil, todo sea dicho de paso) en el menor espacio posible.

Yo fui demo-maker en mis tiempos, pero yo lo hacía en MSX y no en PC. Para ahorrar el máximo de memoria las demos se programaban exclusivamente en ensamblador, realizando llamadas directas al BIOS y accediendo a los puertos y a la memoria del sistema de forma directa, sin pasar por el sistema operativo.

Por otro lado, lo que hincha un programa Windows suelen ser los recursos. Si en lugar de crear las ventanas y diálogos con el IDE, arrastrando y soltando componentes con el ratón, lo hacemos a golpe de código podemos reducir considerablemente el tamaño de los ejecutables. Hace ya algunos años hice una demostración con Delphi 6 en el que ahorré una media de 1'5Ko por control (no sólo los visibles como los botones sino también los invisibles como los TQuery, TDialog, etc.) al reproducir un programa RAD a golpe de código. Si un programa tiene 200 componentes, lo cual es bastante común, podemos ahorrar casi 300Ko.

Eso sí, es mucho más difícil diseñar un formulario escribiendo el código directamente en Pascal que utilizando los componentes visuales.
Responder Con Cita
  #11  
Antiguo 26-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
O sea, que de RAD pasó a SAD

// Saludos
Responder Con Cita
  #12  
Antiguo 26-04-2007
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 20
xander Va por buen camino
Cita:
Empezado por Ñuño Martínez
al reproducir un programa RAD a golpe de código. Si un programa tiene 200 componentes, lo cual es bastante común, podemos ahorrar casi 300Ko.

Eso sí, es mucho más difícil diseñar un formulario escribiendo el código directamente en Pascal que utilizando los componentes visuales.
Aver, a ver, ¿quieres decir que si creo mis componentes desde código? al estilo de:

Código Delphi [-]
var
  Form1: TForm1;
  Button1: TButton;
  JvDBGrid1: TJvDBGrid;
  Table1: TTable;
  Jv: TJvCsvDataSet;
  M: TJvMemoryData;
  JvDataSource1: TJvDataSource;

  Form1 := TForm1.Create(Self);
  Button1 := TButton.Create(Form1);
  JvDBGrid1 := TJvDBGrid.Create(Form1);
  Table1 := TTable.Create(Self);
  Jv := TJvCsvDataSet.Create(Self);
  M := TJvMemoryData.Create(Self);
  JvDataSource1 := TJvDataSource.Create(Self);
  with Form1 do
  begin
    Name := 'Form1';
    Left := 0;
    Top := 0;
    Caption := 'Form1';
    ClientHeight := 530;
    ClientWidth := 399;
    Color := clBtnFace;
    Font.Charset := DEFAULT_CHARSET;
    Font.Color := clWindowText;
    Font.Height := -11;
    Font.Name := 'Tahoma';
    Font.Style := [];
    OldCreateOrder := False;
    PixelsPerInch := 96;
  end;
  with Button1 do
  begin
    Name := 'Button1';
    Parent := Form1;
    Left := 32;
    Top := 64;
    Width := 75;
    Height := 25;
    Caption := 'Button1';
    TabOrder := 0;
    OnClick := Button1Click;
  end;
  with JvDBGrid1 do
  begin
    Name := 'JvDBGrid1';
    Parent := Form1;
    Left := 24;
    Top := 112;
    Width := 345;
    Height := 385;
    DataSource := JvDataSource1;
    TabOrder := 1;
    TitleFont.Charset := DEFAULT_CHARSET;
    TitleFont.Color := clWindowText;
    TitleFont.Height := -11;
    TitleFont.Name := 'Tahoma';
    TitleFont.Style := [];
    SelectColumnsDialogStrings.Caption := 'Select columns';
    SelectColumnsDialogStrings.OK := '&OK';
    SelectColumnsDialogStrings.NoSelectionWarning := 'At least one column must be visible!';
    EditControls := <>;
    RowsHeight := 17;
    TitleRowHeight := 17;
  end;
  with Table1 do
  begin
    Name := 'Table1';
    DatabaseName := 'DBDEMOS';
    TableName := 'customers.dbf';
    Left := 24;
    Top := 16;
  end;
  with Jv do
  begin
    Name := 'Jv';
    Changed := False;
    CsvUniqueKeys := False;
    ExtendedHeaderInfo := False;
    CaseInsensitive := False;
    LoadsFromFile := False;
    AutoBackupCount := 0;
    StoreDefs := True;
    Left := 88;
    Top := 16;
  end;
  with M do
  begin
    Name := 'M';
    FieldDefs := <>;
    Left := 160;
    Top := 16;
  end;
  with JvDataSource1 do
  begin
    Name := 'JvDataSource1';
    DataSet := Jv;
    Left := 248;
    Top := 24;
  end;

Mi programa va a medir menos que usando el editor de formularios de Delphi??? Me puedes firmar con tu sangre eso??

Y de ser así, porque es que sucede eso??? al final de cuentas eso es lo que hace el compilador de Delphi al crear el formulario, que no?
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Los "ratones" se hacen inteligentes gracias a Logitech Sasuke_Cub Noticias 1 08-10-2005 23:37:50
DBGrid con PickList estilo "Code Templates" sitrico Varios 0 01-07-2005 17:55:34
buscar palabras parecidas (estilo google) - "quiso decir...." ksellas Conexión con bases de datos 10 26-01-2005 00:30:49
Stallman: "La única manera de ser libre es rechazar los programas propietarios" kinobi Debates 12 20-05-2004 16:07:24


La franja horaria es GMT +2. Ahora son las 03:41:35.


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