Jump to content

logihouse

Members
  • Posts

    14
  • Joined

  • Last visited

Posts posted by logihouse

  1. Sorry if off topic.

    UniGui will probably be the chosen platform for PDA-extension of our warehouse management system, written in Delphi since 1996.

    We have made a custom browser based on FMX TWebBrowser to run our app. Everything works fine, except camera access.

    The camera does not open on the demo project.

    Same demo works fine with the Chrome browser. Maybe somebody here had same issue, and found a solution?

    Best regards

    Thomas

     

  2. As skilled Delphi developer unigui is very nice to work with on the code side. However, the screen layout composition differs very much from standard VCL-Delphi.
    The demos are very impressive, but they lack the design part completely.  

    Is there a library with predefined mobile templates, where I can select a nice design to work with?

    I would like to buy a license, but I need to see some nice stuff first. 

    This is how my screens look so far, - plain terrible.. 

     move.png

    menu.png

  3. Thank you for a very nice product!

    I have found this script, that creates a touch  numeric keyboard in the browser. It would be very useful in our mobile app.

    var numpad = {
      /* [INIT - DRAW THE ON-SCREEN NUMPAD] */
      selector : null, // will hold the entire on-screen numpad
      display : null, // will hold the numpad display
      zero : null, // will hold the zero button
      dot : null, // will hold the dot button
      init : function () {
        // CREATE THE NUMPAD
        numpad.selector = document.createElement("div");
        numpad.selector.id = "numpad-back";
        var wrap = document.createElement("div");
        wrap.id = "numpad-wrap";
        numpad.selector.appendChild(wrap);
    
        // ATTACH THE NUMBER DISPLAY
        numpad.display = document.createElement("input");
        numpad.display.id = "numpad-display";
        numpad.display.type = "text";
        numpad.display.readOnly = true;
        wrap.appendChild(numpad.display);
    
        // ATTACH BUTTONS
        var buttons = document.createElement("div"),
            button = null,
            append = function (txt, fn, css) {
              button = document.createElement("div");
              button.innerHTML = txt;
              button.classList.add("numpad-btn");
              if (css) {
                button.classList.add(css);
              }
              button.addEventListener("click", fn);
              buttons.appendChild(button);
            };
        buttons.id = "numpad-btns";
        // First row - 7 to 9, delete.
        for (var i=7; i<=9; i++) {
          append(i, numpad.digit);
        }
        append("⤆", numpad.delete, "ng");
        // Second row - 4 to 6, clear.
        for (var i=4; i<=6; i++) {
          append(i, numpad.digit);
        }
        append("C", numpad.reset, "ng");
        // Third row - 1 to 3, cancel.
        for (var i=1; i<=3; i++) {
          append(i, numpad.digit);
        }
        append("✖", numpad.hide, "cx");
        // Last row - 0, dot, ok
        append(0, numpad.digit, "zero");
        numpad.zero = button;
        append(".", numpad.dot);
        numpad.dot = button;
        append("✔", numpad.select, "ok");
        // Add all buttons to wrapper
        wrap.appendChild(buttons);
        document.body.appendChild(numpad.selector);
      },
    
      /* [ATTACH TO INPUT] */
      attach : function (opt) {
      // attach() : attach numpad to target input field
    
        var target = document.getElementById(opt.id);
        if (target!=null) {
          // APPEND DEFAULT OPTIONS
          if (opt.readonly==undefined || typeof opt.readonly!="boolean") { opt.readonly = true; }
          if (opt.decimal==undefined || typeof opt.decimal!="boolean") { opt.decimal = true; }
          if (opt.max==undefined || typeof opt.max!="number") { opt.max = 16; }
    
          // SET READONLY ATTRIBUTE ON TARGET FIELD
          if (opt.readonly) { target.readOnly = true; }
    
          // ALLOW DECIMALS?
          target.dataset.decimal = opt.decimal ? 1 : 0;
    
          // MAXIMUM ALLOWED CHARACTERS
          target.dataset.max = opt.max;
    
          // SHOW NUMPAD ON CLICK
          target.addEventListener("click", numpad.show);
        } else {
          console.log(opt.id + " NOT FOUND!");
        }
      },
    
      target : null, // contains the current selected field
      dec : true, // allow decimals?
      max : 16, // max allowed characters
      show : function (evt) {
      // show() : show the number pad
    
        // Set current target field
        numpad.target = evt.target;
    
        // Show or hide the decimal button
        numpad.dec = numpad.target.dataset.decimal==1;
        if (numpad.dec) {
          numpad.zero.classList.remove("zeroN");
          numpad.dot.classList.remove("ninja");
        } else {
          numpad.zero.classList.add("zeroN");
          numpad.dot.classList.add("ninja");
        }
    
        // Max allowed characters
        numpad.max = parseInt(numpad.target.dataset.max);
    
        // Set display value
        var dv = evt.target.value;
        if (!isNaN(parseFloat(dv)) && isFinite(dv)) {
          numpad.display.value = dv;
        } else {
          numpad.display.value = "";
        }
    
        // Show numpad
        numpad.selector.classList.add("show");
      },
    
      hide : function () {
      // hide() : hide the number pad
    
        numpad.selector.classList.remove("show");
      },
    
      /* [BUTTON ONCLICK ACTIONS] */
      delete : function () {
      // delete() : delete last digit on the number pad
    
        var length = numpad.display.value.length;
        if (length > 0) {
          numpad.display.value = numpad.display.value.substring(0, length-1);
        }
      },
    
      reset : function () {
      // reset() : reset the number pad
    
        numpad.display.value = "";
      },
    
      digit : function (evt) {
      // digit() : append a digit
    
        var current = numpad.display.value,
            append = evt.target.innerHTML;
    
        if (current.length < numpad.max) {
          if (current=="0") {
            numpad.display.value = append;
          } else {
            numpad.display.value += append;
          }
        }
      },
    
      dot : function () {
      // dot() : add the decimal point (only if not already appended)
    
        if (numpad.display.value.indexOf(".") == -1) {
          if (numpad.display.value=="") {
            numpad.display.value = "0.";
          } else {
            numpad.display.value += ".";
          }
        }
      },
    
      select : function () {
      // select() : select the current number
    
        var value = numpad.display.value;
    
        // No decimals allowed - strip decimal
        if (!numpad.dec && value%1!=0) {
          value = parseInt(value);
        }
    
        // Put selected value to target field + close numpad
        numpad.target.value = value;
        numpad.hide();
      }
    };
    
    /* [INIT] */
    window.addEventListener("load", numpad.init);
    
    
    

    But how do I import into Unigui? Or can I find an other Unigui touch numeric keyboard component somewhere?

    I am using latest trialversion.

  4. Udklip.PNG

     

    Your system works very well, but I have a single problem:

    The title says 'MainmForm' instead of 'uniGUI Touch Demo'. It is the 'All features demo'.

    I even tried:

    procedure TMainmForm.UnimFormCreate(Sender: TObject);
    begin
      caption := 'uniGUI Touch Demo';
      IsPhone := (upPhone in UniSession.UniPlatform);...

     

    .. but it did not help.

     

    Running newest version, downloaded today.

     

    Best regards

    Thomas Riedel

     

     

     

  5. I get this error when showing a form with a tunibutton, I placed there. Do I need to reinstall?

    uniGUI Mobile Web Application Framework - Trial Edition
    Copyright FMSoft 2009-2019. All rights reserved.
    Version:1.50.0 build 1482

    The demos work fine. It when I add stuff it fails.

    OK, I realized, that I  had been using standard tUniButton, not tUniMButton, that solved it.

  6. I have tried to install Unigui many times, but nothing happens.

    I have Berlin and Seattle installed, and neither of these get the components on the palette after running the installer.

    It happened after I was forced to reinstall Seattle after installing Berlin.

    Before that, it worked very fine.

    Do you have any cloues?

    I am about to purchase your excellent product.

     

    Best regards

    Thomas Riedel

×
×
  • Create New...