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.