Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-03-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Question ¿Saben de algún componente que realice ésta función?

Buena tarde, jóvenes delphineros...

Aquí, yo y mis peticiones a cual más rara y complicada. ¿Conocen algún componente que en un panel me permita mostrar una previsualización de un archivo Adobe Acrobat? Y de ser posible, que también lo mandase a la impresora, estaría fabuloso.

O de algún código que me permita mostrar una especie de visualización previa del archivo PDF.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #2  
Antiguo 06-03-2012
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Hola, ¿has probado con el ActiveX de Adobe?

Regístralo en Delphi y te creará un componente en la paleta de "ActiveX".
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #3  
Antiguo 06-03-2012
manuc manuc is offline
Miembro
 
Registrado: abr 2010
Posts: 165
Poder: 15
manuc Va por buen camino
Hola,

Con previsualización ¿a qué te refieres axactamente? ¿un thumbnail?

Un saludo.
Responder Con Cita
  #4  
Antiguo 06-03-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
¿No te sirve abrirlo con el visor predeterminado que tenga windows?
__________________
Be water my friend.
Responder Con Cita
  #5  
Antiguo 06-03-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por newtron Ver Mensaje
¿No te sirve abrirlo con el visor predeterminado que tenga windows?
De hecho, éste será el siguiente paso, es decir, al hacer una visualización previa del documento en un panelito, darle doble click, llamar a Adobe Acrobat e imprimirlo y demás.

Sí, manuc, a éso me refiero exactamente. Una visualización previa en un thumbnail dentro de un panel de una pantalla.

defcon1_es, la idea es tener un panelito que me muestre el documento, sin necesidad de registrar el ActiveX, que ya tengo en su lugar y funcionando.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #6  
Antiguo 07-03-2012
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Estimado tiammat:

Yo utilizo el PdfViewer de Synactics.
Synactics ya no lo desarrolla pero puedes encontrarlo buscando en google.
Hace exactamente lo que tú quieres, pero requiere tener instalado Adobe reader en el pc que lo utilices.

Salu2 y ojalá te sirva

Última edición por radenf fecha: 07-03-2012 a las 00:37:49.
Responder Con Cita
  #7  
Antiguo 07-03-2012
manuc manuc is offline
Miembro
 
Registrado: abr 2010
Posts: 165
Poder: 15
manuc Va por buen camino
Ok, pues te dejo esta función que hace justo lo que quieres.

Con esta función puedes generar el thumbnail, a apartir de la ruta hasta el fichero. Hay varias formas de hacer esto, pero esta es la que mejor me ha funcionado.

Código Delphi [-]
function GetThumbnail(lpPathName, lpFileName: PWideChar; Width, Height: Integer): TBitmap;
var
 Desktop, Folder: IShellFolder;
 ItemIDList: PItemIDList;
 Flags, Priority: Cardinal;
 ExtractImage: IExtractImage;
 Res: HRESULT;
 hBitmap: Windows.HBITMAP;
 Buffer: array[0..MAX_PATH-1] of WideChar;
 Size: TSize;
begin
  Result := nil;
  SHGetDesktopFolder(Desktop);
  if LongBool(Desktop.ParseDisplayName(0, nil, lpPathName, PDWORD(0)^, ItemIDList, PDWORD(0)^)) then Exit;
  Desktop.BindToObject(ItemIDList, nil, IShellFolder, Folder);
  CoTaskMemFree(ItemIDList);
  if LongBool(Folder.ParseDisplayName(0, nil, lpFileName, PDWORD(0)^, ItemIDList, PDWORD(0)^)) then Exit;
  Folder.GetUIObjectOf(0, 1, ItemIDList, IExtractImage, nil, ExtractImage);
  CoTaskMemFree(ItemIDList);
  if not Assigned(ExtractImage) then Exit; // TODO
  Size.cx := Width; Size.cy := Height; Priority := 0;
  Flags := $28{IEIFLAG_SCREEN+IEIFLAG_OFFLINE};
  Res := ExtractImage.GetLocation(Buffer, SizeOf(Buffer), Priority, Size, 24{pf32bit}, Flags);
  if (Res = NOERROR) or (Res = E_PENDING{IEIFLAG_ASYNC}) then
  begin
    if not LongBool(ExtractImage.Extract(hBitmap)) then
    begin
     Result := TBitmap.Create;
     Result.Handle := hBitmap;
    end;
  end;
