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.