anonymous Log in
Search
Recents:
v3.0
gx-l
Retornar valor desde User Control
19/04/21 08:48

sed12516

Replies: 1

Buenos días foro.
Estamos haciendo un User Control en el que queremos recoger una firma
que escribe el usuario pero no sabemos como poder asignar valores a las
propiedades para poder retornarlas, solo las retorna con el valor por
defecto.
El código es el siguiente:
<Definition auto="false">
  <Event Name="OnClick" />
  <Property Name="imagen2" Type="string" Default="" />
  <Property Name="imagen" Type="string" Default="" />
  <Script Name="ScriptCanvas" When="AfterShow">
    var canvas = document.getElementById("draw-canvas");
    var drawText = document.getElementById("draw-dataUrl");
    function show(){
            var dataUrl = canvas.toDataURL();
            drawText.innerHTML = dataUrl;
            this.imagen2=dataUrl;
            this.imagen=dataUrl;
            console.log(this.imagen2)
        }
    window.requestAnimFrame = (function (callback) {
        return window.requestAnimationFrame ||
           window.webkitRequestAnimationFrame ||
           window.mozRequestAnimationFrame ||
           window.oRequestAnimationFrame ||
           window.msRequestAnimaitonFrame ||
           function (callback) {
               window.setTimeout(callback, 1000 / 60);
           };
    })();
    var ctx = canvas.getContext("2d");
    var drawImage = document.getElementById("draw-image");
    var clearBtn = document.getElementById("draw-clearBtn");
    var submitBtn = document.getElementById("draw-submitBtn");
    clearBtn.addEventListener("click", function (e) {
        clearCanvas();
        drawImage.setAttribute("src", "");
    }, false);
    submitBtn.addEventListener("click", function (e) {
        var dataUrl = canvas.toDataURL();
        show();
        drawText.innerHTML = dataUrl;
        this.imagen2="asdasdassdas";
        drawImage.setAttribute("src", dataUrl);
    }, false);
    var drawing = false;
    var mousePos = { x: 0, y: 0 };
    var lastPos = mousePos;
    canvas.addEventListener("mousedown", function (e) {
        console.log(e);
        drawing = true;
        lastPos = getMousePos(canvas, e);
    }, false);
    canvas.addEventListener("mouseup", function (e) {
        drawing = false;
    }, false);
    canvas.addEventListener("mousemove", function (e) {
        mousePos = getMousePos(canvas, e);
    }, false);
    canvas.addEventListener("touchstart", function (e) {
        mousePos = getTouchPos(canvas, e);
        console.log(mousePos);
        e.preventDefault();
        var touch = e.touches[0];
        var mouseEvent = new MouseEvent("mousedown", {
            clientX: touch.clientX,
            clientY: touch.clientY
        });
        canvas.dispatchEvent(mouseEvent);
    }, false);
    canvas.addEventListener("touchend", function (e) {
        e.preventDefault();
        var mouseEvent = new MouseEvent("mouseup", {});
        canvas.dispatchEvent(mouseEvent);
    }, false);
    canvas.addEventListener("touchleave", function (e) {
        e.preventDefault();
        var mouseEvent = new MouseEvent("mouseup", {});
        canvas.dispatchEvent(mouseEvent);
    }, false);
    canvas.addEventListener("touchmove", function (e) {
        e.preventDefault();
        var touch = e.touches[0];
        var mouseEvent = new MouseEvent("mousemove", {
            clientX: touch.clientX,
            clientY: touch.clientY
        });
        canvas.dispatchEvent(mouseEvent);
    }, false);
    function getMousePos(canvasDom, mouseEvent) {
        var rect = canvasDom.getBoundingClientRect();
        return {
            x: mouseEvent.clientX - rect.left,
            y: mouseEvent.clientY - rect.top
        };
    }
    function getTouchPos(canvasDom, touchEvent) {
        var rect = canvasDom.getBoundingClientRect();
        console.log(touchEvent);
        return {
            x: touchEvent.touches[0].clientX - rect.left,
            y: touchEvent.touches[0].clientY - rect.top
        };
    }
    function renderCanvas() {
        if (drawing) {
            ctx.strokeStyle = "#000";
            ctx.beginPath();
            ctx.moveTo(lastPos.x, lastPos.y);
            ctx.lineTo(mousePos.x, mousePos.y);
            console.log(3);
            ctx.lineWidth = 3;
            ctx.stroke();
            ctx.closePath();
            lastPos = mousePos;
        }
    }
    function clearCanvas() {
        canvas.width = canvas.width;
    }
    (function drawLoop() {
        requestAnimFrame(drawLoop);
        renderCanvas();
    })();
console.log("script")
</Script>
</Definition>
Agradecería cualquier ayuda ya que estamos parados en este punto.
Gracias de antemano.
--
Un saludo
Sergio Paz Curros
Avda Martinez Garrido 77 Bj
C.P. 36205 - Vigo
Telf: +34 986374254
sed@f10informatica.com
En virtud de la ley 34/2002 LSSI-CE, este mensaje y sus archivos adjuntos pueden contener información confidencial, por lo que se informa de que su uso no autorizado está prohibido por la ley, además se encuentran protegidos por la Constitución Española, que garantiza la confidencialidad, protección y secreto de las comunicaciones. Si ha recibido este mensaje por equivocación, por favor notifíquelo inmediatamente a través de esta misma vía y borre el mensaje original junto con sus ficheros adjuntos sin leerlo o grabarlo total o parcialmente.
Conforme a lo establecido en el nuevo reglamento europeo 2016/679 de protección de datos o RGPD, le informamos que los datos personales que consten en esta comunicación son responsabilidad de F10 INFORMATICA, S.L con la finalidad de gestionar la relación con nuestros clientes y contactos en relación al ejercicio de nuestra actividad, todo ello bajo la legitimación otorgada por consentimiento expreso del propio interesado, y/o en base a la ejecución de un contrato de servicios. No se cederán datos a terceros salvo obligaciones legales. En cuanto a sus derechos podrá acceder, rectificar y suprimir los datos, limitarlos o incluso oponerse a su tratamiento, entre otros derechos, contactando con nosotros por email o por correo postal dirigido a Avenida Emilio Martínez Garrido, 77, Bajo, CP 36205 Vigo, Pontevedra.
-----------------------------------------
Para Suscribirse/Desuscribirse:
http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,1
Por consultas owner-gx-l@gxtech.com.uy
Replies

fsalomon

22/04/21 13:37
Hola Sergio, qué tal? Algo que siempre resulta útil es mantener el contexto del UC. En tu caso podrías agregar la línea que está en negrita *


Back to gx-l