Jump to content

Recommended Posts

Posted

Please show me how I can identify the InLine image that was selected when it was Double Clicked - Thanks.

procedure TfMain.HtmlMemoDblClick(Sender: TObject);
begin
  // Get Selected Object From Sender ?
end;
 

Posted
32 minutes ago, andyhill said:

how I can identify the InLine image that was selected when it was Double Clicked

Maybe something like this?:

function initialize(sender, eOpts)
{
    sender.getDoc().addEventListener('dblclick', function(){
        if (arguments[0].target && arguments[0].target.tagName.toLowerCase()=='img') {
            alert(arguments[0].target.getAttribute('id')); //ajaxRequest
        }
    });
}

 

Posted

  HtmlMemo.ClientEvents.ExtEvents.Clear;
  s:= 'initialize=function initialize(sender, eOpts) '+
      '{ '+
      '  sender.getDoc().addEventListener(''dblclick'', function() '+
      '  { '+
      '    if (arguments[0].target && arguments[0].target.tagName.toLowerCase()==''img'') '+
      '    { '+
      '      alert(arguments[0].target.getAttribute(''id'')); '+
      '    } '+
      '  }); '+
      '} ';
  HtmlMemo.ClientEvents.ExtEvents.Add(s);
  //
  Alert event fires: 'id' Always shows null
  'dblclick' event fires: 'id' Always shows ''

////////////////////////////////////////////////////////////////////////////////////////////////////

  HtmlMemo.ClientEvents.ExtEvents.Clear;
  s:= 'initialize=function initialize(sender, eOpts) '+
      '{ '+
      '  sender.getDoc().addEventListener(''dblclick'', function() '+
      '  { '+
      '    if (arguments[0].target && arguments[0].target.tagName.toLowerCase()==''img'') '+
      '    { '+
      '      ajaxRequest(sender, ''_img_'', ["id="+arguments[0].target.getAttribute(''id'')]); '+
      '    } '+
      '  }); '+
      '} ';
  HtmlMemo.ClientEvents.ExtEvents.Add(s);
  //
 'dblclick' event fires: 'id' Always shows ''
  '_img_' event fires, 'id' Always shows ''

 

Please advise ?

 

 

Posted

Yes, works in _img_ event but not in dblclick event but I now understand why - thank you.

Also can you resolve inline issue mentioned earlier.

In addition if you drag an image inside HtmlMemo it disappears ???

 

 

Posted

Run this code:-

InlineData:= 
'<img id="img1" src="data:image/jpeg; charset=utf-8; base64, 
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
f1n8P//Z" alt="" width="100" height="50" style="display: block; margin-left: 4px; margin-top: 2px;">';

UniSession.AddJS(HtmlMemo.JSName + '.insertAtCursor('+ Chr(39)+InlineData+Chr(39) +')');
 

InlineDataImage.jpg

Posted

The actual data is wrapped by double quotes, if you take the complete tag string, turn it into a html file and execute it by the browser it all works.

Posted

How many times must I ask, if it is a bug then acknowledge it please along with fix ETA, if it is my code then please explain why it works in browsers but not in your HtmlMemo ?

Posted
4 hours ago, andyhill said:

How many times must I ask, if it is a bug then acknowledge it please along with fix ETA, if it is my code then please explain why it works in browsers but not in your HtmlMemo ?

This is not a bug.

You need use like this...

1. Add to uses list:

Uses ... ,ExtPascalUtils;

2. StrToJS

procedure TMainForm.UniButton1Click(Sender: TObject);
var
  MyList: TStringList;
  HtmlStr: String;
begin
  UniHTMLMemo1.Clear;
  UniSession.AddJS(UniHTMLMemo1.JSName + '.insertAtCursor('+ Chr(39)+'Before Image<br>'+Chr(39) +')');
  MyList:= TStringList.Create;
  try
    MyList.LoadFromFile(UniServerModule.StartPath+'\files\InlineData.html');
    HtmlStr:= StrToJS(MyList.Text);
  except

  end;
  MyList.Free;
  UniSession.AddJS(UniHTMLMemo1.JSName + '.insertAtCursor('+ HtmlStr +')');
end;

 

Posted

Or use like this:

procedure TMainForm.UniButton1Click(Sender: TObject);
var
  MyList: TStringList;
  HtmlStr: String;
begin
  UniHTMLMemo1.Clear;
  UniSession.AddJS(UniHTMLMemo1.JSName + '.insertAtCursor('+ Chr(39)+'Before Image<br>'+Chr(39) +')');
  MyList:= TStringList.Create;
  try
    MyList.LoadFromFile(UniServerModule.StartPath+'\files\InlineData.html');
    //HtmlStr:= StrToJS(MyList.Text);
    HtmlStr:= MyList.Text;
  except

  end;
  MyList.Free;
  //UniSession.AddJS(UniHTMLMemo1.JSName + '.insertAtCursor('+ HtmlStr +')');
  UniHTMLMemo1.JSInterface.JSCallDefer('insertAtCursor', [HtmlStr], 300);
end;

 

Posted

Thank You Sherzod.

Feed back:-

First Option (StrToJS) only works in an empty paragraph

Second Option ([]) inserts between characters and empty paragraphs

Would you please explain why we have to deal with inline differently ?

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...