Plugin-Funktionen
library filedll;
uses
SysUtils,
Classes,
Forms,
Windows,
Dialogs,
DLLForm in 'DLLForm.pas' {frmMain};
{$R *.res}
{##############################################################################################################}
{##############################################################################################################}
{ GÜLTIG AB AT HTML EDITOR 32.3 }
{##############################################################################################################}
{##############################################################################################################}
//---------------------------------------------------------------------
// BEARBEITET DEN STRING OHNE FORMULAR UND GIBT IHN ZURÜCK
// DIE MAX. GRÖßE EINES STRINGS, DER ZU VB OHNE FEHLER ZURÜCKGEGEBEN
// WERDEN KANN, IST 1200 ZEICHEN (1200 BYTE - SCHON MAL 10000 BYTE) -
// SPEICHERHANDLING VON VB
// DAGEGEN KANN EIN STRING VON MAX. 64000 ZEICHEN PROBLEMLOS
// ÜBERNOMMEN WERDEN
//---------------------------------------------------------------------
function pluginrun(text: PChar) : PChar; stdcall;
var
Form : TfrmMain; //FORM
runresult : Integer; //DUMMYRESULT
begin
Form := TfrmMain.Create(Application); //FORM AUFBAUEN
//Form.Memo.Text := text; //AUS HAUPTANWENDUNG ÜBER DEN WRAPPER ÜBERGEBENEN STRING
runresult := Form.ShowModal; //FORM MODAL! ANZEIGEN
//****************************************************************************************************
// RÜCKGABE-TYPEN -> UNBEDINGT BEACHTEN -> MUß MIT RÜCKGABETYPEN IN DER FUNKTION pluginbackvalue
// ÜBEREINSTIMMEN !!!
//****************************************************************************************************
//------------------------------------------------------------------------------------------
//WENN EINE WERTERÜCKGABE AN AT HTML EDITOR ERFOLGEN SOLL, MUß DIESE result-ZEILE AKTIVIERT
//WERDEN UND DIE NACHFOLGENDE AUSKOMENTIERT
//BETRIFFT result := 1; UND result := 2; IN DER FUNKTION pluginbackvalue
//------------------------------------------------------------------------------------------
result := Pchar(backstring); //INHALT DER GLOBALEN VARIABLE ZURÜCKGEBEN
//backstring SOLLTE IMMER EINE VARIABLE VOM TYP string SEIN
//------------------------------------------------------------------------------------------
//WENN KEINE RÜCKGABE ERFOLGEN SOLL, MUß DIESE result-ZEILE AKTIVIERT WERDEN UND DIE OBER
//AUSKOMMENTIERT
//BETRIFFT result := 0; UND result := 3; IN DER FUNKTION pluginbackvalue
//------------------------------------------------------------------------------------------
//result := nil; //NICHTS ZURÜCKGEBEN
//****************************************************************************************************
Form.Free; //FORM FREI GEBEN - ENTLADEN
end;
{##############################################################################################################}
{##############################################################################################################}
//---------------------------------------------------------------------
// VARIABLE, DIE FESTLEGT, OB EINE WERTERÜCKGABE ERFOLGEN SOLL ODER
// NICHT - ALSO NUR TEXT WIRD ZUR WEITERVEARBEITUNG ÜBERNOMMEN
//---------------------------------------------------------------------
function pluginbackvalue : Integer; stdcall;
begin
//*********************************************************************************
//MITTELS DER RÜCKGABETYPEN KANN DAS VERHALTEN VON AT HTML EDITOR BEEINFLUßT WERDEN
//*********************************************************************************
// RÜCKGABETYP | ERKLÄRUNG | EINSTELLUNG IN ANDERER FUNKTION
//-------------------------------------------------------------------------------------------------------------
// result := 0; | ES WIRD KEIN WERT ZURÜCKGEGEBEN | FUNKTION: pluginrun, RÜCKGABE: result := nil;
// result := 1; | TEXT WIRD ZURÜCKGEGEBEN | FUNKTION: pluginrun, RÜCKGABE: result := PChar(Text);
// result := 2; | DATEINAME WIRD ZURÜCKGEGEBEN | FUNKTION: pluginrun, RÜCKGABE: result := PChar(Dateiname);
// result := 3; | DATEINAME WIRD AN PLUGIN ÜBERGEBEN| FUNKTION: pluginrun, RÜCKGABE: result := nil;
// ZU BEACHTEN IST, DAß BEI result := 2; DIE DATEI MIT DEM KOMPLETTEN PFAD ZURÜCKGEGEBEN WERDEN MUß !
// WENN TEXT AN DAS PLUGIN ÜBERGEBEN WERDEN SOLL, MUß DIESER ZUVOR MARKIERT WERDEN. WIRD KEIN TEXT
// MARKIERT, WIRD AUCH KEIN TEXT AN DAS PLUGIN ÜBERGEBEN !
//result := 0;
//result := 1;
result := 2;
//result := 3;
end;
{##############################################################################################################}
{##############################################################################################################}
//---------------------------------------------------------------------
// NAME DES PLUGINS
//---------------------------------------------------------------------
function pluginname:PChar; stdcall;
begin
result := PChar('Datei-Manager!');
end;
//---------------------------------------------------------------------
// KURZE BESCHREIBUNG DER FUNKTIONALITÄT DES PLUGINS
//---------------------------------------------------------------------
function plugindescription : PChar; stdcall;
begin
result := PChar('Gibt einen ausgwählten Dateinamen zurück.');
end;
{##############################################################################################################}
{##############################################################################################################}
//---------------------------------------------------------------------
// EXPORTIERT DIE FUNKTION, DIE DURCH DAS EXTERNE PROGRAMM
// ANGESPROCHEN WERDEN SOLLEN
//---------------------------------------------------------------------
exports
pluginrun,
pluginname,
plugindescription,
pluginbackvalue;
{##############################################################################################################}
{##############################################################################################################}
begin
end.
Dazugehörige
Form
unit DLLForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, FileCtrl;
type
TfrmMain = class(TForm)
Button1: TButton;
FileListBox1: TFileListBox;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
frmMain: TfrmMain;
backstring : string; //DIE STRINGVARIABLE MUß GLOBAL SEIN, UM EINE GRÖßERE TEXTMENGE ZURÜCKGEBEN ZU KÖNNEN, SONST ABSTURZ
implementation
{$R *.dfm}
procedure TfrmMain.Button1Click(Sender: TObject);
begin
backstring := FileListBox1.FileName; //DATEINAME ZURÜCKGEGEBEN
Close;
end;
end.