Entrar
¿No tienes cuenta? Registrarse
boletin-pascal · Boletín Pascal (Delphi/Kylix)
? ¿Ya tienes membresía? Entra a Yahoo!

Consejos

¿Sabías que...
Puedes recibir más de un mensaje en un correo-e. Para ello modifica tus preferencias para la entrega de mensajes.

Mensajes

  Mensajes Ayuda
Avanzado
Boletín Pascal #35   Lista de mensajes  
Responder | Reenviar Mensaje #1 de 20 < Anterior |
Boletín Pascal #35 - 22-MAY-2002

INDICE

1. UNAS PALABRAS DEL EDITOR
2. APLICACIONES SIN VCL (y II)
3. APAGANDO LA PC EN UNA FECHA/HORA DETERMINADA BAJO WINDOWS NT/2000
4. FOROS
5. DELPHI EN LA RED
- Componentes, librerías y aplicaciones
. Shareware/Comercial
. Freeware
- Artículos, trucos y consejos
- Tutoriales
- Otros enlaces

________________________________________________________________________


1. UNAS PALABRAS DEL EDITOR


Antes que nada, pido disculpas a todos los suscriptores por la gran
demora en la publicación de esta edición. Por fin la transferencia de
la lista de suscriptores a la plataforma se ha completado y podemos
entonces publicar este número. El próximo será publicado dentro de muy
poco.

Me gustaría agradecer a los autores de los artículos colaborados para
esta edición, y en esta ocasión me complace hacer entrega a Roberto
Martínez O. la licencia de SMImport, un juego de componentes para
convertir desde los formatos de datos populares, provisto por Scalabium:

http://www.scalabium.com/smi/index.htm

En la próxima edición, uno de nuestros colaboradores recibirá una
licencia de Greatis Print Suite, un juego de componentes de vista previa
e impresión, provisto por Greatis Software:

http://www.greatis.com/printsuite.htm

También estamos haciendo un concurso para los primeros dos artículos
sobre Kylix que publiquemos. Los premios serán sendas licencias de
AnyShape Transpack para Kylix provistas por MindBlast Software:

http://www.mindblastsoftware.com

El sitio de Latium Software tiene ahora un nuevo diseño gracias a la
colaboración de Renato Gaiarsa <renato@...>. Los
invito a visitar el sitio y a reportar problemas o enlaces rotos:

http://www.latiumsoftware.com/es/index.php3

El sitio ha sido recientemente listado en http://www.programacion.net y
quisiera aprovechar para invitarlos a votar por nosotros siguiendo este
enlace:

http://www.programacion.net/votar-enlace.php?id=474

De la mano de Demian Lessa, la edición en portugués del Boletín Pascal
ya es una realidad.

Último número: http://www.latiumsoftware.com/br/pascal/0034.php3
Subscripción: http://groups.yahoo.com/group/boletim-pascal/join
boletim-pascal-subscribe@...

A quienes quieran dar sus primeros pasos con las DLLs, les recomiendo el
tutorial de Pablo Castagnino "Introducción a las DLLs", que encontrarán
listado en la sección de Tutoriales de este boletín.

Saludos,

Ernesto D'Spirito
edspirito@...

________________________________________________________________________

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-6 y C++ Builder 3-5. http://www.jfactivesoft.com/spindex.htm
________________________________________________________________________


2. APLICACIONES SIN VCL (y II)

Por José Manuel Rodríguez (JMR)
CopyRight: JMR, Madrid 1998/1999


Antecedentes
============

En el capítulo anterior abordamos la reducción del tamaño de los ejecu-
tables mediante el uso de una unidad, que además ampliar al gama de los
cuadros de diálogo que nos proporciona la VCL si así lo deseabamos,
podíamos usar de manera totalmente independiente a la VCL, permitién-
donos crear así ejecutables mucho más reducidos. Sin embargo la gama de
las aplicaciones que se podían hacer usando solamente APIDlgs sin empleo
de la VCL estaba muy limitada, algunas aplicaciones muy estereotipadas
con unos cuadros de diálogo muy concretos y principalmente DLLs o
aplicaciones que corrían ocultas durante el mayor tiempo de su vida y
que de tarde en tarde mostraban información o recababan algún tipo de
datos al usuario.

En esta entrega vamos a ir mucho más lejos y vamos a ampliar espectacu-
larmente el número de aplicaciones que se puedan hacer sin recurrir a la
comodidad de la VCL.

La idea es hacer un objeto que encapsule totalmente una aplicación. La
aplicación así encapsulada será una mini-aplicación, por supuesto, pero
totalmente funcional, con su menú, sus tips, posibilidad de reaccionar a
los mensajes de Windows o a mensajes definidos por nosotros mismos, etc.
Si cada vez que tengamos que mostrar un mensaje o pedir información
hacemos uso a su vez de APIDlgs, tenemos que con la conjunción de APIApp
y APIDlgs podemos cubrir gran número de programas sin tener que hacer
uso de la VCL, y logrando ejecutables un 10% más pequeños que sus
equivalentes con VCL o más, aunque esto naturalmente es muy difícil de
estimar.


