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
eds2008 @ 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-2006 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/en-us/library/ms669985.aspx
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://dn.codegear.com/article/images/28560/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://dn.codegear.com/article/images/28558/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://dn.codegear.com/article/images/27598/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://dn.codegear.com/article/images/28556/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.firebird.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.programmingpages.com/?r=latiumsoftwarecomenpascal
http://top100borland.com/in.php?who=20
http://www.lawebdelprogramador.com/buscar/votar.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/es/file.php?id=p20
________________________________________________________________________
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: eds2008 @ 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
________________________________________________________________________
|