Autor: Gao Sumei
Manera sencilla de configurar motores de datos (BDE, SQL Link)
Cuando se distribuye el programa de base de datos, se debe llevar el motor de datos (BDE, SQL Link), y después de instalar el programa en el cliente, se debe configurar el motor de datos, como nombre de usuario (nombre de usuario), contraseña (PassWord) , etc. Si se requiere una configuración manual, la carga de trabajo será relativamente grande. En este momento, podemos usar InstallShield For Delphi para implementar fácilmente la configuración. Cuando se utiliza InstallShield para Delphi para crear un programa de instalación, hay un archivo de texto *.iwz en el directorio donde se genera el programa de instalación. Solo necesita agregarlo manualmente al fragmento [IDAPI Alias]. Por ejemplo:
[Alias de IDAPI]
nombre de usuario = SYSDBA
contraseña=clave maestra
Después de instalar el programa, el motor de datos se configura automáticamente.
Cómo hacer una tira de botones rápida
Cada botón gráfico en la barra de botones rápidos representa una función de uso común. Al mismo tiempo, el tamaño de estos botones gráficos es mayor que el de los íconos normales. Se pueden colocar gráficos más grandes y vívidos, e incluso se pueden adjuntar indicaciones breves. muy útil para Es útil para los usuarios realizar las funciones más utilizadas. Por las razones anteriores, cada vez más aplicaciones de Windows adoptan tiras de botones rápidos para mejorar la interfaz de la aplicación. Al programar en Delphi, el autor utiliza dos métodos diferentes para implementar una barra de botones rápidos. Este artículo combina un ejemplo de cómo hacer una barra de botones rápidos con dos grupos de seis botones y enumera los pasos de diseño específicos de estos dos métodos.
1. Método de generación combinada
(1) Coloque un objeto Panel1 en el formulario como portador del botón gráfico.
(2) Establezca el atributo Título del Panel1 en vacío, el atributo Alinear en alTop y ajuste su altura al tamaño apropiado.
(3) Coloque seis botones SpeedButton en el Panel1 (se selecciona SpeedButton porque tiene características flotantes).
(4) Coloque dos objetos Bisel en el Panel1 y ajuste su posición y tamaño para separar los grupos de botones.
(5) Ajuste el tamaño y la posición de SpeedButton1 en Panel1.
(6) Seleccione SpeedButton1 y establezca su propiedad Flat en True.
(7) Haga clic en el pequeño botón de puntos suspensivos correspondiente al atributo Glifo de SpeedButton1, abra la ventana del Editor de imágenes y seleccione un icono que simboliza "consulta". Establezca la propiedad ShowHint en True y la propiedad Hint en "Query".
(8) Siga los pasos (5) a (7) para configurar las propiedades de los botones SpeedButton restantes.
De esta forma se completa una tira de botones rápida. Cuando se ejecuta, los botones rápidos se muestran de forma flotante. Cuando se mueve el mouse sobre ellos, se muestra el contorno del botón y se muestra un pequeño mensaje.
2. Tomar prestado el método de generación de ToolBar
(1) Coloque un objeto ToolBar1 en el formulario.
(2) Establezca las propiedades EdgeBorders.ebLeft, ebTop, ebRight y ebButtom de ToolBar1 en True; la propiedad Flat en True;
(3) Seleccione ToolBar1, haga clic derecho en el menú rápido, haga clic en NewButton y NewSeparator respectivamente para agregar seis botones ToolButton y dos líneas separadoras.
(4) Seleccione cualquier botón ToolButton y ajuste su tamaño al tamaño apropiado. Todos los ToolButtons también se ajustarán al mismo tiempo.
(5) Establezca la propiedad BorderWidth de ToolBar1 en 3 para ajustar la posición de ToolButton.
(6) Coloque un objeto ImageList1 en el formulario y establezca los valores de sus propiedades Alto y Ancho para acomodar imágenes de mayor tamaño.
(7) Haga doble clic en ImageList1 y cargue seis imágenes respectivamente a través del botón "Agregar", correspondiente a los seis ToolButtons en ToolBar1.
(8) Establezca la propiedad Imágenes de ToolBar1 en ImageList1.
(9) Establezca el atributo ShowHint de los seis ToolButtons en True y establezca sus respectivos atributos de aviso pequeño Sugerencia.
(10) También puede configurar HotImages de ToolBar1 para especificar la imagen establecida cuando el mouse apunta al botón.
La barra de botones rápidos implementada con ToolBar es similar en apariencia a la creada con el primer método.
Los dos métodos anteriores pueden implementar una barra de botones rápida, pero cada uno tiene sus propias ventajas: el primer proceso de diseño es relativamente simple, el segundo método proporciona más funciones, como usar HotImages para especificar la imagen configurada cuando el mouse apunta al botón; . Es posible que los lectores deseen elegir uno y continuar mejorando sus funciones.
Cómo crear una tabla temporal
La entrada de datos es una parte inevitable del desarrollo de programas de bases de datos. En la estructura Cliente/Servidor, es posible que el cliente necesite ingresar un lote de datos y luego enviarlo a la base de datos backend del servidor. Esto requiere que se establezca una tabla de datos temporal localmente (cliente) para almacenar los datos ingresados por el usuario. envío, se borrará la tabla de datos local. Los beneficios de este método son: mejorar la eficiencia de las entradas y reducir la carga de la red.
Dado que la cantidad de datos ingresados por los usuarios a la vez es generalmente pequeña (no más de unos pocos cientos de registros), la tabla temporal se puede establecer en la memoria, lo que resulta en un procesamiento más rápido. Hay dos formas de crear una tabla temporal:
1. Utilice el control de consultas para crear una tabla temporal.
Paso 1: coloque el control de consulta (TQuery) en el formulario y configure la tabla de datos conectada.
Paso 2: agregue la siguiente declaración:
TQuery.CachedUpdates=Verdadero;
TQuery.RequestLive=Verdadero.
Paso 3: Agregar una subsentencia Where después de la instrucción SQL original. Se requiere que el resultado de la consulta SQL esté vacío después de agregar esta subsentencia Where.
Por ejemplo:
SELECT Biolife."Especie No", Categoría, Nombre_común, Biolife."Nombre de la especie", Biolife."Longitud (cm)", Longitud_In, Notas, Gráfico
DE "biolife.db" Biolife
donde Biolife.Categoría=′A′ y Biolife.Categoría=′B′
De esta forma se crea la tabla temporal.
2. Utilice código para crear una tabla temporal.
El código de función es el siguiente:
función CreateTableInMemory(const AFieldDefs:TFieldDefs):
TDataSet;
var TempTable:TClientDataSet;
comenzar
Tabla temporal:=nil;
Resultado:=nulo;
si AFieldDefs〈〉nil entonces
comenzar
intentar
TempTable:=TClientDataSet.Create(aplicación);
TempTable.FieldDefs.Assign(AFieldDefs);
TempTable.CreateDataSet;
Resultado:=(TempTable como TDataSet);
Excepto
si TempTable〈〉nil entonces TempTable.Free;
Resultado:=nulo;
aumentar;
fin
fin
fin;
Llámelo en el programa de la siguiente manera:
Procedimiento TForm1.Button1Click(Remitente: TObject);
var ADataSet:TDataSet;
comenzar
ADataSet:=TDataSet.Create(Self);
con ADataSet.FieldDefs hacer
comenzar
Agregar(′Nombre′,ftString,30,False);
Agregar(′Valor′,ftInteger,0,False);
fin;
con DataSource1 hacer
comenzar
Conjunto de datos:=CreateTableInMemory(ADataSet.FieldDefs);
Conjunto de datos.Abierto;
fin;
ADataSet.Gratis;
fin;
De esta forma se crea la tabla temporal.
El método 1 es fácil de usar, pero debido al uso de controles de consulta, es necesario consultar la base de datos backend del servidor al borrar los datos, por lo que la velocidad es un poco más lenta y no es adecuado para situaciones en las que cada campo de la tabla temporal es compuesto por campos de varias tablas de datos. El método 2 tiene una amplia gama de aplicaciones y es rápido, pero requiere escribir código.
Usando funciones en la base de datos InterBase
Cuando los programadores utilizan InterBase como base de datos backend, a menudo les resulta incómodo porque proporciona muy pocas funciones (sólo cuatro), lo que hace imposible escribir fácilmente procedimientos almacenados complejos. InterBase en sí no puede escribir funciones, pero puede usar funciones externas (llamar funciones en la DLL). El siguiente ejemplo muestra cómo declarar la función SUBSTR en InterBase.
DECLARAR FUNCIÓN EXTERNA SUBSTR
CSTRING(80), PEQUEÑO, PEQUEÑO
DEVUELVE CSTRING(80)
ENTRY_POINT "IB_UDF_substr" MODULE_NAME "ib_udf"
Entre ellos: MODULE_NAME es el nombre de la DLL y ENTRY_POINT es el nombre de la función.
Se puede utilizar después de la declaración, por ejemplo:
seleccione SUBSTR(país)
del país
Este ejemplo utiliza la base de datos IBLocal que viene con la instalación de Delphi. Los usuarios también pueden escribir sus propias funciones para expandir InterBase.