Descripción
===========

La unidad ApiApp contiene principalmente el objeto (no confundir con
componente) TTinyApp que proporciona total funcionalidad para la gene-
ración instantánea, aunque no visual, de aplicaciones completas. Dichas
aplicaciones se muestran como un icono en la bandeja de la barra de
tareas, tienen su propio menú emergente con las acciones asociadas que
hayamos definido y además pueden procesar mensajes de Windows o bien
mensajes definidos por el usuario. En cualquier momento podremos añadir
nuevas opciones al menú, o redefinirlo totalmente, cambiar el icono que
se visualiza en la bandeja, etc. Vamos a ver dos posibles usos:

a) Imaginemos que tenemos una aplicación nuestra convencional que
queremos monitorizar. Dicha aplicación puede ser un ejecutable normal,
una DLL, un ISAPI, lo que sea... y que en incluso pueden estar ejecután-
dose múltiples instancias de la misma en un momento dado, y estamos
interesados en conocer cuando dicha aplicación recibe una orden del
usuario (p.e.: un cliente HTTP ha solicitado ciertas filas de una tabla
al servidor Web donde se ejecuta nuestra ISAPI, la aplicación ya ha
abierto 100 veces un fichero, etc.). Pues bien, sólo tenemos que defi-
nirnos nuestros mensajes propios para cuando se produzcan estos hechos
mandarlos acompañados por ejemplo del 'Handle' de nuestra ventana
principal en WParam. A continuación nos creamos nuestra aplicación
descendiente de TTinyApp y le indicamos que reaccione a estos mensajes
(mostrando un mensaje en una ventana y creando un fichero log si es
necesario, etc.). Una vez hayamos lanzado nuestra 'TinyApp' seremos
informados en todo momento de quien y cuando recibe que mensaje....

b) Ya que tenemos a disposición nuestro propio menú, en realidad,
cualquier aplicación que no requiera un gran despliegue de interfaz
gráfica puede acomodarse a este tipo de aplicaciones: programas para
modificar la configuración de Windows o de otros programas, programas
de diagnóstico, de cálculos matemáticos, etc. Obviamente gran parte de
las aplicaciones mayores quedan fuera del alcance de APIApp pero hay
muchas situaciones en que su uso puede considerarse, especialmente en
aplicaciones complementarias.


Funcionamiento
==============

APIApp está basada enteramente en el Objeto TTinyApp, por lo que tiene
todas las ventajas de la OOP, aunque sin la sobrecarga de uso de memoria
y recursos que conllevan los componentes. Desde luego, se pierden las
ventajas del diseño visual, pero su uso sigue siendo inmesamente fácil.
De hecho, ni siquiera hay que conocer nada de OOP para sacarle todo su
rendimiento.


MÉTODOS PÚBLICOS

Los métodos públicos son:

constructor Create(cAppName, cIconName: String; MainProc: TMainProc);
virtual;
procedure AddUserMsg(MsgID: Integer; MsgAction: TMsgProc);
procedure AddMenuOption(OptionStr: String; OptionID: Integer;
OptionAction: TOptionProc);
procedure SetNewIcon(const cIconName: String);
procedure ResetMenu;
procedure Execute;
procedure Free;


Create
------

constructor Create(cAppName, cIconName: String;
MainProc: TMainProc); virtual;

Simplemente crea un objeto TTinyApp, sin más.

Los parámetros son:

- cAppName: Nombre interno de la aplicación y será lo que se muestre
en el tip cuando el puntero del ratón pase por encima del icono. Si
se pasa una cadena vacía, simplemente no se mostrará tip alguno,
pero es válido.
- cIconName: Nombre del icono que queremos que se muestre en la
bandeja. El nombre debe ir en mayúsculas y coincidir con el nombre
de algún icono que haya sido incluido como recurso en nuestra
aplicación (con la directiva {$R}, por ejemplo). Si se pasa una
cadena vacía o un nombre de icono inexistente en los recursos del
ejecutable, se empleará el icono por defecto.
- MainProc: Es el nombre de un procedimiento de tipo TMainProc.
TMainProc = procedure(var Msg: TMessage);
Este procedimiento es llamado automáticamente por TTinyApp, cuando se
hace 'click' con el botón izquierdo sobre el icono de la bandeja
(acción por defecto según la terminología Windows) y nunca hay que
llamarla directamente, y recibirá un parámetro de tipo mensaje de
Windows como parámetro. Este parámetro de Create puede ser nil, en
cuyo caso no se ejecuta ninguna acción cuando se hace 'click' con el
botón izquierdo del ratón sobre el icono.


AddMenuOption
-------------

procedure AddMenuOption(OptionStr: String; OptionID: Integer;
OptionAction: TOptionProc);

Cuando se crea un objeto TTinyApp, se le asigna un menú emergente que
sólo contiene la opción "Salir", que termina la aplicación. Este método
permite añadir opciones al menú emergente de la aplicación.

Los parámetros son:

- OptionStr: Es un 'String' que contiene el texto que figurará en el
menú.
- OptionID: Es un identificador numérico de la opción del menú. Ha de
ser único, pero puede ser cualquier número a partir de ID_USERFREE.
- OptionAction: Es un procedimiento del mismo tipo que el TMainProc de
arriba. Dicho procedimiento es el que se ejecutará cuando el usuario
seleccione dicha opción del menú.


AddUserMsg
----------

procedure AddUserMsg(MsgID: Integer; MsgAction: TMsgProc);

Al crearse un objeto TTinyApp, se crea una ventana oculta a la que se le
asigna un procedimiento de ventana que maneja los mensajes específicos que
reciba la ventana oculta y el resto se los pasa a Windows. Obviamente, al
tratarse de una ventana oculta, hay mensajes tales como WM_PAINT o
WM_NCHITTEST que no recibirá nunca, pero si otros mensajes de Windows,
como WM_ACTIVATE o WM_CLOSE, y por supuesto, sobre todo mensajes
definidos por nosotros. Mediante este procedimiento podemos especificar
procedimientos de respuesta para cada mensaje en el que estemos
interesados.

Los parámetros son:

- MsgID: Identificador numérico del mensaje, puede ser un mensaje de
Windows (p.e.: WM_CLOSE) o un mensaje definido por el usuario. En este
último caso el rango libre para usar está a partir de WM_USERFREE.
- MsgAction: El nombre de un procedimiento del tipo TMsgProc. Dicho tipo
es totalmente análogo al tipo TMessageEvent de la VCL (el usado por
Application.OnMessage, sin ir más lejos), sólo que aquí se trata de
un procedimiento y no como en el caso de la VCL que es un método (o
sea, una función de un objeto). Los parámetros que recibirá son
exactamente los mismos que en el caso de OnMessageEvent: Msg es una
estructura de tipo TMessage y Handled es una variable por referencia
que podemos poner a True para evitar que el mensaje siga siendo
procesado por Windows.


SetNewIcon
----------

procedure SetNewIcon(const cIconName: String);

Permite cambiar el icono que se muestra en la bandeja de la barra de
tareas, incluso durante la ejecución de la aplicación. Se mostrara
activado o desactivado conforme el estado real de la aplicación.

Parámetro:

- cIconName: Nombre del icono que queremos que se muestre en la bandeja.
El nombre debe ir en mayúsculas y coincidir con el nombre de algún
icono que haya sido incluido como recurso en nuestra aplicación (con
la directiva {$R}, por ejemplo). Si se pasa una cadena vacía o un
nombre de icono inexistente en los recursos del ejecutable, se
empleará el icono por defecto.


ResetMenu
---------

procedure ResetMenu;

Permite eliminar todas las opciones del menú emergente y sus acciones
asociadas, excepto la opción 'Salir', necesaria para poder terminar la
aplicación.


Execute
-------

procedure Execute;

Pone en marcha la aplicación, cuando se invoca este método, se visualiza
el icono en la bandeja de tareas y la aplicación entra en su bucle de
mensajes, permaneciendo en él hasta que recibe un WM_QUIT, como siempre.
Una vez se ha terminado el bucle de mensajes, la aplicación termina pero
el objeto no es destruido, por lo que aunque no sea frecuente, se puede
llamar a Execute varias veces siempre que no se haya llamado al método
Free (o Destroy).


Free
----

procedure Free;

Destruye el objeto y libera toda la memoria. Es necesario llamarlo
cuando se ha terminado de usar TTinyApp.


PROPIEDADES PÚBLICAS

Las propiedades públicas son:

property Enabled: Boolean read FEnabled write SetEnabled;
property Wnd: THandle read FMainWnd;

- Enabled: Lectura y escritura. Permite conocer el estado de TTinyApp o
bien activarla y desactivarla a voluntad. Cuando TTinyApp está
desactivada no recibe mensajes por parte del usuario, por lo que no
despliega el menú ni ejecuta la acción por defecto, aunque la ventana
invisible sigue recibiendo mensajes. Es útil desactivarla por ejemplo
cuando se está ejecutando una opción del menú para que no pueda volver
a ser llamada mientras se está ejecutando.
- Wnd: Sólo lectura. Es el 'Handle' de la ventana principal (oculta) de
una TTinyApp.


Guía rápida
===========

El uso APIApp es muy fácil, cómodo e intuitivo. Normalmente basta con
crearse un objeto de tipo TTinyApp, añadirle las opciones de menú que
deseemos y llamar a su método Execute, llamándo a Free cuando hayamos
terminado, esquemáticamente:

var
MiApp: TTinyApp;

begin
MiApp := TTinyApp.Create('Mi programa', '', nil);
try
MiApp.AddMenuOption('&Acerca de ...', ID_USERFREE + 1, ShowAbout);
MiApp.AddMenuOption('Con&figurar', ID_USERFREE + 2, AppConfig);
......
MiApp.Execute;
finally
MiApp.Free;
end;
end.

Vea el ejemplo TestTiny que acompaña a esta unidad para ver una aplica-
ción completa (e inútil desde un punto de vista práctico).


Comentarios
===========