end;

¿cómo utilizarla? Por ejemplo:
Código Delphi [-]
Var
  bmp:TBitmap;
  vFichero:WideString;
  vRuta:WideString;
begin
  vRuta    := ExtractFilePath(path_fichero_pdf);
  vFichero := ExtractFilename(path_fichero_pdf);

  bmp := GetThumbnail(PWideChar(vRuta), PWideChar(vFichero), 122, 200);
  Image1.Picture.Assign(bmp);
  freeandnil(bmp)

Espero que te ayude.
Cualquier cosa, consulta sin problemas.

Un saludo.
Responder Con Cita
  #8  
Antiguo 12-03-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Question

Cita:
Empezado por manuc Ver Mensaje
...Espero que te ayude.
Cualquier cosa, consulta sin problemas...
Gracias manuc, está excelente tu función, y de hecho sí tengo una consulta.

Pretendo que el PDF que voy a mostrar resida en un campo binary de MS SQL server y se muestre en un TPanel justo con una funcionalidad parecida a la que amablemente me proporcionaste. ¿Qué adecuaciones debería hacerle? O tal vez, grabar momentáneamente el archivo en disco para ser mostrado.

Muy agradecido por tu excelente respuesta.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #9  
Antiguo 12-03-2012
manuc manuc is offline
Miembro
 
Registrado: abr 2010
Posts: 165
Poder: 15
manuc Va por buen camino
Hola tiammat,

Me alegro que te ayude.

Si te refieres a modificar la función para que genere el thumbnail directamente del campo en base de datos ... creo que no sería posible o yo no sabría hacerlo.

Si existe un proceso en tu Software para enviar el fichero a base de datos, yo aprovecharía este proceso para generar el thumbnail y guardarlo en un campo en base de datos.

Depende un poco del tamaño de los ficheros PDF. Si cada vez que quieres generar el thumbnail "extraes" el fichero de base de datos, puede ser que generes un tráfico no necesario, dado que es probable que muchos casos el usuario no llegue a utilizar el PDF.

Pero esto ya depende del criterio de cada uno.

Un saludo!
Responder Con Cita
  #10  
Antiguo 15-03-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por manuc Ver Mensaje
Hola tiammat,

Me alegro que te ayude...
Una pregunta, manuc, ¿me hace falta algo, alguna unit o función para utilizar el código éste? Por que me marca errores:

Cita:
[Error][Error] ufrmContenedor.pas(808): Undeclared identifier: 'IExtractImage'
[Error] ufrmContenedor.pas(820): Undeclared identifier: 'CoTaskMemFree'
[Error] ufrmContenedor.pas(828): Incompatible types
[Error] ufrmContenedor.pas(833): Missing operator or semicolon
[Error] ufrmContenedor.pas(837): ')' expected but identifier 'Extract' found
[Error] ufrmContenedor.pas(857): Incompatible types: 'WideString' and 'PWideChar'
[Error] ufrmContenedor.pas(857): Incompatible types: 'WideString' and 'PWideChar'
[Fatal Error] TSDocumentos.dpr(6): Could not compile used unit 'ufrmContenedor.pas'
y como lo tengo implementado es así...

