Jump to content

areza

Members
  • Posts

    3
  • Joined

  • Last visited

Posts posted by areza

  1. Hi

    I wrote this component

    A professional editor that takes advantage of the capabilities of TinyMCE

    Two of my problem, I need your help

    1.Component of the output html text for what to do, the following


     


    Function TUniXTinyMCE.GetPlainText: String;

    begin

      // Result:=  UniSession. Query['????????']; Or Other Solution

    End;

     

    2.The problem with this view is not the first time, but the time to update the page with the error go away


     


    Grateful


     


    ----


    Component Body


    ----


     


    Unit UniXTinyMCE;

    Interface

    Uses

      SysUtils, Classes, Controls,

      Ext, ExtPascal, ExtForm,

      UniGUIBaseClasses, UniGUIClasses,

      UniPageControl,

      UniGUIApplication,

      UniGUIUtils, ExtPascalUtils,

      uniHTMLFrame, uniGUIServer, UniGUIForm;

    Const

      PackageVersion = '1.1.0';

     

    Type

      TMyExtButton = Class(TExtButton);

     

      TButtonList = Record

        JSName: String;

        OnClick: TNotifyEvent;

      End;

     

      TUniXTinyMCE = Class(TUniHTMLFrame)

      Private

        { Private declarations }

        Function GetVersion: String;

     

      Protected

        { Protected declarations }

     

      Public

        { Public declarations }

        Constructor Create(Owner: TComponent); Override;

        Destructor Destroy; Override;

        Procedure Loaded; Override;

        procedure SetHtmlText(HtmlText: string);

        Function GetPlainText: String;

     

      Published

        { Published declarations }

        Property Vesrion: String Read GetVersion;

      End;

     

    Procedure Register;

     

    Implementation

     

    Function GetWindowJSName: String;

    Var

      I: Integer;

      C: TList;

      UF: TUniForm;

      FC: TClass;

    Begin

      Result := '';

     

      FC := UniSession.MainFormClass;

      C := UniSession.FormsList;

      For I := 0 To C.Count - 1 Do

      Begin

        UF := TUniForm(C);

        If SameText(UF.ClassName, FC.ClassName) Then

        Begin

          Result := UF.WebForm.ExtForm.JSName;

          Exit;

        End;

      End;

    End;

     

    // ------------------------------------------------------------------------------

    Procedure Register;

    Begin

      RegisterComponents('uniGUI Editor', [TUniXTinyMCE]);

    End;

     

    // ------------------------------------------------------------------------------

     

    Constructor TUniXTinyMCE.Create(Owner: TComponent);

    Begin

      Inherited;

     

    End;

     

    // ------------------------------------------------------------------------------

    Destructor TUniXTinyMCE.Destroy;

    Begin

      Inherited;

    End;

     

    // ------------------------------------------------------------------------------

    Function TUniXTinyMCE.GetPlainText: String;

    begin

      // Result:=  UniSession. Query['????????']; Or Other Solution

    End;

     

    // -------------------------------------------------------------------------------

    procedure TUniXTinyMCE.SetHtmlText(HtmlText: string);

    begin

      UniSession.AddJS('tinyMCE.get("ed1").setContent(' + StrToJS(HtmlText) + ')');

     

    end;

     

    // ------------------------------------------------------------------------------

    Function TUniXTinyMCE.GetVersion: String;

    Begin

      Result := PackageVersion;

    End;

     

    // ------------------------------------------------------------------------------

    Procedure TUniXTinyMCE.Loaded;

     

    var

      FilesFolder: String;

    Begin

      Inherited;

     

      If Not WebMode Then

        Exit;

     

      FilesFolder := StringReplace

        (IncludeTrailingBackslash(uniGUIServer.UniServerInstance.FilesFolder), '\',

        '/', [RfReplaceAll]);

     

      If uniGUIServer.UniServerInstance.CustomFiles.IndexOf

        (FilesFolder + 'tiny_mce/tiny_mce.js') < 0 Then

      begin

        uniGUIServer.UniServerInstance.CustomFiles.Add

          (FilesFolder + 'tiny_mce/tiny_mce.js');

     

        self.HTML.Clear;

        self.HTML.Add

          ('<textarea id="ed1" style="width: 100%; height: 100%;"></textarea>');

        self.HTML.Add('<script>');

        self.HTML.Add('tinyMCE.init({');

        self.HTML.Add('theme : "advanced",');

        self.HTML.Add

          ('plugins : "autolink,lists,spellchecker,pagebreak,style,layer,table,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu'

          + ',paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",');

        self.HTML.Add

          ('theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",');

        self.HTML.Add

          ('theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",');

        self.HTML.Add

          ('theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",');

        self.HTML.Add

          ('theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage",');

        self.HTML.Add('theme_advanced_toolbar_location : "top",');

        self.HTML.Add('theme_advanced_toolbar_align : "left",');

        self.HTML.Add('theme_advanced_statusbar_location : "bottom",');

        self.HTML.Add('theme_advanced_resizing : true,');

        self.HTML.Add

          ('extended_valid_elements : "img[class=myclass|!src|border:0|alt|title|width|height]",');

        self.HTML.Add('mode: "exact",');

        self.HTML.Add('elements : "ed1"');

        self.HTML.Add('});');

        self.HTML.Add('</script>');

     

      End;

    End;

     

    End.

    UniXTinyMCE.rar

  2. Hi
    I wrote this component
    A professional editor that takes advantage of the capabilities of TinyMCE
    Two of my problem, I need your help

    1.Component of the output html text for what to do, the following

     

    Function TUniXTinyMCE.GetPlainText: String;
    begin
      // Result:=  UniSession. Query['????????']; Or Other Solution
    End;
     

    2.The problem with this view is not the first time, but the time to update the page with the error go away

     

    Grateful

     

    ----

    Component Body

    ----

     

    Unit UniXTinyMCE;
    Interface
    Uses
      SysUtils, Classes, Controls,
      Ext, ExtPascal, ExtForm,
      UniGUIBaseClasses, UniGUIClasses,
      UniPageControl,
      UniGUIApplication,
      UniGUIUtils, ExtPascalUtils,
      uniHTMLFrame, uniGUIServer, UniGUIForm;
    Const
      PackageVersion = '1.1.0';
     
    Type
      TMyExtButton = Class(TExtButton);
     
      TButtonList = Record
        JSName: String;
        OnClick: TNotifyEvent;
      End;
     
      TUniXTinyMCE = Class(TUniHTMLFrame)
      Private
        { Private declarations }
        Function GetVersion: String;
     
      Protected
        { Protected declarations }
     
      Public
        { Public declarations }
        Constructor Create(Owner: TComponent); Override;
        Destructor Destroy; Override;
        Procedure Loaded; Override;
        procedure SetHtmlText(HtmlText: string);
        Function GetPlainText: String;
     
      Published
        { Published declarations }
        Property Vesrion: String Read GetVersion;
      End;
     
    Procedure Register;
     
    Implementation
     
    Function GetWindowJSName: String;
    Var
      I: Integer;
      C: TList;
      UF: TUniForm;
      FC: TClass;
    Begin
      Result := '';
     
      FC := UniSession.MainFormClass;
      C := UniSession.FormsList;
      For I := 0 To C.Count - 1 Do
      Begin
        UF := TUniForm(C);
        If SameText(UF.ClassName, FC.ClassName) Then
        Begin
          Result := UF.WebForm.ExtForm.JSName;
          Exit;
        End;
      End;
    End;
     
    // ------------------------------------------------------------------------------
    Procedure Register;
    Begin
      RegisterComponents('uniGUI Editor', [TUniXTinyMCE]);
    End;
     
    // ------------------------------------------------------------------------------
     
    Constructor TUniXTinyMCE.Create(Owner: TComponent);
    Begin
      Inherited;
     
    End;
     
    // ------------------------------------------------------------------------------
    Destructor TUniXTinyMCE.Destroy;
    Begin
      Inherited;
    End;
     
    // ------------------------------------------------------------------------------
    Function TUniXTinyMCE.GetPlainText: String;
    begin
      // Result:=  UniSession. Query['????????']; Or Other Solution
    End;
     
    // -------------------------------------------------------------------------------
    procedure TUniXTinyMCE.SetHtmlText(HtmlText: string);
    begin
      UniSession.AddJS('tinyMCE.get("ed1").setContent(' + StrToJS(HtmlText) + ')');
     
    end;
     
    // ------------------------------------------------------------------------------
    Function TUniXTinyMCE.GetVersion: String;
    Begin
      Result := PackageVersion;
    End;
     
    // ------------------------------------------------------------------------------
    Procedure TUniXTinyMCE.Loaded;
     
    var
      FilesFolder: String;
    Begin
      Inherited;
     
      If Not WebMode Then
        Exit;
     
      FilesFolder := StringReplace
        (IncludeTrailingBackslash(uniGUIServer.UniServerInstance.FilesFolder), '\',
        '/', [RfReplaceAll]);
     
      If uniGUIServer.UniServerInstance.CustomFiles.IndexOf
        (FilesFolder + 'tiny_mce/tiny_mce.js') < 0 Then
      begin
        uniGUIServer.UniServerInstance.CustomFiles.Add
          (FilesFolder + 'tiny_mce/tiny_mce.js');
     
        self.HTML.Clear;
        self.HTML.Add
          ('<textarea id="ed1" style="width: 100%; height: 100%;"></textarea>');
        self.HTML.Add('<script>');
        self.HTML.Add('tinyMCE.init({');
        self.HTML.Add('theme : "advanced",');
        self.HTML.Add
          ('plugins : "autolink,lists,spellchecker,pagebreak,style,layer,table,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu'
          + ',paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",');
        self.HTML.Add
          ('theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",');
        self.HTML.Add
          ('theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",');
        self.HTML.Add
          ('theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",');
        self.HTML.Add
          ('theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage",');
        self.HTML.Add('theme_advanced_toolbar_location : "top",');
        self.HTML.Add('theme_advanced_toolbar_align : "left",');
        self.HTML.Add('theme_advanced_statusbar_location : "bottom",');
        self.HTML.Add('theme_advanced_resizing : true,');
        self.HTML.Add
          ('extended_valid_elements : "img[class=myclass|!src|border:0|alt|title|width|height]",');
        self.HTML.Add('mode: "exact",');
        self.HTML.Add('elements : "ed1"');
        self.HTML.Add('});');
        self.HTML.Add('</script>');
     
      End;
    End;
     
    End.

    UniXTinyMCE.rar

×
×
  • Create New...