a) Por su propia idiosincrasia, esta unidad sólo funcionará en entornos de
32 its. Sólo ha sido probada en Delphi 3.0, pero no veo ningún motivo
para que no funcione en Delphi 2.0 o Delphi 4.0.
b) Como en la primera parte, todo el código incluido es original del que
esto escribe, José Manuel Rodríguez, pero de nuevo tengo que
agradecer las sugerencias y comentarios de José Luis Freire, Miguel
Angel Oliver (maoliver@...) y Nicolás Aragón
(doperider@...), sobre todo de este último, de quien ha
partido la idea que yo me he limitado a implementar. Aparte de los
autores que he citado en el anterior capítulo, tengo que agradecerles
también mucho a los abundantes autores de las utilidades tipo
TrayIcon que circulan por Internet, aunque no cito expresamente a
ninguno por miedo de olvidar a otros.
c) Esta unidad puede ser utilizada de forma totalmente gratuíta en
programas compilados sin ningún tipo de restricción, aunque de ser
usada se agradecería una mención tanto al autor en los créditos del
programa que haga uso de ella. En caso de ser distribuida en forma de
fuentes, ha de ser distribuida la totalidad del paquete, con todos
los ficheros íntegros, incluyendo las notificaciones de copyright, y
estará prohibido el cobro de cualquier cantidad, excluyendo el
soporte, por dicha distribución. Esta unidad se suministra tal cual,
sin garantías de ningún tipo, y su uso no implica que el autor sea
responsable de ninguna consecuencia nefasta que éste pudiera
conllevar. El autor tampoco se compromete a mantenerla, dar soporte
técnico, etc., aunque está en su ánimo hacerlo de manera voluntaria.
(¡Total! por este precio).

Cualquier sugerencia, corrección o crítica (constructiva, claro) será
bien recibida en:

José Manuel Rodríguez (jmr@...)

__________________

Nota: Los ejemplos requieren la unidad APIDlgs presentada en la primera
parte de este artículo que fuera publicada en la edición pasada, la que
puede descargarse de http://www.latiumsoftware.com/descarga/p0034.zip

________________________________________________________________________


3. APAGANDO LA PC EN UNA FECHA/HORA DETERMINADA BAJO WINDOWS NT/2000

Por Roberto Martínez O. <rmartinez@...>


El programa Timer que se adjunta permite definir una fecha/hora para que
se apague una PC con sistema operativo Windows 2000 o NT. Este programa
se nos hace útil cuando deseamos dejar corriendo algún proceso en la PC
y no tenemos tiempo o no deseamos esperar a que éste acabe para apagar
la máquina: sólo programamos la fecha/hora y nos vamos, y el programa se
encargará de apagar la PC. El programa es del tipo "SystemTray", copiado
del ejemplo de Ernesto D'Spirito que puede encontrarse en la sección de
trucos Delphi del sitio de Latium Software, al que le agregé un
componente Timer y la rutina para forzar a que se apague la máquina.

________________________________________________________________________


5. DELPHI EN LA RED

Por Dave Murray


Componentes, librerías y aplicaciones
=====================================


Shareware/Comercial
-------------------

* AnyShape Transpack v2.0 - by MindBlast Software (DELPHI + KYLIX)
Tired of boring, rectangular windows? Welcome to the exciting world of
transparent, weirdly shaped windows! Simply drop a few components on a
form, change a few properties - and voila! Features: WYSIWYG editing,
design-time preview, automatic dragging, REAL stay-on-top forms,
combine regions and load/save regions from file. Shareware, $30.00.
http://www.mindblastsoftware.com/?page=transpack&ref=PascalNL


Freeware
--------

* TyEncoder v0.1.1 - by Steve Blinch, FREEWARE + source (DELPHI + KYLIX)
A component to encode yEnc format file attachments for newsgroup
messages. Includes example Delphi + Kylix projects and documentation.
http://www.yenc32.com/developers/

* TyDecoder v0.1.1 - by Steve Blinch, FREEWARE + source (DELPHI + KYLIX)
A component to decode yEnc format file attachments from newsgroup
messages. Includes example Delphi + Kylix projects and documentation.
http://www.yenc32.com/developers/

* Vortex IRC v2.0 - by JoepezT, FREEWARE with source (DELPHI + KYLIX)
OpenSource IRC component with an internal IdentD server.
http://www.berzerk.net

* DirMonitor v1.1 - by Juan Carlos Molinos Mesa, FREEWARE with source
Windows API based component for monitoring changes in specified local
or remote folder. Monitored Events: Create, Modify, Change, Delete,
Rename, Security changes.
http://www.torry.net/vcl/filedrv/notification/jcmmdirmonitor.zip

* TscExcelExport v2.8 - by Stefan Cruysberghs, FREEWARE with source
Export all records of dataset to MS Excel 97, 2000 or XP.
http://www.stefancr.yucom.be

* Advanced Patch Engine v6.0 - by William Anthony, FREEWARE
Using the new HybridGRAF XA Technology Controls. New features include:
XP ready Controls, new locking system, smaller size Program + Modules.
http://www.torry.net/toolscw.htm