Código Delphi [-]
procedure TfrmContenedor.VisualizaMiniatura(sIDDocumento,sConsPac: string);

  procedure BajaPDF(sNombreArchivo : string);
  var
    qryTemporal : TADOQuery;
    msFlujo : TMemoryStream;
  begin
    qryTemporal := TADOQuery.Create(Self);
    with qryTemporal do
    begin
      Connection := qryDocumentos.Connection;
      SQL.Clear;
      SQL.Add('Select HY11_DocumentoElectronico from HY11_DocumentosPacElec where (E2_CTRL_PAC = '+lblExpediente.Caption+') AND ('+chklstDocumentos.Items.Strings[chklstDocumentos.ItemIndex])+');');
      Open;
      if RecordCount > 0 then
      begin
        msFlujo := TMemoryStream.Create;
        try
          TBlobField(qryTemporal.FieldByName('HY11_DocumentoElectronico')).SaveToStream(msFlujo);
          msFlujo.Position := 0;
          msFlujo.SaveToFile(sNombreArchivo);
        finally
          msFlujo.Free;
          msFlujo.Destroy;
        end;
      end;
      Close;
      Destroy;
    end;
  end;

  function CreaThumbnail(sRuta, sArchivo : PWideChar; Width, Height: Integer) : TBitmap;
  var
    Desktop, Folder: IShellFolder;
    ItemIDList: PItemIDList;
    Flags, Priority: Cardinal;
    ExtractImage: IExtractImage;
    Res: HRESULT;
    hBitmap: Windows.HBITMAP;
    Buffer: array[0..MAX_PATH-1] of WideChar;
    Size: TSize;
  begin
    Result := nil;
    SHGetDesktopFolder(Desktop);
    if LongBool(Desktop.ParseDisplayName(0, nil, sRuta, PDWORD(0)^, ItemIDList, PDWORD(0)^)) then
      Exit;

    Desktop.BindToObject(ItemIDList, nil, IShellFolder, Folder);
    CoTaskMemFree(ItemIDList);

    if LongBool(Folder.ParseDisplayName(0, nil, sArchivo, PDWORD(0)^, ItemIDList, PDWORD(0)^)) then
      Exit;

    Folder.GetUIObjectOf(0, 1, ItemIDList, IExtractImage, nil, ExtractImage);
    CoTaskMemFree(ItemIDList);

    if not Assigned(ExtractImage) then
      Exit;

    Size.cx := Width; Size.cy := Height; Priority := 0;
    Flags := $28{IEIFLAG_SCREEN+IEIFLAG_OFFLINE};
    Res := ExtractImage.GetLocation(Buffer, SizeOf(Buffer), Priority, Size, 24{pf32bit}, Flags);
    
    if (Res = NOERROR) or (Res = E_PENDING{IEIFLAG_ASYNC}) then
    begin
      if not LongBool(ExtractImage.Extract(hBitmap)) then
      begin
       Result := TBitmap.Create;
       Result.Handle := hBitmap;
      end;
    end;

  end;

var
  sFolder, sNombreArchivo : widestring;
  bmImagen : TBitmap;
begin
  sFolder := ObtenerFolder+'\';
  sNombreArchivo := 'TMP'+Trim(lblExpediente.Caption)+Trim(Texto2ID(chklstDocumentos.Items.Strings[chklstDocumentos.ItemIndex]))+'.pdf';
  ShowMessage(Format('La carpeta Mis Documentos para el usuario actual es: "%s"'+CRLF+'y el nombre de archivo temporal será: "%s"',[sFolder,sNombreArchivo]));

  if NOT FileExists(sFolder+sNombreArchivo) then
    BajaPDF(sFolder+sNombreArchivo);

  bmImagen := CreaThumbnail(sFolder,sNombreArchivo,imgMiniatura.Width,imgMiniatura.Height);
  imgMiniatura.Picture.Assign(bmImagen);
  FreeAndNil(bmImagen);
end;


¿Habrá algo que falte? Oriéntame, por favor.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #11  
Antiguo 15-03-2012
manuc manuc is offline
Miembro
 
Registrado: abr 2010
Posts: 165
Poder: 15
manuc Va por buen camino
ohh!!

Perdona, fallo mío.

Me faltaba este trozo de código :-) :

Código Delphi [-]
type
 IExtractImage = interface ['{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}'] // http://msdn2.microsoft.com/en-us/lib...48(VS.85).aspx
  function GetLocation(pszPathBuffer: LPWSTR; cchMax: DWORD; var pdwPriority: DWORD; const prgSize: SIZE; dwRecClrDepth: DWORD; var pdwFlags: DWORD): HRESULT; stdcall;
  function Extract(var phBmpImage: HBITMAP): HRESULT; stdcall;
 end;

Te he preparado una demo, que puedes descargarla aquí: www.applinet.es/descargas/thumbnail_demo.zip

¿Puedes probarlo con añadiendo este código?
Cuéntame como te fue.

Un saludo.

Manuel.
Responder Con Cita
  #12  
