Boletín Pascal #21
Los ejemplos completos de código fuente de este número están disponibles para descargar.
![]() |
![]() |
Boletín Pascal #21 - 03-MAY-2001 INDICE 1. UNAS PALABRAS DEL EDITOR 2. PORTANDO APLICACIONES DELPHI A KYLIX - Por Peter Pohmann - Nombres de archivo - Nombres de archivo, otra vez - Unidades - Formularios - Funciones API de Windows - Componentes VCL - Componentes de bases de datos 3. CONVIRTIENDO DE TFILETIME A TDATETIME - Por Ernesto De Spirito 4. VIEJOS TIEMPOS (I) - Opinión - Por H.R Quiroga - Un repaso de los viejos tiempos - Un momento histórico crucial. Mediados de los 80. - Lenguaje de juguete 5. EXPRESIONES REGULARES EN DELPHI - Por Ernesto De Spirito - ¿Qué son expresiones regulares? - ¿Para qué se usan? - Biblioteca freeware TRegExpr - Ejemplos 6. JOB SATISFACTION OF NETWORKING AND IT PROFESSIONALS: A relationship with dispositions and the mediating influence of training. 7. DELPHI EN LA RED - Artículos Delphi - Tecnología - Noticias Borland 8. SORTEO DE HELP & MANUAL ________________________________________________________________________ 1. UNAS PALABRAS DEL EDITOR ¿Está interesado en una herramienta de autoría de ayuda autosuficiente y verdaderamente WYSIWYG que lo asista en crear muy buena documentación (archivos HLP, HTML y CHM, y manuales impresos) rápida y fácilmente? ¿Y qué le parecería tenerla GRATIS? El Sorteo de Help & Manual sigue en marcha y se puede ganar una LICENCIA de Help & Manual, incluyendo un año de actualizaciones GRATUITAS. ¡Un valor de $199! Las registraciones cerrarán el Lunes 14 de Mayo de 2001 a las 20:00 hrs. GMT, así que apúrese e INGRESE HOY! El premio está allí, esperando que alguien se lo lleve... ¡que puedes ser tú! Así que, ¿qué esperas? ¡Ayuda tu suerte! ¡Tú puedes ser el ganador! http://www.latiumsoftware.com/ec-software/index.php?lang=es ¿No tienes acceso a la WWW? Puedes usar el servicio www4mail o puedes participar por email completando el formulario al final de este boletín. Saludos, Ernesto De Spirito eds2004 @ latiumsoftware.com 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. PORTANDO APLICACIONES DELPHI A KYLIX - Por Peter Pohmann Portar aplicaciones GUI de Windows a Linux nunca ha sido más fácil. Dado que la biblioteca CLX de Kylix es tan similar a la VCL, en algunos casos la migración se hace en unos pocos minutos. La mayoría de los programas sin embargo necesitarán de un cierto trabajo substancial. Este artículo cubre los puntos más comunes y muestra cómo resolverlos: Nombres de archivo ------------------ El primer problema con el que se encontrará son los nombres de archivo de Linux. Hace la diferencia si es MiUnidad, miunidad o Miunidad y con Kylix uno tiene que escribir el nombre de la unidad correctamente en directiva "uses". Lo más probable es que también tenga que renombrar sus archivos fuente si no quiere vivir por siempre con nombres de archivo escritos descuidadamente. Para el servidor Netware 4.11 que estamos utilizando en la oficina, esto es un problema. No permitirá nombrar un archivo Prueba sino que siempre lo renombrará internamente a PRUEBA. Por eso tuvimos que escribir una pequeña utilidad que corre en Linux y que renombra los archivos vía el servidor Samba. Nombres de archivo, otra vez ---------------------------- Si su programa trabaja con archivos (¿y cuál no?), tiene que revisar todas las barras invertidas ("\") usadas como delimitadores de caminos, mayúsculas y minúsculas en nombres de archivos y extensiones, y especificaciones de unidad (por ejemplo "C:\"). Hay funciones de SysUtils como ExtractFileName que trabajan correctamente en ambas plataformas pero no todos las emplean. Otras ayudas estarán disponibles con Delphi 6 tales como IsPathDelimiter e IncludeTrailingPathDelimiter. Además, comparar dos nombres de archivo usando CompareText puede que no sea tan buena idea en sistemas Linux. Unidades -------- Parte de las unidades CLX tiene nombres que son precedidos por una Q. Q viene por Qt, que es la biblioteca de Troll Tech para los controles visuales usados para VisualCLX. Los formularios CLX se encuentran en QForms, Controls ahora es QControls y así sucesivamente. Usamos el "define" LINUX para compilar contra las bibliotecas correctas como esto: uses {$ifdef LINUX} QForms, QControls, QStdCtrls, {$else} Forms, Controls, StdCtrls, {$endif} System, SysUtils; Es importante tener por lo menos una unidad común después del endif. Si pone un punto y como después de StdCtrls y QStdCtrls el IDE a veces siente debe añadir otras unidades dentro del ifdef. Formularios ----------- Sí, usted puede reutilizar los formularios de Delphi con Kylix. No, no es una buena idea hacerlo. Si guarda su formulario con Delphi 5 en modo binario (apagando "Text DFM" en el menú local del diseñador de formularios) podrá abrirlo con Kylix. Pero probablemente no le guste la disposición de sus controles bajo Kylix porque se parece trabajar de manera diferente. Esto significa que tendrá que cambiarla. Además, los controles CLX están faltos de algunas de las propiedades que tienen los controles VCL, hay diferentes valores de enumeración, diferentes nombres de fuentes, propiedades adicionales. No son tantas las diferencias pero las pocas son suficientes para hacer que quiera guardar su formulario de Kylix en un archivo distinto. Nuestro procedimiento preferido es así: - Guardar el formulario en un archivo binario bajo Delphi 5. - Copiar los *.dfm a *.xfm para uso en Kylix. - Cambiar {$R *.dfm} a {$ifdef LINUX}{$R *.xfm}{$else}{$R *.dfm}{$endif} en la unidad de código fuente del formulario. - Abrir la unidad y el formulario con Kylix y ajustar la disposición para Linux. De esta forma usted puede reusar sus formularios existentes pero tiene que mantener dos copias. En mi opinión es lo mejor que puede hacer por ahora. Funciones API de Windows ------------------------ Hay una sola cosa que decirle a las Funciones API de Windows: Adiós. Aún si el IDE Kylix usa Wine para correr en Linux, las aplicaciones Kylix no lo hacen. Esto es lo que tendrá que hacer: - Reemplace las funciones API de Windows por funciones Delphi o compo- nentes donde sea posible. Puede hacer esto para la mayoría de las rutinas de manejo de archivo por ejemplo. - Escribe una función "envoltorio" para cambiarse entre la versión Windows y Linux usando la definición LINUX. Esto es lo que hemos hecho por ejemplo para Sleep y LockFile. Las funciones del sistema de Linux las encontrará en la unidad Libc. Componentes VCL --------------- La buena noticia es que hay una versión CLX de la mayoría de los controles y componentes comúnmente usados como TEdit, TStringGrid, TListView, TTimer. Pero casi todos no son todos y no encontrará por ejemplo un reemplazo uno a uno para el control TRichEdit porque está basado en una DLL distribuida con Windows. Hay dos componentes nuevos llamados TTextViewer y TTextBrowser que puede usar en su lugar, pero son bastante limitados en términos de funcionalidad. No hay mucho que usted pueda hacer si un control que necesita no está disponible. O tendrá que arreglárselas sin él, o esperar a que un desarrollador lo ofrezca, o desarrollarlo usted mismo. Componentes de bases de datos ----------------------------- Puesto que Borland ha abandonado la BDE, extrañará los componentes TTable, TQuery, TDatabase y TSession es su paleta Kylix. Si su aplica- ción los usa, tiene tres alternativas para pensar: - Pasarse a MyBase. MyBase es una especia de base de datos surrogada basada en archivos XML que pueden ser accedidos a través de un componente TClientDataSet. Dado que MyBase no tiene archivos índices y no soporta acceso multi-usuario, es una solución sólo para proyectos de un sólo usuario con tablas de base de datos muy pequeñas. - Pasarse a dbExpress y usar un servidor de bases de datos. dbExpress es la nueva y liviana capa de acceso a bases de datos de Borland. Kylix viene con controladores dbExpress para MySQL e Interbase (en la edición Desktop Developer) y para Oracle and DB2 (en la edición Server Developer). Inconveniente: La arquitectura de su aplicación se hace mucho más compleja, sus clientes necesitarán tener un servidor de bases de datos instalado y mantenido, grandes partes de su código fuente tendrán que ser modificadas. - Pasarse a un reemplazo BDE-compatible. Hay varios reemplazos para la BDE disponibles bajo Windows y ya hay uno para ambas plataformas al momento es escribir este artículo. Con los Componentes TurboDB tiene que convertir los archivos de sus tablas BDE pero puede conservar la arquitectura de su aplicación, sólo se requieren cambios mínimo en su código fuente y sus clientes ni se enterarán que su aplicación está usando una base de datos. http://www.turbodb.de Aún quedan unos temas más como ayuda en línea y sentencias en ensam- blador. Pero creo que los listados arriba son los problemas más comunes así que este artículo le da una vista previa de lo que le espera cuando comience a portar sus aplicaciones Delphi a Kylix. ------------------------------------ Copyright (c) 2001 Peter Pohmann <pohmann@dataweb.de> ¿Está portando aplicaciones Delphi basadas en la BDE a Kylix? TurboDB es un motor de bases de datos multiusuario especialmente diseñado para desarrollo multiplataforma en Delphi y Kylix. Su uso es muy similar a los componentes BDE por lo que TurboDB es fácil de aprender. La versión gratuita de evaluación está disponible en: http://www.turbodb.de ________________________________________________________________________ 3. CONVIRTIENDO DE TFILETIME A TDATETIME - Por Ernesto De Spirito El campo FindData de TSearchRec, el registro usado por FindFirst y FindNext para obtener las entradas de un directorio, es otro registro que entre otra información (como por ejemplo el nombre corto y el nombre largo del archivo) tiene tres campos que representan las horas de creación, último acceso y última escritura (ftCreationTime, ftLastAccessTime, ftLastWriteTime respectivamente). Estos tres campos están declarados como TFileTime, un tipo que representa fechas de 64 bits en Tiempo Universal Coordinado (UTC). Si desea convertir esos valores a TDateTime, puede usar la siguiente función: uses Windows; function FileTime2DateTime(FileTime: TFileTime): TDateTime; var LocalFileTime: TFileTime; SystemTime: TSystemTime; begin FileTimeToLocalFileTime(FileTime, LocalFileTime); FileTimeToSystemTime(LocalFileTime, SystemTime); Result := SystemTimeToDateTime(SystemTime); end; Llamada de ejemplo: procedure TForm1.Button1Click(Sender: TObject); var sr: TSearchRec; begin if FindFirst(Application.ExeName, faAnyFile, sr) = 0 then begin ShowMessage(DateTimeToStr( FileTime2DateTime(sr.FindData.ftLastWriteTime))); FindClose(sr); end; end; ________________________________________________________________________ 4. VIEJOS TIEMPOS (I) - Opinión - Por H.R Quiroga Un repaso de los viejos tiempos ------------------------------- Se dice que toda revolución tecnológica requiere 30 años para conver- tirse a una forma definitiva y cotidiana de la vida humana. Esto ha sido así con la televisión y el teléfono. La computación en algunos de sus aspectos (como revolución) parece estar llegando a sus treinta años por lo cual podemos asumir que ya está tomando su forma definitiva. Desde finales de los ochenta, en computación de escritorio, no se ha presentado un producto verdaderamente nuevo (original) que sea impor- tante fuera de su entorno operativo, el último fue Access, Microsoft se lo compró a una empresa Francesa según recuerdo, y si somos rigurosos es una evolución algo más visual de los sistemas de base de datos (xBase, por ejemplo). Tenemos unos 10 años viendo como los programas existentes sólo cambian de versión. Incluso nuevos fabricantes sólo hacen nuevas versiones de programas ya existentes. Piense en esto un poco, Star Office y MS-Office vienen de WordStar, Visicalc (o Multiplan) en los 80. Los lenguajes de programación no son nuevos, solo evoluciones de Basic, Pascal y C. De resto los visualizadores de Internet son tan nuevos como el www (lo cual no es realmente muy nuevo). Revisando mi computadora no encontré software realmente original que no fuese dependiente del sistema operativo (FindOrphan, StartupCop por ejemplo). Lo anterior viene a colación porque creo que Delphi está llegando a su forma definitiva como evolución de Pascal. No está de más mirar un poco al pasado. No pretendo recontar lo que muchos ya sabemos, sólo quiero hacer unos comentarios curiosos de la historia. En adelante refiero a Delphi como evolución de Pascal. Un momento histórico crucial. Mediados de los 80. ------------------------------------------------- Lotus 1-2-3, CP/M, PC-AT y el lenguaje más común (al nivel de) micros: Basic. En algún lugar del mundo, un noche fría, un miserable programador arrodillado terminó un rezo así "... y líbranos de Basic, amén." Entonces apareció Turbo Pascal. Eso es el tipo de cosas que me hace dudar de la inexistencia de Dios. Delphi surge como evolución de Pascal y Pascal es prototipo (como Ada, APL y otros) de lo que ha sido llamado lenguaje B&D ("bondage-and- discipline"). La imagen de una mujer inglesa vestida de negro con un látigo, cadenas dispuesta a no dar posibilidad de salirse de ciertas normativas ('right programming') es de muy claro entender para los que pasamos por "Basic" en los ochenta. Turbo Pascal es responsable del primer intento valido por quitarnos dos etiquetas respecto a Pascal: Lenguaje B&D y la de "toy language". Lenguaje de juguete ------------------- Como lenguajes de juguete se han entendido a los lenguajes de carácter instruccional diseñados como prueba de alguna teoría de ciencia de la computación. Pascal, como Niklaus Wirth lo definió en 1967, era así. De hecho por mucho tiempo muchas personas han pensado que llevar a Pascal a un lenguaje para programación de propósito general es una mala idea. Entre ellos Brian Kernighan. En el año 1981 Brian Kernighan escribió un "paper" titulado "Why Pascal is Not My Favorite Programming Language". Según entiendo pueden buscarlo en "Comparing and Assessing Programming Languages" de Alan Feuer y Narain Gehani (Prentice-Hall, 1984). Allí manifiesta algunas cosas interesantes. Tuvo razón en al menos una: las extensiones del lenguaje acaban con la portabilidad. El hecho es que, volviendo a la actualidad, de no ser por la limitada portabilidad hacía Kylix, Delphi no es portable (aún). De todas formas uno de los problemas que él veía eran los de los tipos "string" (una extensión que no es parte de Pascal estándar), variables estáticas y globales y en fin males que la OOP ha tratado de eliminar con bastante éxito. Yo nunca programé en Pascal estándar, mi primer Pascal fue Turbo Pascal 2.xx en CP/M que quizás era de juguete como consideró Kernighan, pero daba para todo lo que era capaz CP/M (¿Será que CP/M era un juguete?). Hoy en día muchos programadores de Delphi provienen de C y Basic en sus versiones más evolucionadas (Visual C++, Visual Basic) y no creo que piensen en Delphi como algo inadecuado para la programación de propósito general. Claro Delphi es más que un superconjunto de Pascal. ------------------------------------ Copyright (c) 2001 H.R Quiroga En el próximo número publicaremos la segunda parte de este artículo. ________________________________________________________________________ 5. EXPRESIONES REGULARES EN DELPHI - Por Ernesto De Spirito ¿Qué son expresiones regulares? ------------------------------- Expresiones regulares son una forma de buscar y reemplazar patrones de texto. En cierta forma estos patrones son como usar los caracteres comodines '?' y '*' al buscar archivos, pero las expresiones regulares son inmensamente más poderosas que eso. En el patrón uno puede especificar si la cadena que se busca debe estar al principio o al final de una línea, qué caracteres se permiten, cuántas veces se pueden repetir y muchas cosas más. ¿Para qué se usan? ------------------ Básicamente se usan para tres propósitos: 1) Poder de búsqueda (y reemplazo) de texto Puede usar expresiones regulares por ejemplo para buscar un registro específico en una base de datos de una manera mucho más poderosa que usando el operador SQL LIKE. 2) Validación de datos Con las expresiones regulares puede validar la entrada del usuario para verificar si sigue un formato dado que debido a su complejidad u variabilidad no se puede chequear con máscaras. Por ejemplo, puede chequear si una cadena comienza opcionalmente con un signo más o menos, luego una secuencia de no más de siete dígitos y opcionalmente una coma seguida de hasta dos dígitos. 3) Extracción de datos No sólo que puede chequear si una cadena sigue un cierto patrón, sino que puede extraer arbitrariamente partes del texto. Por ejemplo, para un número de teléfono como '+1 (123) 555-9999' usted puede extraer el código de país ('1'), código de área ('123') y el número local ('555-9999'). Biblioteca freeware TRegExpr ---------------------------- ¿Quiere implementar expresiones regulares en sus aplicaciones Delphi? Una buena forma de hacerlo es usando la biblioteca TRegExpr, que es freeware y viene con código fuente completo y está documentada en varios lenguajes. Esta biblioteca ha sido desarrollada por Andrey V. Sorokin portando el código en C de las conocidas rutinas V8 de Henry Spencer (un subconjunto de las expresiones regulares de Perl) a Object Pascal. La última versión de la biblioteca es 0.942 y la puede obtener desde "AnSo @ Web" (el sitio web de Sorokin) en: * AnSo @ Web http://anso.da.ru/ http://anso.virtualave.net/ * TRegExpr library http://anso.virtualave.net/regexpr.zip (~284 Kb) * Archivos de ayuda: (42-55 Kb) - Ruso.....: http://anso.virtualave.net/RegExpRu.zip - Inglés...: http://anso.virtualave.net/RegExpE.zip - Búlgaro..: http://anso.virtualave.net/regexpbg.zip - Alemán...: http://anso.virtualave.net/RegExpG.zip - Francés..: http://anso.virtualave.net/RegExpF.zip - Español..: http://anso.virtualave.net/RegExpS.zip Ejemplos -------- La sintaxis de las expresiones regulares V8 está bien documentada en el archivo de ayuda y también puede encontrar muchas fuentes de documen- tación en la Internet, así que no vamos a adentrarnos en eso, pero sí vamos a mostrar un par de ejemplos del uso de la biblioteca: uses RegExpr; procedure TForm1.Button1Click(Sender: TObject); // Valida la dirección de email en Edit1 begin // Aviso: este código no debe ser usado para realizar validación // real de email. Debe chequear la especificación RFC. Esto es // sólo una simplificación para mostrar el uso de ExecRegExpr. if not ExecRegExpr('[\w\d\-\.]+@[\w\d\-]+(\.[\w\d\-]+)+', Edit1.Text) then begin ShowMessage('La dirección de email no es válida'); Edit1.SetFocus; end else ShowMessage('La dirección de email es válida'); end; procedure TForm1.Button2Click(Sender: TObject); // Extrae direcciones de email contenidas en Memo1 var RegExpr: TRegExpr; begin // Aviso: este código no extraerá todas las direcciones de email // válidas. Esto es sólo una simplificación para mostrar el uso de // Exec, ExecNext y Match. ListBox1.Clear; RegExpr := nil; try RegExpr := TRegExpr.Create; if RegExpr <> nil then begin RegExpr.Expression := '[^\w\d\-\.]([\w\d\-\.]+@[\w\d\-]+' + '(\.[\w\d\-]+)+)[^\w\d\-\.]'; if RegExpr.Exec(Memo1.Text) then repeat ListBox1.Items.Add(RegExpr.Match[1]); until not RegExpr.ExecNext; end; except end; RegExpr.Free; end; ________________________________________________________________________ 6. JOB SATISFACTION OF NETWORKING AND IT PROFESSIONALS: A relationship with dispositions and the mediating influence of training. (Contenido sin traducir) I am a continuing Psychology student at the University of Hull researching the job satisfaction of IT and Networking professionals. As you may well be aware, the IT industry is booming and demand for IT professionals is extremely high. Most organisations naturally wish to improve or maintain job satisfaction, at least for retention reasons if not for other reasons. While traditional job satisfaction theories highlight potential antecedents of job satisfaction, few researchers have applied theories or elements of theories to the domain of IT, an important element of our world economy. I therefore feel that further research is needed in this area. By completing the following questionnaire, you will be helping me and members of the University to further our understanding. You are asked to complete a QUESTIONNAIRE designed to be quick and easily answered. There are four short sections to complete: Part 1 - Core self-evaluations Part 2 - Training Part 3 - Job satisfaction Part 4 - Demographics Your identity will remain entirely anonymous and your data will be held in a secure database. Although we don't ask for you name, please provide your demographic details and the country in which you currently work. To answer all questions takes approximately 10 minutes. You have until 12pm Friday, 04-May-2001. http://www.researchuk.net/ Thank You Martin Lynch m.a.lynch@psy.hull.ac.uk ________________________________________________________________________ 7. DELPHI EN LA RED Artículos Delphi ================ * Delphi Database Programming Course - by Zarko Gajic Free online database programming course for beginner Delphi developers focused on ADO techniques. Two new chapters have been added in the last two weeks (Chapter 6 "Data modifications" and Chapter 7 "Queries with ADO"). http://delphi.about.com/compute/delphi/library/weekly/aa010101a.htm * Zoom - by Zarko Gajic How to write a Delphi application that is able to zoom in a portion of your desktop screen. http://delphi.about.com/library/weekly/aa120198.htm * Displaying Macromedia Flash .SWF files in your Delphi Application - by Douglas Tietjen http://www.delphipages.com/news/detaildocs.cfm?ID=38 Tecnología ========== * IBM Breakthrough May Lead to Smaller Computer Chips - by Nicole Volpe Will Silicon Valley become Carbon Nanotubes Valley? http://dailynews.yahoo.com/h/nm/20010426/tc/ Noticias Borland ================ * Borland reports profits for the fourth-straight quarter - by Jennifer Pittman "Borland Software Corp. is bucking the technology-tumble trend — and in a big way." http://www.santacruzsentinel.com/archive/2001/April/27/top/stories/ 1top.htm ________________________________________________________________________ 8. SORTEO DE HELP & MANUAL Si desea participar en el Sorteo de Help & Manual puede llenar este formulario y enviárnoslo por email para que podamos operar la registra- ción por usted. Se puede registrar SOLO UNA VEZ usando una dirección de email válida que le pertenezca. Después que se haya registrado recibirá un email con el número que jugará por la Lotería Oficial de Córdoba a realizarse el Miércoles 16 de Mayo de 2001. Podrá ver los resultados en: http://www.ruta1000.com.ar/sorteos/index2.htm (siguiendo el enlace "ULTIMOS RESULTADOS" bajo el título "LOTERIA CORDOBA") Los datos del ganador (número, nombre, edad, ocupación y país) serán publicados en la próxima edición de este boletín. Nombre completo: Email: Compañía: Posición/Ocupación: Area de negocios de su empresa: Marque una de las siguientes opciones: ( ) Desarrollo de Software ( ) Entrenamiento basado en computadoras ( ) Servicios IT ( ) Marketing ( ) Servicios Financieros ( ) Otros Empleados: Marque una de las siguientes opciones: ( ) Sólo yo ( ) 1-10 ( ) 11-50 ( ) 51-500 ( ) Más de 500 País: ¿Qué tipo de documentación crea? Marque una opción: ( ) Archivos de ayuda WinHelp (.HLP) ( ) Archivos HTML HELP (.CHM) ( ) WinHelp y HTML HELP ( ) HTML estándar para uso en Internet ( ) Otra documentación ¿Ha encontrado Help & Manual interesante? Marque una opción: ( ) No ( ) Poco ( ) Más o menos ( ) Bastante ( ) Muy mucho ¿Ha encontrado alguna característica faltante? (OPCIONAL): ¿Usa otra/s herramienta/s de autoría de ayuda? ( ) Sí --> Por favor especifique: ( ) No --> ¿Planea usar una herramienta de autoría de ayuda en el futuro? ( ) Sí ( ) No ________________________________________________________________________ ¡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/p0021.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!






