Jump to content

andyhill

uniGUI Subscriber
  • Posts

    1257
  • Joined

  • Last visited

  • Days Won

    6

Posts posted by andyhill

  1.   grdWorkSheet.ClientEvents.UniEvents.Clear;
      MyScript:= 'pagingBar.afterCreate=function pagingBar.afterCreate(sender)'+
                 '{ '+
                 '  sender.add( '+
                 '  [ '+
    
    ...
    
                 '    { '+
                 '      xtype: ''tbseparator'' '+
                 '    }, '+
    
                 '    { '+
                 '      xtype: ''label'', '+
                 '      id: "gridLabelid", '+
                 '      text: ''abc'', '+
                 '      margin: ''0 0 0 10'', '+
                 '    }, '+
    
                 '    { '+
                 '      xtype: ''tbseparator'' '+
                 '    }, '+
    
    ...
    
                 '  ]); '+
                 '} ';
      grdWorkSheet.ClientEvents.UniEvents.Add(MyScript);

    Above my FormCreate code adds a Label to the Pagingbar and it displays as expected (please advise if I have added the Label correctly).

    Elsewhere I want to change the Label.Text value at runtime

    grdWorkSheet.JSInterface.JSCode(#1'.pagingBar.getComponent("gridLabelid").setValue(''Andy'');'); 

    SetValue fails, please advise how to change the "gridLabelid" - thanks.

     

  2. From a coding point of view I can easily create the list, parse the list, reject matching words if necessary, BUT I did not want to type into my application all of the ugly words (plus I do not know them all, nor do I want to). It would have been nice to have an encrypted lookup to check questionable text against. Maybe I am old fashioned 🫣

    eg.
    if Obscene(UserText) then begin
      ShowMessage('Obscenities are not tolerated - Aborting !');
    end else begin
      ...
    end;

    Yes I am sure there are URL offerings out there but I need to watch my pennies plus I am trying to limit URL services in my project.

    What about a UniGUI Community project ?

      

  3. TLedgerTypesForm = class(TUniForm)

    ...

        procedure PromptLedgerType(Sender: TComponent; AResult: Integer; AText: string);
    ...

     

    procedure TLedgerTypesForm.btnProcessClick(Sender: TObject);
    begin

        Prompt('Ledger Name:', '', mtInformation, mbOKCancel, PromptLedgerType); // Prompts as expected
    ...

    procedure TLedgerTypesForm.PromptLedgerType(Sender: TComponent; AResult: Integer; AText: string); // Never fires
    begin
      if AResult = mrOK then begin

    ...

    I cannot understand why PromptLedgerType is never called ? I believe all procedures are declared correctly - am I having a seniors moment - please advise - thanks.

  4. When Grid shows no rows the user can still invoke ContextMenu, if Grid contains row(s) then my current coding below disables ContextMenu.

    How do we prevent Grid ContextMenu with zero rows ? Please advise - thanks

      //////////////////////////////////////////////////////////////////////////////
      // Before Container
      MyScript:= 'beforecontainercontextmenu=function beforecontainercontextmenu(sender, td, cellIndex, record, tr, rowIndex, e, eOpts) '#13#10 +
                 '{ '#13#10 +
                 '  e.preventDefault(); '#13#10 +
                 '} ';
      grdWorkSheet.ClientEvents.ExtEvents.Add(MyScript);
      // Container
      MyScript:= 'containercontextmenu=function containercontextmenu(sender, td, cellIndex, record, tr, rowIndex, e, eOpts) '#13#10 +
                 '{ '#13#10 +
                 '  e.preventDefault(); '#13#10 +
                 '} ';
      grdWorkSheet.ClientEvents.ExtEvents.Add(MyScript);
      // Row
      MyScript:= 'rowcontextmenu=function rowcontextmenu(sender, td, cellIndex, record, tr, rowIndex, e, eOpts) '#13#10 +
                 '{ '#13#10 +
                 '  e.preventDefault(); '#13#10 +
                 '} ';
      grdWorkSheet.ClientEvents.ExtEvents.Add(MyScript);
      // Before Cell
      MyScript:= 'beforecellcontextmenu=function beforecellcontextmenu(sender, td, cellIndex, record, tr, rowIndex, e, eOpts) '#13#10 +
                 '{ '#13#10 +
                 '  e.preventDefault(); '#13#10 +
                 '} ';
      grdWorkSheet.ClientEvents.ExtEvents.Add(MyScript);
      // Cell
      MyScript:= 'cellcontextmenu=function cellcontextmenu(sender, td, cellIndex, record, tr, rowIndex, e, eOpts) '#13#10 +
                 '{ '#13#10 +
                 '  e.preventDefault(); '#13#10 +
                 '} ';
      grdWorkSheet.ClientEvents.ExtEvents.Add(MyScript);
      // Before Item
      MyScript:= 'beforeitemcontextmenu=function beforeitemcontextmenu(sender, td, cellIndex, record, tr, rowIndex, e, eOpts) '#13#10 +
                 '{ '#13#10 +
                 '  e.preventDefault(); '#13#10 +
                 '} ';
      grdWorkSheet.ClientEvents.ExtEvents.Add(MyScript);
      // Item
      MyScript:= 'itemcontextmenu=function itemcontextmenu(sender, td, cellIndex, record, tr, rowIndex, e, eOpts) '#13#10 +
                 '{ '#13#10 +
                 '  e.preventDefault(); '#13#10 +
                 '} ';
      grdWorkSheet.ClientEvents.ExtEvents.Add(MyScript);
      // Header
      MyScript:= 'headercontextmenu=function headercontextmenu(sender, td, cellIndex, record, tr, rowIndex, e, eOpts) '#13#10 +
                 '{ '#13#10 +
                 '  e.preventDefault(); '#13#10 +
                 '} ';
      grdWorkSheet.ClientEvents.ExtEvents.Add(MyScript);

     

  5. I have followed instructions published on this forum but cannot fetch (get) the token 'BB' value which clearly exists in the Chrome Browser ?

      Str:= '';
      with edtStore.JSInterface do
        JSCall('setValue', [jsstatement('localStorage.getItem("BB")')]);
      Str:= Trim(edtStore.Text);
     

    Please advise - thanks

  6. Using port 80

    Your HtmlMemo Component fails to add necessary tags to inserted images:-

    "id"

    "width"

    "height"

    to name a few.

    My primitive work around is attached, please paste an image (view source [tags missing]), DblClick inserted image again shows "id" missing.

    Please advise how to resolve.

    Ultimately all images in HtmlMemo need the function of grabbing and resizing buy the end user.

    Project1.zip

  7. OK, "id" now assigned.

    How do I get the "width" and "height"

                 // Ctrl+V Paste
                 '  sender.iframeEl.dom.contentDocument.body.addEventListener(''paste'', function(e) '+
                 '  { '+
                 '    var items = e.clipboardData.items; '+
                 '    if(items.length === 1) '+
                 '    { '+
                 '      var str = items[0].type; '+
                 '      if(str.indexOf("image") !== -1) '+
                 '      { '+
                 '        ajaxRequest('+MyJsName+', ''_PasteBefore_'', []); '+ I WANT TO SEND "ID", "WIDTH" & "HEIGHT" in params here
                 '      } '+
                 '    } '+
                 '    else '+ // More or Less than one
                 '    { '+
                 '      e.preventDefault(); '+ // Kill Paste
                 '    } '+
                 '  }); '+

                 // Create Image
                 '  function createImage(source) '+
                 '  { '+
                 '    var pastedImage = new Image(); '+
                 '    pastedImage.onload = function() '+
                 '    { '+
                        // Add Unique "id"
                 '      pastedImage.id = Ext.id(); '+

                // DO I NEED WIDTH and HEIGHT attributes recorded with image here

                 '    }; '+
                 '    pastedImage.src = source; '+
                 '  } '+
     

  8. I have played with all sorts of concepts (bypassing stretch handles for now using DblClick to investigate the selected pasted image [if one uses Ctrl+V to paste image there is no "id" added to the <img tag ???]):-

      MyJsName:= htm001.JSName;
      htm001.ClientEvents.ExtEvents.Clear;
      MyScript:= 'initialize=function initialize(sender, eOpts) '+
                 '{ '+

                 // DblClick
                 '  sender.getDoc().addEventListener(''dblclick'', function() '+
                 '  { '+
                 '    if (arguments[0].target && arguments[0].target.tagName.toLowerCase()==''img'') '+
                 '    { '+
                 '      ajaxRequest('+MyJsName+', ''_img_'', ["id="+arguments[0].target.getAttribute(''id'')]); '+
                 '    } '+
                 '  }); '+

                 // Ctrl+V Paste
                 '  sender.iframeEl.dom.contentDocument.body.addEventListener(''paste'', function(e) '+
                 '  { '+
                 '    var items = e.clipboardData.items; '+
                 '    if(items.length === 1) '+
                 '    { '+
                 '      var str = items[0].type; '+
                 '      if(str.indexOf("image") !== -1) '+
                 '      { '+
                 '        ajaxRequest('+MyJsName+', ''_PasteBefore_'', []); '+
                 '      } '+
                 '    } '+
                 '    else '+ // More or Less than one object
                 '    { '+
                 '      e.preventDefault(); '+ // Kill Paste
                 '    } '+
                 '  }); '+

                 // Create Image
                 '  function createImage(source) '+
                 '  { '+
                 '    var pastedImage = new Image(); '+
                 '    pastedImage.onload = function() '+
                 '    { '+
                        // Need To Add "id" to image here - please show how to make "id" unique
                 '    }; '+
                 '    pastedImage.src = source; '+
                 //'    alert(pastedImage.src); '+
                 '  } '+

                 '} ';
      htm001.ClientEvents.ExtEvents.Add(MyScript);
     

    Sherzod, while you are investigating Stretch Handles, please show me how to add unique "id" to pasted image - Thanks

     

×
×
  • Create New...