Derzeit werden die meisten Systementwicklungen kollaborativ mit mehreren oder mehreren Personen durchgeführt, was auch die schnelle Entwicklung des Systems erleichtert.
Die DLL-Methode ist die bequemste. Ich habe einige Informationen in diesem Bereich zusammengestellt, in der Hoffnung, einigen bedürftigen Schülern zu helfen (ich erinnere mich, als ich mit dem Lernen anfing, war es undenkbar, um Rat zu fragen). //(Quellbuch kopieren)
1. So schreiben Sie Funktionsprozeduren:
BibliothekFIRSTDLL;
verwendet
SysUtils,
Klassen;
{$R *.RES}
// 1. Definieren Sie den spezifischen Prozess- und Ausgabeschnittstellenmodus der Funktion
//--------------------------------
// Funktion 1
// Funktion: 3-fache Verstärkungsfunktion der Daten
//--------------------------------
Funktion BBnToSSnn(SourceResult:Integer):Integer;stdCall;
beginnen
wenn SourceResult>0 dann
Result:=SourceResult+3 //Das Ergebnis wird in Result gespeichert
anders
Ergebnis:=SourceResult;
Ende;
Exporte
BBnToSSnn; //2. Definition des Funktionsausgabeports
Ende.
==
==
2. Formular in DLL erstellen
=======================
1. Erstellen Sie in einem Schritt ein DLL-Projekt und fügen Sie das festgelegte Formular hinzu
Bibliothek MGRPERSN;
verwendet
SysUtils,
Klassen,
MGRPERFM in 'MGRPERFM.pas' {FormPERSON};//1.Formularcode (wie ein normales Formular)
{$R *.RES}
Exporte
ShowPerSN;//2. Definition des Funktionsausgabeports
beginnen
Ende.
2. Einstellungen des in der DLL festgelegten Formulars
=========================================
Einheit MGRPERFM;
Schnittstelle
verwendet
Windows, Nachrichten, SysUtils, Klassen, Grafiken, Steuerelemente, Formulare, Dialoge,
ComCtrls, ToolWin, ImgList;
Typ
TFormPERSON = Klasse(TForm)
Privat
{Private Erklärungen}
öffentlich
{Öffentliche Erklärungen}
Ende;
// Die Variablen an diesen Stellen werden nicht mehr verwendet. Ändern Sie sie wie folgt an eine andere Stelle (eine ändern).
//var
// FormPERSON: TFormPERSON;
{Beenden der Formularfunktion ankündigen}//Änderung 2
function ShowPerSN(AHandle: THandle; ACaption: String):BOOL;
Durchführung
{$R *.DFM}
//Funktionsdatenprozessdefinition
function ShowPerSN(AHandle: THandle; ACaption: String):BOOL;
var
FormPERSON: TFormPERSON; // Definieren Sie die Formularklasse (das Obige wird hier platziert)
beginnen
//Kopieren Sie das Anwendungshandle in das entsprechende Programmobjekt der DLL
application.Handle := AHandle;
FormPERSON := TFormPERSON.Create(Application);//Erstellen Sie das Steuer-TForm
versuchen
FormPERSON.Caption := ACaption;
FormPERSON.ShowModal;//Dieses Formular anzeigen
Ergebnis := False; //Erfolgswert zurückgeben
Endlich
FormPERSON.Free;
Ende;
Ende;
3. Aufrufen von Funktionen und Formularen in der DLL
==========================
1. Rufen Sie Methode eins auf
---------------
Implementierung // Darunter schreiben Sie die DLL, die die Funktion aufruft
{$R *.DFM}
//Funktionsaufruf innerhalb der DLL
Funktion BBnToSSnn(SourceResult:Integer):Integer;
StdCall external 'FIRSTDLL.DLL';
........
2. Rufen Sie Methode zwei auf
==============
type // Hier eine Funktionsklasse erstellen
// 1 -------------------------------------------------
TShowPerSN = function (AHandle: THandle; ACaption: String): BOOL;
EDLLLoadError = class(Exception); //Erstellen Sie gleichzeitig eine Fehleraufzeichnungsklasse
// 1 -------------------------------------------------
TMAINCLTR = class(TForm) //Keine Änderung hier, das System generiert es automatisch
...
procedure TMAINCLTR.ToolButton1Click(Sender: TObject);
var //Button-Aufrufereignis: aufrufender Prozess
LibHandle: THandle;
ShowPerSN: TShowPerSN;
beginnen
Application.Title:='Testprogramm für die DLL-Datei des Personalverwaltungssystems';
{Versuch, die DLL zu laden Versuch, die DLL-Datei zu laden}
LibHandle := LoadLibrary('MGRPERSN.DLL');
versuchen
wenn LibHandle = 0 dann
raise EDLLLoadError.Create('MGRPERSN.DLL konnte nicht erfolgreich geladen werden');
@ShowPerSN := GetProcAddress(LibHandle, 'ShowPerSN');
wenn nicht (@ShowPerSN = nil), dann
ShowPerSN(Application.Handle, 'Personnel Information Management')//Rufen Sie das Formular auf
anders
RaiseLastWin32Error;
Endlich
FreeLibrary(LibHandle); // Entladen der DLL.
Ende;
Ende;
============== ENDE ==================
Blog des Autors: http://blog.csdn.net/dgc/