* TPowerPoint v1.2 - by Heiko Groschupp, FREEWARE with source
Component to control Microsoft Powerpoint via OLE automation.
http://hgroshupp.guertler.de

* SerialNG v1.0.7 - by Ekkehard Domning, FREEWARE with source
Enables an Application to communicate through the serial ports using
only WinAPI and Delphi functions. Features: one Thread for send and
receive, uses "Overlapped" for all R/W access, control of Timeout,
control of Linestates, simple implementation.
http://www.domis.de/serialng.htm

* HTTPD Component v0.9 - by Swifty, FREEWARE
HTTP/1.1 compliant Server component.
http://dlux.sch.bme.hu/~swifty

* TSysInfoCtrls v1.0 - by Simone Cicco Di, FREEWARE
Component/unit to provide some System information: UserName,
CompanyName, Computer Name, Date, CPU Vendor + Identifier, Resolution,
Windows Version, DirectX Version, Serial Ports, Adapter Type, Printer,
Win Product Key, Config Path, Program Directory + System Root, etc.
http://www.devresource.net

* FindComp v1.2 - by Dimka Maslov, FREEWARE with source
A unit that lists computers and workgroups in a LAN, can obtain their
IP addresses and enumerate shared network resources.
http://endimus.com

* DIMime v1.6 - by Ralf Junker, FREEWARE with source
A fast MIME (Base64) Encoder and Decoder. Both MimeEncode + MimeDecode
have a straightforward, flexible interface making them easy to use
with buffers, strings and all other types you can imagine.
http://www.zeitungsjunge.de/delphi

* GDIPLUS v1.0 - by Henri Gourvest, FREEWARE with source
GDI+ is a new graphics subsystem for Windows and provides a new set of
graphics APIs for rendering 2D graphics, images and text. GDI+ is the
only API for drawing in the .NET Framework, but in Delphi it is a
complement to the GDI providing more advanced rendering capabilities.
http://www.progdigy.com

* RichView XML v1.0 - by Jiè Banzet, FREEWARE w. source
A TRichView addition for saving XML, has its own DTD for effective
saving of all content (bullets, hotspots, controls, tables, etc).
http://www.torry.net/vcl/edits/rich/richviewxmlexe.zip

* ShellPlus Components - by ShellPlus Development Group, FREEWARE
With Shell+ you can easy develop your own Shell Extensions.
http://www.swissdelphicenter.ch/en/download.php?id=220&kat=komponenten

* TFileMonitor - by Winston Kotzan, FREEWARE
Monitors a directory for changes, signalling an event.
http://www.swissdelphicenter.ch/en/download.php?id=173&kat=komponenten

* Glyph Collection - by Thomas Greiner, FREEWARE
5,700 Bitmap glyphs (32x32) extracted from all kinds of applications.
http://www.swissdelphicenter.ch/en/download.php?id=8&kat=icons


Artículos, trucos y consejos
============================

* Delphi.NET previewed at SD West - by Anders Ohlsson
Borland also received the coolest award ever - Jolt Hall of Fame!
http://community.borland.com/article/0,1410,28649,00.html

* Where in the World is Sven Svensson? - by Anders Ohlsson
Web service consumption and XML transforms made easy.
http://community.borland.com/article/0,1410,28646,00.html

* Delphi 6 Web App Debugger: A solution that works - by Bob Swart
Delphi is a great tool for writing Web server applications but
debugging those applications is difficult, to say the least. No
solution was available that satisfied every developer until Delphi 6
introduced Web App Debugger. Let's take a look at how you can access
this executable and use it to debug your Web server applications.
http://builder.com.com/article.jhtml?id=u00220020501swa01.htm&fromtm=e057

* Easy + powerfull AutoComplete Search in TListBox - Mohammad B Mamouri
http://www.delphi3000.com/articles/article_3200.asp

* How to create a Multilingual Program - by Manfred Suesens
Display all charsets of the world.
http://www.delphi3000.com/articles/article_3203.asp

* ISAPI Filter Header Files - by Daniel Wischnewski
A complete Translation of the HttpFilt.h.
http://www.delphi3000.com/articles/article_3205.asp

* Exporting Grid to Word without OLE or Components - Eugene Kuchugurov
How to save objects to Word compatible format (RTF).
http://www.delphi3000.com/articles/article_3208.asp

* Simple high performance 3-tier apps with Indy and ADO - by aka aka
Now it's easy to create simple high performance middleware apps
with Indy and ADO (thanks to OLE-DB resource poooling).
http://www.delphi3000.com/articles/article_3209.asp

* String Grid to HTML file - Mike Heydon
StrGridToHTML() function.
http://www.delphi3000.com/articles/article_3212.asp

* From resources to TWebBrowser - by Christian Cristofori
Ever wanted to do your own exe containing HTML pages? This article
lets you easily manage HTML files included in your EXE as resources
loaded into a TWebBrowser.
http://www.delphi3000.com/articles/article_3213.asp

* How to validate a float number? - by Thomas Stutz
http://www.swissdelphicenter.ch/torry/showcode.php?id=1128

