En
ésta sección pretendo recopilar ejempos de código en Delphi que durante
mucho tiempo e ido realizando por diferentes necesidades; Algunos por
pura y propia investigación, otros por simples pruebas, algunos más que
en su momento he posteado en grupos y foros y el resto por razones
varias...
Como ya os he comentado muchos son pruebas o
simples "experimentos", así que es posible que los comentarios "brillen
por su ausencia", pero aún así espero que sean de utilidad.
Dibujar
porcentaje en una celda de un Grid
En este ejemplo se muestra cómo dibujar manualmente una barra de
porcentaje en una celda de un DBGrid. Presuponemos que en la celda en
la que vamos a dibujar la barra se está mostrando un valor entre 0 y
100 que pertenece a un porcentaje.
Este ejemplo muestra cómo se hace para un componente TDBGrid estándard;
No es muy difícil adaptarlo para utilizarlo en un TStringGrid o
similar.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Realizar
búsqueda incremental y visualizarla sobre un DBGrid
En este ejemplo se muestra de forma sencilla de realizaruna búsqueda
incremental sobre un campo y mostrar el resultado de la búsqueda sobre
un DBGrid estandard.
Para este ejempo se ha utilizado un TClientDataset, de forma que todos
los datos estén cargados en memoria (en local).
Hay que tener en cuenta que este método puede ser costoso si la tabla
es muy grande o los datos datos no se encuentran en local (cursores
server-side, por ejemplo)
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Convertir
un Menu en un TreeView
En este ejemplo se muestra de forma sencilla cómo "pasar" o convertir
un
Menu existente (componente TMainMenu) en un TTreeView; Conservando la
jerarquía de los elementos y asignando las imágenes que ya existan en
el ejemplo.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Sistema
de Plug-ins utilizando packages dinámicos
Sencillo
ejemplo que muestra cómo utilizar packages dinámicos
en una aplicación para obtener caraterísticas de plug-ins.
Los
packages (BPL's) con diferentes funcionalidades se crean de forma
independiente y el programa se encarga de cargarlos al inicio y
"colgarlos" o añadirlos a un menú en la aplicación principal.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Arrastrar
elementos entre dos TListBox
Se
trata de un ejemplo de cómo arrastrar elementos entre dos componentes
de tipo TListBox utilizando el ratón.
Está basado
en un formulario que ya trae el propio Delphi como ejemplo
y accesible desde el menú de:
File/New/Other/Forms/Dual
List
Box
En este ejemplo se añaden 4 procedimientos que
introducen la posibilidad de mover elementos utiilizando el ratón y que
en el original sólo se puede realizar utilizando controles del
formulario.
La técnica de Drag & Drop que se usa en este ejemplo
entre dos TListBox, puede ser fácilmente exportable para utilizarla con
otros controles; StringGrids, DBGrid,...
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Descargar
un fichero y copiarlo en local (Indy)
Se
trata de un sencillo ejemplo para mostrar cómo descargar un fichero
desde internet y copiarlo en local.
En su día lo desarrollé
para montar la actualización en línea de una aplicación.
Previamente
a esto, se descargaba un fichero de texto para comprobar ambas
versiones; Si la actual estaba anticuada, se descargaba la nueva
utilizando éste sistema.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Crear,
mover y redimensionar controles en Runtime (IDE)
Se
trata de un sencillo ejemplo para mostrar el funcionamiento del
componente
TSelectOnRuntime
que se encuentra en la
sección de componentes de ésta
página. De una forma muy burda (pero suficiente para ver el
funcionamiento del componente) se ilustra con una imitación a IDE de
Delphi cómo se pueden crear y modificar diferentes componentes en
Runtime.
Se puede ver cómo se crean componenetes en
"tiempo de ejecución" y cómo se mueven y redimensionan utilizando el
componente TSelectOnRuntime.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Simular
barras flotantes en torno al formulario
La
idea de éste ejemplo llega a partir de una petición de obtener en un
formulario unas barras de herramientas (toolbars) similares a las que
aparecen en los Expertos para Delphi
CnPack
(muy buenos y gratuítos, por cierto).
En el caso de los
CnPack,
cuando
aparece un formulario en el IDE de Delphi, aparecen varias barras de
herramientas "flotantes" que se "pegan" literalmente al formulario.
De
forma que si mueves el form, automáticaente se mueven las barras
también.
Una imagen descriptiva podría ser esta:
La forma de
conseguirlo es utlizando el mensaje WM_WINDOWPOSCHANGING
accesible desde los descencientes de TCustomForm.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
API
LockFile para detectar instancias de aplicación activas en red
Éste
ejemplo muestra cómo utilizar la API LockFile para
detectar aplicaciones que están ejecutándose.
La situación
es la siguiente: Una aplicación que se ejecuta en Red. Puede haber
muchos puestos/estaciones que la están ejecutándo simultáneamente. Y
nos interesa saber en cada momento qué puestos la ejecutan.
Las
ventajas de éste método son su sencillez (poco código),
fiabilidad (ya que al ser bloqueos controlados por el sistema
operativo, si algunas estación "se cuelga" no hace falta ningun código
de recuperación de identificadores, el sistema librera el bloqueo) y
pocos recursos, ya que aunque bloqueemos mucha posiciones del fichero,
el tamaño de éste simpre será de 0 bytes.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Ejemplo
de tratamiento de "Planos y figuras"
Es bantante común encontrarse en programación con
aplicaciones que requieren una interface del tipo "plano y figuras".
Son aquellos programas cuya entrada de datos se realiza a partir de un
formulario que presenta un plano y donde se deben poder "colocar"
elementos/objetos que después se utilizarán en el programa.
En éstos proyectos suele haber dos
"modos de trabajo" básicos:
- Modo
Administrador:
Se utiliza para configurar el escenario de trabajo. Seleccionar un
Mapa, y crear los objetos, con las propiedades que luego utilizará el
programa. Un mismo programa puede trabajar con varios escenarios.
- Modo
Explotación: Es el modo en que se trabaja con el programa
normalmente; Se basa en una o varias configuraciones que se han creado
anteriormente en el "modo administrador".
Como ayuda a éste tipo de Interfaces de cara al usuario, se han creado
los componentes
TSaveComps
y
TSelectOnRuntime
de la
sección
de componentes de ésta página. Y como muestra para éstos dos
componentes se ha creado ésta demo.
Muestra cómo sería su utilización en una interface sencilla, que en
éste caso
simula
un restaurante. Muestra el funcionamiento básico de ambos
modos de trabajo.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Ejemplo
sobre Threads ampliado (v. 2)
Se ha ampliado el ejemplo anterior sobre threads, para
mostrar cómo se
puede configurar el
número de threads que se deseen para ejecutar una tarea
concreta. Se puede definir un número máximo (por el usuario) y se
muestra cómo se van ejecutando threads.
A medida que los
primeros van acabando, se lanzan nuevos hasta completar todo el proceso.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Ejemplo
sobre Threads
Este ejemplo es una muestra simple de como crear diferentes
Threads y hacerlos funcionar; Es básico pero puede servir como comienzo
para aprender el funcionamento. Como crearlos, ponerlos en marcha,
pausarlos/reanudarlos y modificar su prioridad.
Hay diferentes tipos, aunque al final la estructura de todos ellos es
similar.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Trocear
un Bitmap a modo de puzzle en n imagenes
Éste
ejemplo muestra cómo "trocear" una imagen (un bitmap en éste caso) en n
pequeñas imágenes a "modo de cudrícula"; El número de imágenes (de
ancho y de alto) se puede configurar y finalmente las n partes de la
imagen se guardan en disco.
Las
imágenes resultantes de la división se guardan en disco.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Tamaño
de ficheros/directorios y espacio en disco
Éste
ejemplo muestra cómo calcular el tamaño de ficheros y el tamaño de
directorios; El procedimiento para los directorios es recursivo. Además
implementa varios sistemas para obtener el espacio de los discos, tanto
es espacio total como es espacio libre.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Abrir
un fichero de Excel, escribir en celdas y ocultar hojas
Éste ejemplo muestra cómo realizar
algunas sencillas operaciones sobre un documento de Excel a través de
Autoimatización, sin utilizar los componentes de la paleta Servers de
Delphi.
En mi caso necesitaba
hacer pruebas para escribir
en una celda (Worksheets.Items[i].Cells),
ocultar una hoja
del libro (Worksheets.Items[i].Visible)
y activar
otra(Worksheets.Item[i].Select).
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Ejecutar
un procedimiento/función a partir de su nombre (RTTI)
Éste ejemplo muestra cómo ejecutar un método o
función definido en otro formulario, a partir del nombre de
ese método. Para ello se utiliza RTTI (Runtime Type
Information); Es suficiente con que el procedimiento que queremos
ejecutar se encuentre en la parte published del formulario.
Podemos probar en el ejemplo con varios procedimientos. Si el
procedimiento con ese nombre no existe, devolverá un error.
Muy útil en casos en que no podemos añadir dependencias entre packages
o cuando determinados métodos están almacenados por su nombre en la
Base de Datos (por ejemplo).
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Generar
una búsqueda (Like *) utilizando SQL
Éste ejemplo muestra cómo crear una sentencia SQL para
realizar búsquedas sobre una tabla del estilo de "...Campo LIKE 'Pes*'
"; Sencillo y simple, utiliza la Base de Datos de pruebas DBDemos que viene
con Delphi.
En el
ejemplo
se muestra cómo construir la sentencia SQL (que se muestra en la parte
inferior) a partir del texto que se introduce en el Edit. Esta misma
consulta es la que se utiliza en un control de búsqueda (TQuery) para
filtrar datos de la tabla.
En este caso el texto "an"
se busca en el
campo Common_Name
de la tabla utilizando el operador LIKE.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Color
y
alineación en celdas de un StringGrid
Éste ejemplo muestra cómo programar el evento OnDrawCell de un TStringGrid para
modificar la alineación y color de las celdas pertenecientes a una
columna completa; Además implementa los metodos de Importar desde un
fichero separado por comas e interacción con el portapapeles de filas
completas (Cortar/Copiar/Pegar).
En este ejemplo está el código
necesario para:
- Cambiar
la alineacióin de las columnas del StringGrid (columnas 0, 1 2).
- Cambiar
el color de una columna.
- Cambiar el color de una
fila.
- Realizar operaciones sobre el portapapeles
con una o varias filas.
- Cargar (Importar) datos a
un StringGrid desde un fichero.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Crear/destruir
componentes (imagenes) en Runtime y moverlas con el ratón
Éste ejemplo surgió hace tiempo en los foros a raiz de un
problema típico, en el que existe una imagen de fondo (plano) y se
deben posicinar sobre ésta otras imagenes a modo de "elementos" (un bar
y las mesas, la planta de un hospital y las camas, un plano de una
terminal y el posicionamiento de las gruas,...).
Se trata de crear/destruir objetos y poder (en ejecución) moverlos
utilizando el ratón;
Es una ampliación del ejemplo Selecciconar
Shapes visualmente que hay más adelante.
Este
ejemplo
sirve también para mostrar cómo crear/destruir componentes visuales (en
este caso son TImage), en ejecución mediante código. El sistema es muy
similar para otros tipos de componentes.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Crear
un menu de aplicación a partir de texto (o fichero o campo de Base de
Datos)
Éste ejemplo muestra cómo crear en una aplicación, un menú
dinámicamente a partir de texto; Normalmente la opción más común es que
éste texto se almacenbe en un fichero o incluso en Base de Datos. Para
el texto ya está almacenado en un memo.
En el ejemplo podemos ver cómo crear
menús en
tiempo de ejecución y además cómo asignarles los eventos y acciones
necesarias.
Además está implementada la creación del menú a
partir de un formato
de Texto. En este caso almacenado en un TMeno, pero
fácilmente exportable a otros formatos.
Es ideal para aplicaciones que trabajen con menús dinámicos, con algun
sistema de plugins (y el menú no sea fijo) o para aquellas que por
temas de seguridad deban fucncionar con diferentes menús
(segun los diferentes permisos de los usuarios, por ejemplo).
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Realizar
un Scroll manual (por código) en un DBGrid
Éste ejemplo muestra cómo hacer manualmente un Scroll horizontal (en
éste caso hacia la derecha, aunque se realiza de la misma forma en
sentido contrario) sobre el TDBGrid estandard de Delphi; Utilizando
mensajes de Windows, que se envían al componente de Grid: WM_HSCROLL con el
parámetro SB_LINERIGHT
o SB_LINELEFT
dependiendo de la dirección en que desemos movernos.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Seleccionar
Shapes visualmente
La idea de éste ejemplo era realizar unas pruebas para
simular en ejecución, la
selección de objetos, como normalmente se hace en el IDE
de Delphi; Hice pruebas con dos métodos de selección; Uno utilizando
las típicas marcas que aparecen el los vértives de un componente y otro
con una outline -linea en la parte exterior del control-.
Hay implementados dos tipos de selección; Una es modificando las
propiedades del propieo control (en este caso el Borde de los TShapes
-aunque con otros controles puede hacerse algo similar-) y la otra
añadiendo una marcas en ejecución alrededor del Componente; Este
segundo caso parece que podría ser más estandard si es necesario
hacerlo con diferentes tipos de componentes.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba
Ejecutar
DTS (SQL Server) desde Delphi
Con éste ejemplo se muestra cómo ejecutar un
DTS (Data Transformation
Services) creado en
SQL
server 2000 desde un programa de Delphi 6.
Para trabajar con DTS desde Delphi, se debe generar la unit
DTS_TLB a partir del
objeto "
Microsoft
DTSPackage Object Library (Versión X.X)".
Para generar la unit
se deben seguir los pasos desde el IDE de Delphi:
- Project / Import Type Librery
- Seleccionar:
"Microsoft DTSPackage Object Library (Versión X.X)"
- Create
Unit
La
unit creada se deberá añadir al
USES
del proyecto.
Download

D6,
D7, D2005,
D2006, D2007

Freeware

Código fuente

Incluye EXE (demo)
Ir arriba