Plugin-Funktionen

library formdll;

uses

  SysUtils,
  Classes,
  Forms,
 Windows,
 Dialogs,
DLLForm in 'DLLForm.pas' {frmMain};

{$R *.res}
{##############################################################################################################}
{##############################################################################################################}
{                       GÜLTIG AB AT HTML EDITOR 32.3                                                          }
{##############################################################################################################}
{##############################################################################################################}
//---------------------------------------------------------------------
//  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('Text-Editor!');
end;
//---------------------------------------------------------------------
//  KURZE BESCHREIBUNG DER FUNKTIONALITÄT DES PLUGINS
//---------------------------------------------------------------------
function plugindescription : PChar; stdcall;
begin
  result := PChar('Übernimmt den selektierten Text in einen kleinen Editor.');
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;

type
TfrmMain = class(TForm)
Memo: TMemo;
btnOk: TButton;
procedure btnOkClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
frmMain: TfrmMain; //FORM DEKLARIEREN
backstring : string; //GLOBALEN RÜCKGABESTRING DEKLARIEREN, FALLS ER AUAS VERSCHIEDENEN
//TEXTFELDERN ZUSAMMENGESETZT WERDEN SOLL

implementation

{$R *.dfm}

procedure TfrmMain.btnOkClick(Sender: TObject);
begin
backstring := Memo.Text; //IN GLOABLE VARIABLE SETZEN
//SO KÖNNEN DER GLOBALEN VARIABLE WEITERE WERT HINZUGEFÜGT WERDEN
Close; //FORMULAR SCHLIESSEN
end;

end.