* How to get the ODBC datasource names? - by Grinder
http://www.swissdelphicenter.ch/torry/showcode.php?id=1131

* How to extract the filename of an URL? - by Rainer Kümmerle
http://www.swissdelphicenter.ch/torry/showcode.php?id=1134

* Make your own WinAmp with Delphi - by Zarko Gajic
How to build an mp3 player with Delphi and get the ID3 tag info.
http://delphi.about.com/library/weekly/aa112800a.htm

* Making TabControls work on XP with Delphi 4 - by John W. Long
Matteo Riso posted an solution for creating transparent Tabsheets in
article http://www.delphi3000.com/articles/article_2843.asp, but it
does not work for Delphi 4. This article is the solution.
http://www.delphi3000.com/articles/article_3168.asp

* Simple context-sensitive help - by Herman van der Hoek
http://www.delphi3000.com/articles/article_3169.asp

* How to receive session switch notifications (XP)? Thomas Stutz
How to receive the WM_WTSSESSION_CHANGE message.
http://www.delphi3000.com/articles/article_3171.asp

* Download a file from a FTP Server - by Thomas Stutz
The functions from wininet.dll are used.
http://www.delphi3000.com/articles/article_3172.asp

* Personal settings and the windows registry - by Teun Spaans
What settings to store in the registry and how to do so?
http://www.delphi3000.com/articles/article_3173.asp

* A Nice Flat Coloured button used as a TButton replacement - by S Moss
http://www.delphi3000.com/articles/article_3174.asp

* Line in RichEdit - by Maarten de Haan
How to get a margin line in a RichEdit just like in the Delphi editor?
http://www.delphi3000.com/articles/article_3175.asp

* Reconnecting to network shares - by Vassilis Perantzakis
Ever lost a networked share and didn't know how to connect to it? This
component can search the network for a specific share containing a
file or a directory and automatically reconnect to it.
http://www.delphi3000.com/articles/article_3176.asp

* Getting debug information runtime - by Igor Kurilov
Converting an exception address into a source line number and function
public name using the Map-file.
http://www.delphi3000.com/articles/article_3178.asp

* Top Picks - Help Authoring Tools - by Zarko Gajic
Documentation and the help system is essential when users are working
with your applications. These tools help you create manuals in PDF,
HTML, HTML Help, Windows Help and RTF formats.
http://delphi.about.com/library/toppicks/aatphelp.htm

* Build Your Own Compiler: Part I - by Fernando Vicaria
Demystifies compilers by the straightforward approach of showing how
to build one with Delphi and keeps jargon and formalism to a minimum.
http://www.delphimag.com/features/2002/04/di200204fv_f/
di200204fv_f.asp

* Storing Sounds and Graphics for Quick Retrieval - by Paul Qualls
How to add pictures and sounds to a DLL from writing the run-control
script and compiling the resource file to creating the DLL and hooking
it up to an application.
http://www.delphimag.com/features/2002/05/di200205pq_f/
di200205pq_f.asp

* Interview with Marco Cantu - by SwissDelphiCenter
http://www.swissdelphicenter.ch/en/marcocantu.php

* How to add data manually to a tree view, from a Texteditor?
http://www.swissdelphicenter.ch/en/showcode.php?id=857

* How to Draw the Mandelbrot Fractal?
http://www.swissdelphicenter.ch/en/showcode.php?id=1107

* How to sort a TListView using the CustomSort method?
http://www.swissdelphicenter.ch/en/showcode.php?id=1103

* How to enumerate all TForms of a Project?
http://www.swissdelphicenter.ch/en/showcode.php?id=1104

* How to print only the selected Text of TRichedit?
http://www.swissdelphicenter.ch/en/showcode.php?id=1105

* How to trap Windows Messages in a Component?
http://www.swissdelphicenter.ch/en/showcode.php?id=1101

* How to change a TButton's Color?
http://www.swissdelphicenter.ch/en/showcode.php?id=1100

* How to list all properties, events of a component?
http://www.swissdelphicenter.ch/en/showcode.php?id=1084

* How to load HTML code directly into a TWebbrowser?
http://www.swissdelphicenter.ch/en/showcode.php?id=1096

* How to show the windows recycle bin?
http://www.swissdelphicenter.ch/en/showcode.php?id=1098

* Display DBNavigator's Buttons' caption - by Robert Zxg
Defines a new class as a descendant of TDBNavigator and assigns
captions to navigation buttons.
http://www.delphi3000.com/articles/article_3145.asp

* File Splitter - by Prashant Gulati
Split and join large files.
http://www.delphi3000.com/articles/article_3146.asp

* URL Parsing class - by Arni Halldorsson
http://www.delphi3000.com/articles/article_3147.asp

* Remote port scanner - by Eber Irigoyen
http://www.delphi3000.com/articles/article_3148.asp

* COM/OLE Object Name Utility Procedure - by Mike Heydon
Enables you to browse a list of Registered GUID classes from
HKEY_LOCAL_MACHINE\Software\Classes\CLSID. The object name is the name
as used by Delphi function "CreateOleObject('Outlook.Application')".
http://www.delphi3000.com/articles/article_3149.asp

