Boletín Pascal #20
Los ejemplos completos de código fuente de este número están disponibles para descargar.
![]() |
![]() |
Boletín Pascal #20 - 15-ABR-2001 INDICE 1. UNAS PALABRAS DEL EDITOR 2. HELP & MANUAL - ¿Qué es Help & Manual? - Una interfaz conducente y fácil de utilizar - Buenas razones para usar Help & Manual - ¿Qué necesita para trabajar con Help & Manual? · ¿Qué necesita para crear archivos de ayuda de Windows (.HLP)? · ¿Qué necesita para imprimir un manual? · ¿Qué necesita para crear páginas HTML? · ¿Qué necesita para crear la nueva y elegante HTML HELP (.CHM)? - EC Software Help Suite (EHS) · Todo sobre archivos de ayuda en Borland Delphi - ¿Dónde obtener Help & Manual? - Otras cosas de interés 3. DETERMINANDO SI UN FORMULARIO HA SIDO MOVIDO 4. OBTENIENDO EL NUMERO DE SERIE DEL BIOS 5. DE NOVATO A NOVATO ESCRIBIENDO EN LABEL1 EN "TIEMPO REAL" 6. ARTICULOS EN LA RED - Artículos Kylix - Artículos Delphi 7. RECURSOS - En español - En inglés ________________________________________________________________________ 1. UNAS PALABRAS DEL EDITOR En esta edición me complace presentar Help & Manual, una excelente herramienta de autoría que lo ayudará a crear buena documentación fácil y rápidamente. ------------------------------------- A N U N C I O I M P O R T A N T E ------------------------------------- Antes de escribir este artículo me puse en contacto con EC Software -los creadores de Help & Manual- y los convencí de sortear una licencia de su software (incluyendo doce meses de actualizaciones gratuitas), y como cortesía especial, los suscriptores de este boletín que participen en el sorteo obtendrán dos números en vez de uno. Además podrán obtener más números refiriendo otros participantes. Participar es gratis y no se requiere la compra o evaluación del producto. Para participar u obtener mayor información siga este enlace: http://www.latiumsoftware.com/ec-software/index.php?lang=es Saludos, Ernesto De Spirito eds2004 @ latiumsoftware.com ________________________________________________________________________ JfControls Lib. Multilenguaje. Multiapariencia. Skins. Privilegios. Más de 40 componentes integrados y personalizables. Múltiples problemas de programación resueltos. Administración centralizada de recursos. Para Delphi 3-7 y C++ Builder 3-6. http://www.jfactivesoft.com/spindex.htm ________________________________________________________________________ 2. HELP & MANUAL Escribir un buen archivo de ayuda, con secuencias de exploración, tabla de contenidos, índice y todo, e integrarlo completamente a una aplica- ción puede resultar demasiado engorroso... o al menos esa era mi idea hasta que probé Help & Manual. ¿Qué es Help & Manual? ====================== Help & Manual es una herramienta de autoría autosuficiente ("stand- alone") y verdaderamente LQVELQO (WYSIWYG: "What you see is what you get" - "Lo que ve es lo que obtiene") que simplifica la creación de archivos de ayuda de Windows, manuales impresos y documentación en general. Una interfaz conducente y fácil de utilizar =========================================== Help & Manual combina un editor de texto con una vista de árbol del contenido en una ventana. Le permite navegar fácilmente la tabla de contenidos e insertar o editar los temas de ayuda sin complicaciones. Esta interfaz simple e intuitiva ha sido muy copiada pero nunca alcanzando el mismo nivel de funcionalidad. La interfaz LQVELQO evita las referencias crípticas para hipervínculos, macros e imágenes. En vez de reñir con IDs de temas, notas al pié, y confusos comandos, puede concentrarse en cosas más importantes: diseñar su archivo de ayuda. Todo lo que necesita está allí al alcance de sus dedos. Con Help & Manual puede crear fácilmente archivos de ayuda de Windows (para Windows 3.x, Windows 95 / NT y el nuevo formato HTML HELP) así como documentación electrónica (páginas HTML, y texto enriquecido para despachar como manual electrónico). Por último, pero no menos importante, puede imprimir manuales de usuario directamente, incluyendo una tabla de contenidos y un índice de palabras, con diseño de páginas a medida, cabeceras, pies y numeración de páginas. ¡Todos estos tipos de documentación se crean de una sola fuente! Desde un proyecto Help & Manual que guarda los datos de los temas, contenidos, palabras, índice y todos las opciones del proyecto en un solo archivo fuente. Buenas razones para usar Help & Manual ====================================== * Ahorre tiempo Help & Manual le ayuda a crear una mejor documentación más rápido. Escribir el archivo de ayuda para un proyecto de software de rango medio es una cuestión de días, no semanas. * Ahorre dinero La ayuda en línea es una característica clave de su software y no puede ser subvalorada. Una documentación profesional y bien organizada puede reducir drásticamente los costos de soporte. * Concéntrese en la cuestión importante Explique su software a sus usuarios, no la herramienta de ayuda a usted. La intuitiva interfaz de usuario de Help & Manual es transpa- rente, conducente y lo releva de las cuestiones técnicas de los archivos de ayuda. Lo que ve es simplemente lo que obtiene. * Provea un manual impreso Lo que otras herramientas de autoría de ayuda prometen, Help & Manual lo cumple. De su proyecto de ayuda imprime directamente manuales de usuario listos para enviar. Olvídese de la molestia de diferentes formatos para la ayuda en línea y la salida impresa. * Alístese para HTML HELP Microsoft ha introducido el nuevo estándar de ayuda HTML HELP con Windows 98. Help & Manual está preparado y crea archivos HLP así como también HTML HELP (CHM). Cuando desee pasarse, no elija una nueva herramienta, elija una salida diferente en Help & Manual. ¿Qué necesita para trabajar con Help & Manual? ============================================== Help & Manual es una herramienta de autoría autosuficiente y verdade- ramente visual. No necesita una procesador de texto adicional para escribir su documentación. ¿Qué necesita para crear archivos de ayuda de Windows (.HLP)? ------------------------------------------------------------- Necesita un compilador de ayuda - disponible gratuitamente en el sitio de Microsoft. Dependiendo del sistema operativo para el que desee crear la ayuda (Windows 3.x o Windows 95/98/NT) hay diferentes compiladores disponibles. Puede descargarlos de estas ubicaciones: * 16-Bit Winhelp compiler "HCP.EXE" 3.10.505 (~108 Kb) http://www.ec-software.com/pgm/hcp505.zip * 32-Bit Winhelp compiler "HCW.EXE" 4.03 (~1.5Mb) http://www.ec-software.com/pgm/hcw403.exe ¿Qué necesita para imprimir un manual? -------------------------------------- Una impresora. A diferencia de otras herramientas de autoría de ayuda que necesitan un procesador de texto para imprimir manuales, Help & Manual imprime directamente manuales tipo cuadernillo incluyendo página de contenido, numeración de capítulos, cabeceras de temas e índice de palabras. ¿Qué necesita para crear páginas HTML? -------------------------------------- Help & Manual - nada más. Help & Manual crea directamente páginas HTML. ¿Qué necesita para crear la nueva y elegante HTML HELP (.CHM)? -------------------------------------------------------------- Debe tener Microsoft HTML HELP Workshop instalado - disponible gratis en el sitio web de Microsoft. * Microsoft HTML HELP Workshop 1.31 (~4 Mb) http://msdn.microsoft.com/library/tools/htmlhelp/wkshp/htmlhelp.EXE EC Software Help Suite (EHS) ============================ EC Software ha desarrollado un juego de componentes para Delphi que son gratuitos e incluyen código fuente, pero no son GPL, por lo que puede usarlos libremente en sus aplicaciones sin restricciones y sin tener que pagar ningún cargo o regalías. http://www.ec-software.com/comppage.htm Entre esos componentes se encuentra la EC Software Help Suite (EHS), un juego de componentes que le facilitan integrar la ayuda a sus aplica- ciones: * TWhatsThis Automatiza la ayuda "¿Qué es esto?" e implementa una ayuda sensible al contexto totalmente automatizada similar a MS Word. Coloque un componente TWhatsThis en su formulario principal e instantáneamente habilitará menús de ayuda sensible para todos los controles sin una sola línea de código. Más aún, habilita ayuda con el clic derecho para elementos elementos de menú y le da total control sobre la tecla F1. * THelpRouter Establece un puente a HTML HELP sin codificación adicional. Administra la traducción de llamadas de ayuda en ayuda sensible al contexto. Ese componente es el sucesor del antiguo THTMLHelpRouter. Nuevas funciones: soporte para ayuda emergente (popup) para ayuda HTML HELP sensible al contexto y ayuda combinada (HTML HELP más ventanas emergentes Winhelp). * THelpContextMap Almacena los números de ayuda sensible al contexto y sus IDs de temas en forma comprimida con búsqueda ultrarrápida. Lee los números de ayuda contextual directamente de un archivo de proyecto de ayuda (Winhelp y HTML HELP) y está designado para trabajar con TWhatsThis. * TTrainingCard Simplifica la implementación de tarjetas de aprendizaje Winhelp. La ayuda de tarjetas de aprendizaje es una especie de asistente en formato HLP que interactúa con su aplicación. Por favor refiérase a la documentación para más información. Este componente fue antes publicado como un componente independiente. Si lo está usando, por favor desinstale el componente y borre los fuentes antes de instalar EC Software Help Suite. Descargas: * EC Software Help Suite para Delphi 3, 4 y 5 (incluye ejemplos con código fuente completo y ejemplos compilados) http://www.ec-software.com/delphi/ehs.zip (~656 Kb) * mycomp: Un proyecto de ejemplo que muestra como crear un archivo de ayuda para un componente Borland Delphi y cómo integrarlo en el IDE de Delphi. http://www.ec-software.com/delphi/mycomp.zip (~15 Kb) Todo sobre archivos de ayuda en Borland Delphi ---------------------------------------------- Este tutorial completo cubre todos los aspectos referentes a la integración de un archivo de ayuda en una aplicación Delphi. Aprenda cómo... * Mostrar la tabla de contenidos, el índice y la ficha de búsqueda desde su aplicación * Trabajar con comandos de ayuda y macros * Mejorar su aplicación con ayuda sensible al contexto * Implementar la ayuda emergente "¿Qué es esto?" * Lograr ayuda contextual con palabras clave (como el editor de código de Delphi) * Integrar archivos de ayuda de componentes dentro de la ayuda en línea de Delphi * Y mucho más La documentación viene con una aplicación demo que exhibe todos los puntos de interés discutidos en el tutorial. Se incluye el EXE compilado y el código fuente completo. Descarga: * All about help files in Borland Delphi http://www.ec-software.com/delphi/helpd3_5.zip (~542 Kb) También disponible en línea: http://www.ec-software.com/helpdelphi/index.html ¿Dónde obtener Help & Manual? ============================= Puede bajar una copia de evaluación totalmente funcional por 14 días desde esta ubicación: * Help & Manual - Evaluation copy http://www.ec-software.com/pgm/hmsetup.exe (~5.2 Mb) Otras cosas de interés ====================== * T.N.T Screen Capture Tool - Se trata de una utilidad de captura de pantallas que dice crear "capturas de pantalla que se ven mejor que la pantalla original." ¿Puede ser eso posible? Bien, pues hay que ver para creer, así que véalo por usted mismo: http://www.ec-software.com/tnt/index.html Descargue una copia de evaluación totalmente funcional de T.N.T: http://www.ec-software.com/pgm/tntsetup.exe (~1.6 Mb) * HelpPos - Una pequeña herramienta freeware que le permite guardar la posición de la ventana de un archivo de ayuda de modo durable. Dicha posición se define cuando el archivo de ayuda se compila. Si no tiene los fuentes de la ayuda (usualmente es el caso si no la ha escrito) no tiene posibilidad de cambiar la posición de la ventana... pero con HelpPos sí puede! http://www.ec-software.com/pgm/helppos.zip (~140 Kb) Para más recursos, precios y otra información, visite el sitio web de EC Software: http://www.ec-software.com ------------------------------------ Partes de este artículo son Copyright © 2000 EC Software ________________________________________________________________________ 3. DETERMINANDO SI UN FORMULARIO HA SIDO MOVIDO Podemos saber si un formulario ha sido cambiado de tamaño con el evento Resize (propiedad OnResize), pero ¿cómo sabemos si un formulario ha sido movido? Simplemente capturando el mensaje WM_MOVE de Windows: interface ... type TForm1 = class(TForm) ... private { Private declarations } procedure FormMove(var Msg: TWMMove); message WM_MOVE; ... end; ... implementation ... procedure TForm1.FormMove(var Msg: TWMMove); begin inherited; Label1.Caption := Format('(%d,%d)', [Left, Top]); end; ... Llamamos "inherited" para permitir a los ancestros de TForm procesar el mensaje. Esto actualizará las propiedades Left y Top. En el ejemplo de arriba simplemente las mostramos, pero podemos utilizar esta especie de evento por ejemplo para garantizar que el formulario esté siempre ubicado dentro de los límites del área de trabajo de la pantalla (la porción de la pantalla no usada por la barra de tareas del sistema o por barras de herramientas de escritorio de aplicaciones). procedure TForm1.FormMove(var Msg: TWMMove); var WorkArea: TRect; begin inherited; if SystemParametersInfo(SPI_GETWORKAREA, 0, @WorkArea, 0) then begin if Left < WorkArea.Left then Left := WorkArea.Left else if Left + Width > WorkArea.Right then Left := WorkArea.Right - Width; if Top < WorkArea.Top then Top := WorkArea.Top else if Top + Height > WorkArea.Bottom then Top := WorkArea.Bottom - Height; end; end; ________________________________________________________________________ 4. OBTENIENDO EL NUMERO DE SERIE DEL BIOS Para un esquema simple de protección de copia necesitamos saber si la máquina en que está ejecutándose nuestra aplicación es la misma donde fue instalada. Podemos guardar los datos de la máquina en el Registro de Windows cuando la aplicación sea instalada o ejecutada por primera vez, y luego cada vez que la aplicación se ejecute comparamos los datos de la máquina con el que hemos guardado para ver si son iguales o no. Pero, ¿qué datos de la máquina deberíamos usar y cómo los obtenemos? En una edición pasada mostramos cómo obtener el número de serie del volumen de una unidad de disco lógica, pero normalmente esto no es satisfaciente para un desarrollador de software dado que este número puede ser cambiado. Una solución mejor podría ser utilizar el número de serie del BIOS. BIOS significa Sistema Básico de Entrada/Salida (Basic Input/Output System), y básicamente es un chip en la placa madre de la PC que contiene el programa de inicialización de la PC (todo hasta la carga del sector de arranque del disco u otro dispositivo de arranque) y algunas rutinas básicas de acceso a dispositivos. Desafortunadamente, los distintos fabricantes de BIOS han puesto los números de serie y otra información del BIOS en diferentes posiciones de memoria, así que el código que uno generalmente puede encontrar en la red para acceder a esta información puede que funcione con algunas máquinas pero no con otras. Sin embargo, la mayoría (si no todos) los fabricantes de BIOS han puesto la informa- ción en alguna parte en los último 8 Kb del primer Mb de memoria, es decir en el espacio de direcciones de $000FE000 a $000FFFFF. Si asumimos que "s" es una variable string, el código siguiente guardaría esos 8 Kb en ella: SetString(s, PChar(Ptr($FE000)), $2000); // $2000 = 8196 Podemos tomar los últimos 64 Kb para estar seguros que no nos perdemos de nada: SetString(s, PChar(Ptr($F0000)), $10000); // $10000 = 65536 El problema es que no se recomienda guardar "grandes volúmenes" de datos en el Registro de Windows. Sería mejor si pudiéramos restringirnos a 256 bytes o menos usando alguna técnica de hashing/checksum. Por ejemplo podemos usar la unidad SHA1 y opcionalmente la unidad Base64 introdu- cidas en la edición #17 de este boletín: http://www.latiumsoftware.com/es/pascal/0017.php El código se podría parecer al siguiente: uses SHA1, Base64; function GetHashedBiosInfo: string; var SHA1Context: TSHA1Context; SHA1Digest: TSHA1Digest; begin // Obtener los datos del BIOS SetString(Result, PChar(Ptr($F0000)), $10000); // Obtener el hash SHA1Init(SHA1Context); SHA1Update(SHA1Context, PChar(Result), Length(Result)); SHA1Final(SHA1Context, SHA1Digest); SetString(Result, PChar(@SHA1Digest), sizeof(SHA1Digest)); // Devolver el hash codificado en caracteres imprimibles Result := B64Encode(Result); end; De esta forma obtenemos una cadena corta que podemos guardar en el Registro de Windows sin problemas. La puede considerar como una especie de "número de serie del BIOS". MOSTRANDO LA INFORMACION DEL BIOS --------------------------------- Si quisiéramos mostrar la información del BIOS debemos recorrer los bytes para extraer todas las cadenas terminadas en nulo con caracteres ASCII imprimibles de por lo menos 8 caracteres de longitud, como se hace en la siguiente función: function GetBiosInfoAsText: string; var p, q: pchar; begin q := nil; p := PChar(Ptr($FE000)); repeat if q <> nil then begin if not (p^ in [#10, #13, #32..#126, #169, #184]) then begin if (p^ = #0) and (p - q >= 8) then begin Result := Result + TrimRight(String(q)) + #13#10; end; q := nil; end; end else if p^ in [#33..#126, #169, #184] then q := p; inc(p); until p > PChar(Ptr($FFFFF)); Result := TrimRight(Result); end; Luego podemos utilizar el valor de retorno para por ejemplo mostrarlo en un memo: procedure TForm1.FormCreate(Sender: TObject); begin Memo1.Lines.Text := GetBiosInfoAsText; end; ________________________________________________________________________ 5. DE NOVATO A NOVATO ESCRIBIENDO EN LABEL1 EN "TIEMPO REAL" por Anders Dahl ====================================== Ha terminado su proyecto y todo está funcionando como usted quiere, pero... la página de ayuda y el cuadro "acerca de" podrían ser mucho más agradables, casi mejores que si un profesional lo hubiera escrito :) ¿Cómo? Le mostraré: Coloque un temporizador (Timer) y una etiqueta en su página de ayuda o cuadro "acerca de": procedure TForm1.Timer1Timer(sender:TObject); const LabelString = 'Esta es una etiqueta'; begin Label1.caption := copy(LabelString, 1, Timer1.Tag + 4); Timer1.Tag := Timer1.Tag + 3; if Timer1.Tag = Length(LabelString) then Timer1.Enabled := False; Application.ProcessMessages; end; Puede escribir sus mensajes en LabelString como se muestra arriba, y si desea hacerlo en múltiples líneas use #10#13. Escribiré un ejemplo: LabelString = ('This is how to' +#10#13+ 'write in realtime!!,' +#10#13+ 'with a Label......'); Puede cambiar la velocidad en Timer1.Interval y hasta en "TagNumbers". El número 3 arriba representa cuántas letras se mostrarán en tiempo de ejecución. Creo que la mejor solución es 1, y el 4 es cuán rápido va, la mejor solución es 9, pero puede descubrirlo por usted mismo. Establezca Timer1.Interval en 1. Hay un famoso programador Delphi italiano llamado Marco Cantù que escribió los libros "Mastering Delphi 4" y "Mastering Delphi 5". En su sitio web puede descargar los ejemplos de código de los libros: http://www.marcocantu.com/md4/md4dload.htm http://www.marcocantu.com/md5/md5dload.htm Contiene muchos ejemplos de programación en Delphi, desde básico a Internet. Le recomiendo que los descargue, y si tiene preguntas sobre ellos puede unirse a uno de los grupos de noticias de Marco Cantù: http://www.marcocantu.com/home/newsgroup.htm Diviértase! :) ________________________________________________________________________ 6. ARTÍCULOS EN LA RED Artículos Kylix =============== * RADical Performance Linux Application Development - Evaluator's Guide January 2001 - by Borland Staff An excellent material to help you evaluate Kylix and see its features http://www.borland.com/kylix/papers/eval_guide.pdf (~1.22 Mb) * Creating Kylix Database Applications - by Bill Todd Examines the architecture of dbExpress and the provide/resolve mechanism. Subsequent sections describe the components that implement the Kylix data access strategy, and lead you through the steps of building a simple database application, demonstrating the power and productivity they provide. http://www.borland.com/kylix/papers/kylix_dbapps.pdf (~383 Kb) * A Quick Tour of Kylix - by Kylix Publications Team Explains how to start Kylix and gives you a quick tour of the main parts and tools of the desktop. It also gives you an overview of software development with Kylix. This includes creating a project, working with forms, writing code, and compiling, debugging, deploying, and preparing programs for international use. http://www.borland.com/kylix/papers/kylix_tour.pdf (~689 Kb) * Apache Development with Kylix Server Developer - by Colin A. Ridgewell Shows the ease with which Apache web server, web and Internet applications can be developed using Borland Kylix. This paper acts as an introduction to the capabilities of Kylix and Apache. http://www.borland.com/kylix/papers/apache_development.pdf (~674 Kb) * Using the Open Tools API in Kylix - by Ray Lischner How to extend and customize the Kylix IDE. http://community.borland.com/article/0,1410,27205,00.html * Borland's Kylix: turbocharging Linux development - by Scott Courtney A review of Kylix, with screen shots and an example of the creation of a simple application http://www.linuxplanet.com/linuxplanet/reviews/3207/1/ Artículos Delphi ================ * Internet Programming with Delphi - by Marco Cantù http://community.borland.com/article/0,1410,27143,00.html * Creating WAP Applications with Borland Delphi - by Jani Järvinen For Dynamic Data Driven Applications Beyond the Web Browser (~772 Kb) http://community.borland.com/article/images/27140/creating_wap.pdf * Using XML and XSLT with Delphi 5 and WebBroker - by Vincent Parrett This article is aimed at Delphi developers who wish to make use of XML/XSLT in their WebBroker applications. I'll present some WebBroker extensions/components which make it easier to create XSLT based WebBroker applications. http://community.borland.com/article/0,1410,27106,00.html * Delphi Database Programming Course - by Zarko Gajic Free online database programming course for beginner Delphi developers. Focus on ADO techniques. Chapter 5 ("Behind data in datasets") has been added recently. http://delphi.about.com/compute/delphi/library/weekly/aa010101a.htm * Spell Checking with MS Word - by Zarko Gajic Add spell checking and thesaurus capabilities to your Delphi application using automation with the MS Word Object Library. http://delphi.about.com/compute/delphi/library/weekly/aa032701a.htm ________________________________________________________________________ 7. RECURSOS EN ESPAÑOL ========== * InterBase.com.mx - Tu sitio de IB en español Información en español sobre el sistema manejador de bases de datos InterBase, con instrucciones, enlaces y recursos que permitan aprovechar al máximo esta base de datos. http://www.interbase.com.mx * Cursillo de Pascal Cursillo rápido para aprender las bases del lenguaje Pascal (~162K) http://members.nbci.com/_XMCM/millennium/download/delphi/cweb.zip EN INGLES ========= * Delphi Frequently Asked Questions http://community.borland.com/downloads/ti-faq/delphi-faq.zip (~909K) * Delphi Technical Information Docs http://community.borland.com/downloads/ti-faq/delphi-ti.zip (~886K) ________________________________________________________________________ ¡TÚ PUEDES AYUDARNOS! Necesitamos tu ayuda para que este boletín pueda continuar y crecer. Una forma en que puedes ayudarnos es enviando este enlace a tus amigos: http://www.latiumsoftware.com/es/pascal/index.php Otra forma es votándonos en alguno de estos rankings para darle más visibilidad a nuestro sitio web y aumentar así el número de suscrip- ciones al boletín, que esperamos en el futuro se traduzca también en un mayor número de colaboraciones de artículos, trucos, etc.: http://www.sandbrooksoftware.com/cgi-bin/TopSite2/rankem.cgi?id=latium http://news.optimax.com/topdelphi/links.exe/click?id=70C517ECAE6E http://www.programmingpages.com/?r=latiumsoftwarecomenpascal http://www.top219.org/cgi-bin/vote.cgi?delphi&83 http://top100borland.com/in.php?who=20 http://top200.jazarsoft.com/delphi/rank.php3?id=latium http://213.65.224.200/cgi-bin/toplist.cgi/hits?Id=80 http://www.programacion.net/votar-enlace.php?id=474 http://www.lawebdelprogramador.com/buscar/enlace.php?id=615 Por favor vota. Son sólo unos segundos para ti que REALMENTE pueden hacer la diferencia. Necesitamos tu ayuda para poder continuar. ________________________________________________________________________ Si no has recibido el archivo con el código fuente completo de los ejemplos que se presentan en este boletín, puedes descargarlo de la siguiente dirección: http://www.latiumsoftware.com/descarga/p0020.zip ________________________________________________________________________ Página principal: http://www.latiumsoftware.com/es/pascal/index.php Página del grupo: http://espanol.groups.yahoo.com/group/boletin-pascal/ Para suscribirse / apuntarse: boletin-pascal-subscribe@gruposyahoo.com Para cancelar / removerse: boletin-pascal-unsubscribe@gruposyahoo.com Para reportar problemas con la suscripción: eds2004 @ latiumsoftware.com ________________________________________________________________________ Este boletín se provee "TAL Y COMO ESTA", sin garantía de ninguna clase. Su uso implica la aceptación de nuestros términos de licencia y de la ausencia de garantía que puedes leer en nuestro sitio web. Allí también encontrarás una nota sobre marcas registradas. Te animamos a que redis- tribuyas este boletín, siempre y cuando lo hagas en forma completa (incluyendo la información de copyright), sin modificaciones y de manera gratuita. Los artículos son copyright de sus respectivos autores y se reproducen aquí con el permiso de los mismos. ________________________________________________________________________ Latium Software http://www.latiumsoftware.com/es/index.php Copyright (c) 2001 por Ernesto De Spirito. Todos los derechos reservados ________________________________________________________________________ |
Los ejemplos completos de código fuente de este número están disponibles para descargar.
![]() |
¿Errores? ¿Omisiones? ¿Comentarios? Por favor contáctanos!






