En la actualidad, la mayor parte del desarrollo de sistemas se lleva a cabo de forma colaborativa con una combinación de varias personas o más, lo que también facilita el rápido desarrollo del sistema.
El método DLL es el más conveniente. He recopilado información en esta área con la esperanza de ayudar a algunos estudiantes necesitados (recuerdo que cuando comencé a aprender, pedir consejo era impensable). //(Copiar libro fuente)
1. Cómo escribir procedimientos de funciones:
bibliotecaFIRSTDLL;
usos
SysUtils,
Clases;
{$R*.RES}
// 1. Definir el proceso específico y el modo de interfaz de salida de la función
//--------------------------------
// función 1
// Función: función de amplificación de datos 3x
//--------------------------------
función BBnToSSnn(SourceResult:Integer):Integer;stdCall;
comenzar
si ResultadoFuente>0 entonces
Resultado:=FuenteResultado+3 //El resultado se almacena en Resultado
demás
Resultado:=FuenteResultado;
fin;
exportaciones
BBnToSSnn; //2. Definición del puerto de salida de la función.
fin.
==
==
2. Crear formulario en DLL
========================
1. En un solo paso, cree un proyecto DLL y agregue el formulario establecido.
biblioteca MGRPERSN;
usos
SysUtils,
clases,
MGRPERFM en 'MGRPERFM.pas' {FormPERSON};//1.Código de formulario (igual que un formulario normal)
{$R*.RES}
exportaciones
ShowPerSN;//2 Definición del puerto de salida de la función.
comenzar
fin.
2. Configuración del formulario establecido en DLL
=============================================
unidad MGRPERFM;
interfaz
usos
Windows, Mensajes, SysUtils, Clases, Gráficos, Controles, Formularios, Cuadros de diálogo,
ComCtrls, ToolWin, ListaImg;
tipo
TFormPERSON = clase(TForm)
Privado
{Declaraciones privadas}
público
{Declaraciones públicas}
fin;
// Las variables en estos lugares ya no se usan, cámbielas a otro lugar, de la siguiente manera (cambie una)
//var
// FormPERSON: TFormPERSON;
{Anunciar salida de función de formulario}//Cambio 2
función ShowPerSN(AHandle: THandle; ACaption: String):BOOL;
implementación
{$R *.DFM}
//definición del proceso de datos de función
función ShowPerSN(AHandle: THandle; ACaption: String):BOOL;
var
FormPERSON: TFormPERSON; //Definir la clase de formulario (lo anterior se coloca aquí)
comenzar
//Copia el identificador de la aplicación al objeto de programa apropiado de la DLL
aplicación.Handle := AHandle;
FormPERSON := TFormPERSON.Create(Application);//Crea el control TForm
intentar
FormPERSON.Caption := ACaption;
FormPERSON.ShowModal;//Mostrar este formulario
Resultado: = Falso; //devuelve valor de éxito
finalmente
FormularioPERSON.Gratis;
fin;
fin;
3. Llamar a funciones y formularios en DLL
============================
1. Llamar al método uno
---------------
implementación // Debajo de esto, escriba la DLL que llama a la función
{$R *.DFM}
// Llamada a función dentro de DLL
función BBnToSSnn(SourceResult:Integer):Entero;
StdCall externo 'FIRSTDLL.DLL';
........
2. Llamar al método dos
===============
tipo //Crea una clase de función aquí
// 1 ----------------------------------
TShowPerSN = función (AHandle: THandle; ACaption: Cadena): BOOL;
EDLLLoadError = class(Exception); //Crea una clase de registro de error al mismo tiempo.
// 1 ----------------------------------
TMAINCLTR = class(TForm) //No hay cambios aquí, el sistema lo genera automáticamente
...
procedimiento TMAINCLTR.ToolButton1Click(Remitente: TObject);
var //Evento de llamada de botón: proceso de llamada
LibHandle: THandle;
ShowPerSN: TShowPerSN;
comenzar
Application.Title:='Programa de prueba de archivos DLL del sistema de gestión de recursos humanos';
{Intentar cargar la DLL Intento de cargar el archivo DLL}
LibHandle := LoadLibrary('MGRPERSN.DLL');
intentar
si LibHandle = 0 entonces
rise EDLLLoadError.Create('No se puede cargar MGRPERSN.DLL correctamente');
@ShowPerSN := GetProcAddress(LibHandle, 'ShowPerSN');
si no (@ShowPerSN = nil) entonces
ShowPerSN(Application.Handle, 'Gestión de información personal')//Llamar el formulario
demás
RaiseLastWin32Error;
finalmente
FreeLibrary(LibHandle); // Descargar la DLL.
fin;
fin;
============== FIN ===================
Blog del autor: http://blog.csdn.net/dgc/