* Building a Fractal Generator - by Max Kleiner
A Fractal Library for Science, Chaos and Financials.
http://www.delphi3000.com/articles/article_3150.asp

* Streaming Variant Arrays (to memory, tcpip, file) - by Matt Harrison
http://www.delphi3000.com/articles/article_3151.asp

* Create Outlook Exchange Profiles automatically - by Jason Goff
http://www.delphi3000.com/articles/article_3152.asp

* Get notified: CD in/out - by Eber Irigoyen
Need to know when the user inserts/extracts a CD?
http://www.delphi3000.com/articles/article_3153.asp

* Call ISAPI DLL from application - Kattous Ktates
How to call ISAPI DLL from application using GET method.
http://www.delphi3000.com/articles/article_3155.asp

* Using Microsoft Index Server from Delphi - by Massimo Brini
How to search MS Index Server and show the results like a dataset and
some considerations on the use & misuse of this technology.
http://www.delphi3000.com/articles/article_3157.asp

* Draw a tiled image on MDI parent form - by Mohammad Baqer Mamouri
http://www.delphi3000.com/articles/article_3158.asp

* mySQL doesn't sort Arabic character correctly, unless.. - by W Alsayer
http://www.delphi3000.com/articles/article_3160.asp

* How to draw an underline on a Listview Caption - by Alex Van Der Vliet
http://www.delphi3000.com/articles/article_3163.asp

* ProgressBar Different Color - by Alain Gosselin
How to change the foreground color of a ProgressBar?
http://www.delphi3000.com/articles/article_3165.asp

* Using Remote Execute Function (Unix REXEC) from Delphi - Mike Heydon
http://www.delphi3000.com/articles/article_3166.asp

* Web Service Workshop with Remote Data Storing - by Max Kleiner
Borland VCLScanner explained step by step. How do you automatically
transfer scanned client-data with a web service from a client to a
database server or a file and store it?
http://www.delphi3000.com/articles/article_3167.asp

* Top Picks: Mobile/Handheld Tools - by Zarko Gajic
Looking for a tool to help you code for handheld devices with Delphi?
Look no further, this page presents Delphi components and Delphi-like
handheld computing focused development tools.
http://delphi.about.com/library/toppicks/aatpmobile.htm

* Minimize DLL Hell and Get the Windows XP Look - by Bruno Sonnino
Introduces side-by assemblies, Microsoft's response to DLL Hell. With
them you can use multiple versions of a DLL without wreaking havoc and
achieve the Windows XP look.
http://www.delphimag.com/features/2002/05/di200205bs_f/
di200205bs_f.asp

* Protect your software - by Mike Shkolnik, Scalabium
Tips and recommendations, also available in PDF format.
http://www.scalabium.com/articles/protection.htm

* ID generation strategies - by Mike Shkolnik, Scalabium
Describes different methods of generating a unique identifier or key
to identify a database record.
http://www.scalabium.com/articles/id_generation.htm

* Discussion about Application Interface - by Mike Shkolnik, Scalabium
Shows common mistakes in interface building and a few standard schemas
which are useful for end-users.
http://www.scalabium.com/articles/app_interface.htm

* Add MS Index Server Search capabilities to your App - by Kirill Plugin
Administering MS Index Server and executing full-text search queries.
http://www.delphi3000.com/articles/article_3179.asp

* Creditcard number validation - by Ronald Buster
http://www.delphi3000.com/articles/article_3180.asp

* Transfering data from one database to another - by Gabhan O
http://www.delphi3000.com/articles/article_3182.asp

* Distributable COM Objects on Remote Machines - by Mike Heydon
http://www.delphi3000.com/articles/article_3184.asp

* Creating Catalogs on Microsoft Index Server - by Luiz Marques
http://www.delphi3000.com/articles/article_3189.asp

* Exception Framework to log complete traverse info - by S R Nandakumar
http://www.delphi3000.com/articles/article_3191.asp

* Component templates - by Eber Irigoyen
http://www.delphi3000.com/articles/article_3195.asp

* Converting Text for different Code Pages - by Daniel Wischnewski
Using the MS Multi Language Library from the MSIE 4.0+.
http://www.delphi3000.com/articles/article_3198.asp


Tutoriales
==========

* Introducción a las DLLs - por Pablo Castagnino
¿Qué son? ¿Por qué usarlas? ¿Cómo crearlas? ¿Cómo cargarlas? ¿Cómo
crear y usar una DLL de recursos?
http://webs.sinectis.com.ar/alvadel/docs/dlls.htm

* Matlus - The Delphi Apostle
This site contains extensive tutorials on Web Services, ISAPI, ASP and
TCP/IP. Run on a home broadband connection and uses Delphi ISAPI DLLs
to generate dynamic content from Interbase and Access.
http://www.matlus.com/scripts/website.dll

* A journey through the Delphi IDE - by Zarko Gajic
A Beginner's Guide to Delphi Programming: Chapter 2.
http://delphi.about.com/library/weekly/aa020202a.htm