Antiguo 15-03-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por manuc Ver Mensaje
ohh!! ...
¡¡¡¡AAAAAHHHHHHHHH!!!! Gracias a tu participación (The Beatles tenía mucha razón con éso de "with a little help from my friends") la aplicación ha quedado espectacular.

Solamente que en la primera corrida (el TImage "virgen", la memoria sin ningún dato) me arroja una excepción, pero quiero creer que es por que aún no tiene nada...

Muchas gracias, Manuel. No sabes cuánto de lo agradezco.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco

Última edición por TiammatMX fecha: 15-03-2012 a las 22:22:09.
Responder Con Cita
  #13  
Antiguo 16-03-2012
manuc manuc is offline
Miembro
 
Registrado: abr 2010
Posts: 165
Poder: 15
manuc Va por buen camino
jaja, me alegro que vaya bien!

Nada, hoy por ti, mañana por mí

Un saludo.
Responder Con Cita
  #14  
Antiguo 16-03-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por manuc Ver Mensaje
jaja, me alegro que vaya bien!...
Viendo ésto, "bien" es poco...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco

Última edición por TiammatMX fecha: 31-08-2012 a las 18:35:08.
Responder Con Cita
  #15  
Antiguo 16-03-2012
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
Hola,

¿Se requiere tener instalado el Adobe Acrobat? Porque probé el ejemplo de manuc y no me muestra nada. Yo uso Foxit en lugar de Adobe.

// Saludos
Responder Con Cita
  #16  
Antiguo 16-03-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por roman Ver Mensaje
Hola...
¡Hola, Román! Primera vez que te apareces en mis preguntas..., un honor.

Cita:
Empezado por roman Ver Mensaje
...¿Se requiere tener instalado el Adobe Acrobat? Porque probé el ejemplo de manuc y no me muestra nada. Yo uso Foxit en lugar de Adobe...
Según entendí el código, se extrae del thumbnail del sistema operativo la imagen creada a partir del archivo (manuc, razón por la cual no era posible mostrar dentro de la aplicación el thumbnail directo desde la base de datos. Otro punto a favor tuyo.) y sinceramente, es la primerísima ocasión que escucho mencionar FoxIt, por lo que carezco de referencia sobre su funcionamiento.

Pero si genera una imagen de vista previa para el sistema operativo, no veo por qué no puedas acceder a ella, a menos que realmente se requiera Adobe Acrobat por alguna razón que no puedo deducir en éste momento del código...

Saludines.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #17  
Antiguo 16-03-2012
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
Yo lo que creo es que el Acrobat Reader implementa la interfaz IExtractImage que es la que se lee con el código de manuc. Y eso significa que debes tener instalado el Acrobat Reader. En otros términos, debes estar preparado para advertir a tus usuarios que sin el Acrobat no podrán ver las miniaturas.

// Saludos
Responder Con Cita
  #18  
Antiguo 16-03-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por roman Ver Mensaje
Yo lo que creo es que el Acrobat Reader implementa la interfaz IExtractImage que es la que se lee con el código de manuc. Y eso significa que debes tener instalado el Acrobat Reader. En otros términos, debes estar preparado para advertir a tus usuarios que sin el Acrobat no podrán ver las miniaturas.

// Saludos
Sí, Román..., estoy más que consciente de ello..., pero como es "software estandarizado" en las oficinas del cliente, no me preocupa mucho...

(por el momento... )
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #19  
Antiguo 21-03-2012
manuc manuc is offline
Miembro
 
Registrado: abr 2010
Posts: 165
Poder: 15
manuc Va por buen camino
tiammat, te quedó bien el formulario, con la vista previa.

Me alegro.

Un saludo.
Responder Con Cita
Respuesta



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
SSH Telnet, algun componente? bastardo10 Varios 1 04-04-2009 14:04:39
algun componente Gantt miguel_e Gráficos 8 02-05-2008 20:51:29
Programa que realice configuraciones en mi pc zvf OOP 3 04-08-2006 00:39:54
Algun componente cesar_picazo Varios 1 25-08-2005 10:53:21
Algun componente para un GIF? andrestsas Varios 3 20-08-2003 20:36:50


La franja horaria es GMT +2. Ahora son las 21:47:18.


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