Archivo

Archivo para la categoría ‘Delphi’

Generar una búsqueda (Like *) utilizando SQL

martes, 4 de marzo de 2008 2 comentarios
Share Button

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

Imagen del ejemplo

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 Descargar ejemplo

Categories: Delphi, Ejemplos Tags: ,

Abrir un fichero de Excel, escribir en celdas y ocultar hojas

lunes, 3 de marzo de 2008 6 comentarios
Share Button

Éste ejemplo muestra cómo realizar algunas sencillas operaciones sobre un documento de Excel a través de Automatizació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)
  • Activar otra(Worksheets.Item[i].Select).

Download Descargar ejemplo

Categories: Delphi, Ejemplos Tags:

Trocear un Bitmap a modo de puzzle en n imagenes

domingo, 2 de marzo de 2008 Sin comentarios
Share Button

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

Imagen del ejemplo

Las imágenes resultantes de la división se guardan en disco.

Download Descargar ejemplo

Categories: Delphi, Ejemplos Tags: ,

API LockFile para detectar instancias de aplicación activas en red

sábado, 1 de marzo de 2008 Sin comentarios
Share Button

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

Imagen del ejemplo

Download Descargar ejemplo

Categories: Delphi, Ejemplos Tags: ,

Realizar búsqueda incremental y visualizarla sobre un DBGrid

martes, 26 de febrero de 2008 3 comentarios
Share Button

En este ejemplo se muestra de forma sencilla de realizar una 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).

Busqueda incremental

Download Descargar ejemplo

Categories: Delphi, Ejemplos Tags: , ,

Sistema de Plug-ins utilizando packages dinámicos

domingo, 24 de febrero de 2008 1 comentario
Share Button

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.

Imagen del ejemplo.

Download Descargar ejemplo

Categories: Delphi, Ejemplos Tags: , , ,

Convertir un Menu en un TreeView

domingo, 24 de febrero de 2008 3 comentarios
Share Button

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.

Imagen del ejemplo

Download Descargar ejemplo

Categories: Delphi, Ejemplos Tags: , ,

Obtener la lista de procesos ejecutándose

domingo, 24 de febrero de 2008 1 comentario
Share Button

Con ésté trozo de código se puede obtener la lista de los procesos (nombre del ejecutable) que están en marcha en ese momento en la máquina:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var
  i: Integer;
  bContinue: BOOL;
begin
   // Limpiar la lista
   ListBox1.Items.Clear;
   // Recoge la lista de procesos en éste momento
   aSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
   aProcessEntry32.dwSize := SizeOf(aProcessEntry32);
   // Acceder al primer proceso
   bContinue := Process32First(aSnapshotHandle, aProcessEntry32);
   // Recorerr los procesos activos
   while (Integer(bContinue) <> 0) do begin
      // Añadirlo a la lista
      ListBox1.Items.Add(ExtractFileName(aProcessEntry32.szExeFile));
      // Hay más?
      bContinue := Process32Next(aSnapshotHandle, aProcessEntry32);
   end;
   // cerrar la estructura
   CloseHandle(aSnapshotHandle);

Utilizando aProcessEntry32 se puede obtener más información de cada uno de los procesos, como:

* Identificador
* Nombre competo
* …

IntToHex(aProcessEntry32.th32ProcessID, 4)
aProcessEntry32.szExeFile

Categories: Delphi, Trucos Tags: , , ,

Crear, mover y redimensionar controles en Runtime (IDE)

viernes, 15 de febrero de 2008 3 comentarios
Share Button

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.

Ejemplo de Runtime Designer

Download Descargar ejemplos

Categories: Delphi, Ejemplos Tags: , , ,

Mover controles de un form en Runtime

sábado, 2 de febrero de 2008 2 comentarios
Share Button

Creando tres sencillos procedimientos en un formulario se pueden mover controles visuales en Runtime colocados en un form siempre que deriven de TControl. Basta con definir los siguientes procedimientos y asignarlos a todos los controles que queramos mover; Además se deben definir dos variables en la parte privada del form:

NOTA: Los procedimientos se deben definir no en la parte privada, sino como eventos del form.

En la parte final de artículo se puede descargar un ejemplo compilado con Delphi 6.

  • procedure MouseMove;
  • procedure MouseUp;
  • procedure MouseDown;
// Definirlos como ventos del form
procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure MouseUp(Sender: TObject; Button: TMouseButton; 
                           Shift: TShiftState; X, Y: Integer);
procedure MouseDown(Sender: TObject; Button: TMouseButton; 
                               Shift: TShiftState; X, Y: Integer);
 
...
 
// Definir éstas variables en la parte privada...
private
  Capturing:Boolean;
  MouseDownSpot:TPoint;
 
....
 
// IMPLEMENTACION
// Procedimintos a asignar a los eventos de los controles...
procedure TForm1.MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
  // Estamos capturando?
  if Capturing then begin
    // Mover el componente
    TControl(Sender).Left := TControl(Sender).Left - (MouseDownSpot.x - x);
    TControl(Sender).Top := TControl(Sender).Top - (MouseDownSpot.y - y);
  end;
end;
 
 
procedure TForm1.MouseUp(Sender: TObject; Button: TMouseButton; 
                            Shift: TShiftState; X, Y: Integer);
begin
  // Estamos capturando?
  if Capturing then begin
    ReleaseCapture; // Liberar la captura
    Capturing := false;
    TControl(Sender).Left := TControl(Sender).Left - (MouseDownSpot.x - x);
    TControl(Sender).Top := TControl(Sender).Top - (MouseDownSpot.y - y);
  end;
end;
 
procedure TForm1.MouseDown(Sender: TObject; Button: TMouseButton; 
                                          Shift: TShiftState; X, Y: Integer);
begin
  // Comenzar la captura y movimiento
  Capturing := true;
  MouseDownSpot.X := x;
  MouseDownSpot.Y := Y;
end;

Se puede descargar un ejemplo:

Descargar

Categories: Delphi, Trucos Tags: , ,