* Remedial XML for programmers: Basic syntax - by Lamont Adams
Maybe you've been stranded on a desert island hiding in a cave or
avoiding all "Web stuff." Whatever reason, you're lacking XML savvy
and want to remedy the situation. This first instalment in a 3-part
series introduces XML and its basic syntax.
http://builder.com.com/
article.jhtml?id=u00220020327adm01.htm&page=1&vf=tt

* Remedial XML: Enforcing document formats with DTDs - by Lamont Adams
Still playing catch-up when it comes to XML? No sweat, this XML
tutorial continues with an introduction to DTDs.
http://builder.com.com/
article_guest.jhtml?id=u00220020401adm01.htm&fromtm=e046

* Remedial XML: Using XML Schema - by Lamont Adams
One way of enforcing structural requirements for an XML document is
by using a document type description (DTD). This article touches on
the shortcomings of DTDs and discusses the basics of a newer, more
powerful standard: XML Schemas.
http://builder.com.com/
article_guest.jhtml?id=u00320020418adm01.htm&fromtm=e601

* Resolve conflicts with XML namespaces - by Brian Schaffner
Using XML to define your business data can be difficult when you have
overlapping departments & redundant data definitions. XML namespaces
can help resolve conflicts between element names.
http://builder.com.com/article.jhtml?id=u00820020218sch01.htm&vf=tt

* Introduction to XSLT - by Jason Monberg & Mike Wynholds
Extensible Stylesheet Language (XSL) consists of 3 languages for
converting XML documents into other formats. XSL Formatting Objects
(XML FO) describes visual formatting, while XPath accesses specific
parts of an XML document. But XSL Transformations (XSLT) is the
language for actually converting from one XML format into another.
http://builder.com.com/article.jhtml?id=u00120010910gcn01.htm&vf=ra

* Advanced SQL with Joins - by TechRepublic
SQL joins are a powerful tool for any database developer. There are
various types of joins but using the correct approach requires
knowledge. This article will help you put joins to work.
http://clickthru.online.com/Click?q=48-ggFbIdBVysa6yBwXlfgj1FbSnFeR

* Essential Delphi - by Marco Cantu
Free Ebook!
http://www.marcocantu.com/edelphi/default.htm

* Kylix 2 BizSnap - by Bob Swart
http://www.drbob42.com/kylix/


Otros enlaces
=============

* Delphi Prefix Registry
Ensure that your component names do not clash with someone elses by
choosing and registering a unique prefix with DPR. We've featured this
site before but I thought it important enough to list again.
http://www.delphiprefixregistry.net/

* INDUG
A forum for Delphi developers in India. It's a big group with over 380
members and during April had traffic of over 140 messages. Membership
is open to developers of all levels and the group is unmoderated. All
messages are posted in English.
http://groups.yahoo.com/group/indug

________________________________________________________________________


¡TÚ PUEDES AYUDARNOS!


Por favor danos una mano y ayúdanos a llegar a los 10.000 suscriptores
en los próximos meses. Una forma en que puedes ayudarnos es enviando
este enlace a tus amigos:

http://www.latiumsoftware.com/es/pascal/index.php3

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:

http://www.sandbrooksoftware.com/cgi-bin/TopSite2/rankem.cgi?id=latium
http://news.optimax.com/topdelphi/links.exe/click?id=70C517ECAE6E
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

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/p0035.zip
Si no dispones de acceso HTTP, entonces envía un mensaje en blanco a
<latium@...> y escribe "Internet por Email" en la línea
de asunto (subject) para así obtener a vuelta de correo mi artículo del
mismo título que te explicará como navegar por la red usando el email.
________________________________________________________________________

Página del grupo: http://espanol.groups.yahoo.com/group/boletin-pascal/
Para suscribirse/apuntarse: boletin-pascal-subscribe@...
Para cancelar/removerse: boletin-pascal-unsubscribe@...
¿Problemas para administrar tu suscripción? edspirito@...
________________________________________________________________________

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.php3

Copyright (c) 2002 por Ernesto D'Spirito. Todos los derechos reservados.
________________________________________________________________________


Jue, 23 de May, 2002 1:19 am

edspirito
Sin conexión Sin conexión
Enviar correo Enviar correo

Archivo adjunto:
p0035.zip
Tipo:
application/x-zip-compressed
Reenviar Mensaje #1 de 20 < Anterior |
Desplegar mensajes Autor Ordenar por fecha

Boletín Pascal #35 - 22-MAY-2002 INDICE 1. UNAS PALABRAS DEL EDITOR 2. APLICACIONES SIN VCL (y II) 3. APAGANDO LA PC EN UNA FECHA/HORA DETERMINADA BAJO...
Ernesto D'Spirito
edspirito
Sin conexión Enviar correo
23 de May, 2002
1:47 am
< Tema anterior  |  Tema siguiente >
Avanzado

Copyright © 2009 Yahoo! Inc. Todos los derechos reservados.
Normativa de confidencialidad - Condiciones del servicio - Reglas - Ayuda