windows forms – Tengo un PDF en google drive y quisiera que en c# tener un boton para guardar dicho archivo en descargas de la pc

    private void btnImprimir_Click(object sender, EventArgs e)
    {
        wc.DownloadFileCompleted += new AsyncCompletedEventHandler(DescargaDeDocumentoCompletada);
        Uri pdfurl = new Uri("https://drive.google.com/file/d/1L9tQ9S6LkNVcBbIAsv3E_qFI8qlhVMvW/view");
        wc.DownloadFileAsync(pdfurl,"DatosManfe.pdf");

    }
    private void DescargaDeDocumentoCompletada(object sender, AsyncCompletedEventArgs e)
    {
        MessageBox.Show("Descarga Finalizada");

    }

Tengo este codigo pero se me descarga en la ruta del proyecto y al intentar abrirlo no funciona

css – Cómo hacer que mi carousel se pueda desplzar de izquierda a derecha con un boton

Estoy creando un carousel de imagenes estilo “Netflix” y actualmente cuenta con la propiedad overflow:scroll para que se pueda mostrar como si estuviera en row pero sin desbordarme la pagina, hasta aquí bien, el problema viene en cuando necesito desplazarme por el div con el raton o la rueda y no puedo, solo se me desplaza con el trackpad.

Reproducir y pausar sonido con el mismo botón en Arduino uno y sparkfun mp3 shield

Tengo un Arduino 1 v3 y una sparkfun mp3 player shield v15. Necesito que con un mismo botón (un botón arcade) al pulsarlo la primera vez dispare un mp3 y al pulsarlo otra vez se pare. Así en loop, intente copiar de un proyecto de ejemplo de sparkfun pero no soy capaz de que suene.

#include <SPI.h>             // SPI library
#include <SdFat.h>           // SDFat Library
//#include <SdFatUtil.h>     // SDFat Util Library
#include <SFEMP3Shield.h>    // Mp3 Shield Library

SFEMP3Shield MP3player;


int reedSwitch = 4;  
boolean active = false;


void setup() {
  pinMode(reedSwitch, INPUT); //Reed Switch
  digitalWrite(reedSwitch, HIGH); //turn on internal pullups for reed input

  MP3player.begin();
  MP3player.setVolume(0x00, 0x00); //set volume
}

void loop() 
{
  
    if (digitalRead(reedSwitch) == HIGH && !active)//when door opens
    {
      active = true;
      MP3player.stopTrack();
      MP3player.playTrack(1);
    }
    else if (digitalRead(reedSwitch) == LOW && active)//
    {
      active = false;
      MP3player.stopTrack();
  
    }

  delay(100);
}

javascript – Como puedo tener varios videos y controlarlos todos por un solo boton?

estoy creando un slider que funciona con videos, la funcionalidad que tiene este es que no puedes saltar al siguiente video hasta que te termines el que estas viendo, pero, este slider cuenta con botón de play, pause y mute, cada vez que el video cambia, si le doy a play se reproducen todos, quiero hacer que los controles solo apliquen al video que se esta presentando, y también me gustaría que me ayudaran con una función, que es que si no estas viendo el video, o no esta activo en pantalla, este se pause y se devuelva al time 0, tiene solo un botón de navegar, y es el de retroceder, estoy intentando que al retroceder el video que estaba viendo se reiniciara y se comenzara a reproducir el de la pagina anterior, pero igual no me funciona, aquí dejo el código:

$(document).ready(function(){
var imgItems = $('.item').length; // NUMERO DE SLIDES
var imgPos = 1;

var owl = $('.owl-carousel');
// Temporizador
var owlTimer;
owl.owlCarousel({
    loop: false,
    autoplay: false,
    items: 1,
    dots: false,
    animateOut: 'fadeOut',
    nav: true,
    startPosition: 0
    
});

// Aplicar tiempo a cada elemento
function sliderTimeout(index) {
    // Establecer índice actual
    owl.currentIndex = index;
    // Eliminar temporizador actual
    clearTimeout(owlTimer);
    // Obtener elemento actual por índice, jQuery inicia con cero, por eso el -1
    let current = $('.owl-carousel .item').eq(index - 1);
    // Solo si no es el último elemento
    if(index < imgItems) {
        // Definir tiempo por defecto para todos los elementos
        let time = 3000;
        // Aquí puedes analizar el contenido del elemento actual
        // Para elegir audio y duración, cambiando el tiempo de espera
        // Por ejemplo: dar el doble de tiempo para el segundo elemento
        if(index == 1) {
            time = 360000;
            myAudio.play();
                // Reactivar temporizador
            $('.play').on('click', function() {
                // Reanudar reproducción con el índice guardado previamente
                sliderTimeout(owl.currentIndex);
                myAudio.play();
            });
            // Pausar reproducción
            $('.stop').on('click', function() {
                // Solo es necesario cancelar el temporizador
                clearTimeout(owlTimer);
                myAudio.pause();
            });
        }
        if(index == 2) {
            time = 60000;
            // Reactivar temporizador
            $('.play').on('click', function() {
                // Reanudar reproducción con el índice guardado previamente
                sliderTimeout(owl.currentIndex);
                myAudio2.play();
            });
            // Pausar reproducción
            $('.stop').on('click', function() {
                // Solo es necesario cancelar el temporizador
                clearTimeout(owlTimer);
                myAudio2.pause();
            });
        }
        if(index == 3) {
            time = 60000;

        }
        if(index == 4) {
            time = 60000;
        }
        owlTimer = setTimeout(function() {
            owl.trigger('next.owl.carousel');
        }, time);
    } else {
        // Es el último elemento, puede tener tiempo diferente
        setTimeout(function() {
            // Probablemente quieras usar otra función para terminar
            // Tal vez redirigir a otra página
        }, 5000);
    }
}
// Escuchar cambios
owl.on('changed.owl.carousel', function(e) {
    // El índice se obtiene desde el evento
    sliderTimeout(e.item.index);
});


// Iniciar reproducción
sliderTimeout(1);
owl.trigger('refresh.owl.carousel');

//Objeto con referencia a la etiqueta audio     
myAudio = document.getElementById("myAudio");
myAudio2 = document.getElementById("myAudio2");
myAudio3 = document.getElementById("myAudio3");
myAudio4 = document.getElementById("myAudio4");
myAudio5 = document.getElementById("myAudio5");
myAudio6 = document.getElementById("myAudio6");
myAudio7 = document.getElementById("myAudio7");
myAudio8 = document.getElementById("myAudio8");
myAudio9 = document.getElementById("myAudio9");
myAudio10 = document.getElementById("myAudio10");
myAudio11 = document.getElementById("myAudio11");
myAudio12 = document.getElementById("myAudio12");
myAudio13 = document.getElementById("myAudio13");

Como vieron anteriormente, intente que cuando pasara cada slider, también la funcionalidad de los botones también cambiara, pero estos adoptan ambas funcionalidades, las del slider anterior y la del nuevo, me quede sin ideas respecto a eso y me gustaría conocer su punto de vista al respecto.

python – Cuando intento cambiar el estado de un texto con un boton no funciona en tkinter

Quiero hacer una interfaz donde cuando cliquees un botón el texto aparezca y desaparezca,solo por practica.
Pero he llegado a un error,pues cuando cliqueo el botón el texto se queda en el estado que había marcado antes,he intentado poner las mayúsculas en minúsculas y sacarle el “tk”
Aqui mi codigo:

import tkinter as tk
from tkinter import ttk
from tkinter.constants import DISABLED, NORMAL
root = tk.Tk()

root.config(width=400, height=300)

entry = ttk.Entry(root)

#el texto
texto = tk.Text(background='white',width=40,height=5)
texto.config(state="normal")
texto.pack(padx=0,pady=180)
texto.insert("insert","prueba")

#funcion presionado
def presionado():
    if (texto('state') == tk.NORMAL):
        texto.config(state=tk.DISABLED)
    else:
        texto.config(state=tk.NORMAL)
#botones


entry.insert(0, "Hola mundo!")
entry.place(x=50, y=50)
button = ttk.Button(root, text="Enviar",
    command=lambda: print(entry.get()))
button.place(x=50, y=100)

button = ttk.Button(root,text="enviar truco",
                    command=presionado)
button.place(x=50, y=150)


root.mainloop()

javascript – Como tener varios videos y hacer que todos se pausen con el mismo boton?

he estado creando un slider con diversas funciones, y una de ellas es que tenga narración y pasen en conjunto, así que decidí hacer videos para que el texto y la narración vayan acorde, pero, resulta que intente hacer el botón de pause y play con arrays, pero no me ha funcionado, me gustaría que me ayudaran a encontrar un código similar.

`dir = "medios/";
playlist = ("Stoker","Skull_Fire","Scurvy_Pirate");
playlist_index = 0;
ext = ".mp3";
gent = navigator.userAgent.toLowerCase();
if(agent.indexOf('firefox') != -1 || agent.indexOf('opera') != -1) {
    ext = ".ogg";
}
audio = new Audio();
audio.src = dir+playlist(0)+ext;
audio.loop = false;
audio.play();`

eso es lo que tenia hecho para los audios, pero, ahora cambiare la extension a mp4 y reemplazare el audio por video, hay algún método para pausar exactamente el video que se esta reproduciendo o esta presentándose en pantalla?

reactjs – Como obtener los datos de la fila de una tabla al hacer click en un boton. React

Estoy tratando de poder obtener los datos de la fila de una tabla cuando haga click en el boton de editar. Especificamente que obtenga unicamente los datos de la fila seleccionada.

Como podria hacer eso ?

Aqui renderizo la tabla

<table className="table table-dark table-striped table-hover table-bordered">
    <thead>
        <tr>
            <th style={{ width: 100 }}>ID</th>
            <th style={{ width: 150 }}>Nombre</th>
            <th style={{ width: 150 }}>Precio</th>
            <th style={{ width: 150 }}>Stock</th>
            <th style={{ width: 150 }}>Proveedor</th>
            <th style={{ width: 150 }}>Acciones</th>
        </tr>
    </thead>
    <tbody>
        {body && body.map( b =>    
            <tr key={b.id}>
                <td>{b.id}</td>
                <td>{b.nombre}</td>
                <td>{b.precio}</td>
                <td>{b.stock}</td>
                <td>{b.proveedor.nombre}</td>
                <td>
                    <button 
                        className="btn btn-info btn-sm"
                        onClick={ handleActua }
                        >
                        Editar
                    </button>
                    &nbsp;
                    <button className="btn btn-danger btn-sm">Eliminar</button>
                </td>
            </tr>
        )}
    </tbody>
</table>

La data la obtengo de una base de datos y esta se almacena en el store de redux.

Asi es como se ve la tabla

Asi es como se ve la tabla, cuando agregue mas campos quiero poder seleccionar uno y poder editarlo. Pero no encuentro la manera de poder obtener los datos de las filas al hacer el click.

Espero alguien pueda ayudarme y gracias desde ya por tomarse el tiempo de leer el post.

PD: La tabla esta hecha con bootstrap

javascript – Como deshabilitar botón según el valor del campo en base de datos

Así tal cual como dice la pregunta como puedo deshabilitar un botón según el valor del campo que este registrado en base de datos, en palabras mas palabras menos lo que deseo es deshabilitar el botón cuando en el campo de la base de datos se encuentre registrado valores como 0,1,2.

Inicialmente el botón se encuentra ubicado dentro de un <td> en una tabla que estoy construyendo por medio de una función en Javascript.

La función es la siguiente:

function format(d) {
    // `d` is the original data object for the row
    console.log(d);
      let tabla = `<table cellpadding="5" cellspacing="0" style="border-collapse: separate; border-spacing: 40px 5px;">
                    <thead>
                        <tr>                           
                            <th>
                                Total
                            </th>                          
                        </tr>
                        </thead>
                        <tbody>`;
                            d.Factura.forEach(f => {
                                tabla += `<tr>                                                             
                                <td>${f.Total}</td>                                 
                                <td><button type="button" class="btn btn-primary" data-toggle="modal" data-target="#ModalCarga" onclick="Cargar('${f.Orden}' , '${f.Numero}')">Cargar</button></td>
                                </tr>`;
                            });
                       tabla += '</tbody></table>';
                       return tabla;   
}

Es importante resaltar que el campo en la base de datos cambiara según el criterio puede tener valores del 0 al 6 pero por ahora me interesa deshabilitar el botón para los valores 0,1,2, es necesario que esta información se consulte directamente a la base de datos.

Adicional la información en la tabla se esta cargando haciendo uso de PHP y un procedimiento almacenado, el código es el siguiente:

<?php
    header('Content-Type: text/html; charset=utf-8');
    //error_reporting(E_ALL ^ E_NOTICE);
    
    $param = $_POST('param');   
    switch($param) {
        case '1': 
                $query = array();
                include './db/connect.php';
                $USER = utf8_encode($_POST('user'));
                $sql = "{call SPTest(?)}";              
                $params = array($USER);
                $stmt = sqlsrv_query($conn, $sql, $params);
                $stmt1 = sqlsrv_query($conn, $sql, $params);            
                if ( $stmt === false) {
                    die( print_r( sqlsrv_errors(), true) );
                }               
                //Se inicializa el arreglo antes del ciclo
                $query = ();
                $query1 = ();
                //Se necesita numero de orden de compra para agrupar
                $ultimaOrden = '';
                $ultimoNumero = '';
                
                while( $row1 = sqlsrv_fetch_array($stmt1) ) {
                    $record1 = array(
                        "Numero"  => $row1('Numero')
                        
                    );
                    array_push($query1, $record1);
                }
                
                while( $row = sqlsrv_fetch_array($stmt) ) {
                    
                if(strcmp($ultimaNumero, utf8_encode ($row('Numero'))) != 0) {
                
                    $query($indice)("Numero")() = (
                        "Orden"       => $row('Orden'),
                        "Numero"      => $row('Numero'),
                        "Total"       => $row('Total'), //Total         
                    );
                
                    $ultimaNumero = utf8_encode ($row('Numero'));
                }               
                }

                sqlsrv_free_stmt( $stmt);       
                sqlsrv_close($conn);

                $json = (
                    "success"=> count($query) > 0 ? true : false,
                    "data"=>$query
                );
                echo json_encode($json);
        break;  
  }
?>

El campo que contiene el valor que deseo validar corresponde a Estatus la consulta que contiene el procedimiento almacenado es el siguiente:

Select V.PURCHID as 'Orden',        
           V.ID as 'Numero',
           V.PRICE as 'Total',
           V.ESTATUS as 'Estatus'
    from VENTAS RC; 

Alguien tiene idea de como hacer posible esta validación consultando el valor a la tabla?

javascript – Como mostrar ‘algo’ al hacer click en un boton con React

Quiero hacer que cuando le damos click al boton ‘Haceme click’ te muestre el titulo en este caso:

Pero no estaria mostrando nada y no entiendo por que.
Solamente me funciona si retorno con console.log o con alert, pero si quiero retornar algun titulo(h1) o algun div no me funciona

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js">
export default function Descomposicion() {
    return (

        <div>
            <StyleCSS></StyleCSS>
            <Botton></Botton>

        </div>


    )
    
}


function handleClick () {
    return (
        <h1>Hola Mundo</h1>
    )
}

function Botton (props) {
    return (
        <button onClick={StyleCSS}>Haceme click</button>
    )
}

class StyleCSS extends React.Component {
    render () {
        return (
            <h1 style={
                {
                    color: "royalblue",
                    backgroundColor:"yellowgreen"
                }
            }>Hola</h1>
        )
    }
}

</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

javascript – Habilitar/deshabilitar boton en datatable server-side

Utilizo datatables server-side primero para traerlo de la bd y despues agregar ese producto seleccionado a una clase para irse agregando los productos que se deseen. Esto ya lo pude hacer, mi problema es que ahora quiero deshabilitar el boton que agrega el producto seleccionado y lo que e conseguido es que me deshabilita todos los botones de todos los productos. Les comparto el codigo que tengo hasta ahora:

var tablaCreapedidos = $(".tablaCreapedidos").DataTable({
responsive: true,
deferRender: true,
processing: true,
serverSide: true,
ajax: "ajax/serversideCreapedido.php",
columnDefs: ({
    "targets": 4,
    "data": null,
    "render": function (data, type, row){
        'use strict';
        return '<div class="btn-group"><button class="btn btn-info btn-sm btnAgregarProducto" id="' + row(0) + '"><i class="fas fa-plus-circle"></i></button></div>';
    }
},
{
 "targets": 3,
 "render": function (data, type, row) {
    'use strict';
    if (data === "") {
        return '<img src="vista/img/productos/default/producto.png" class="img-thumbnail" width="40px">';
    } else {return '<img src="' + data + '" class="img-thumbnail" width="40px">'; }
 }
}),
language: {
    url: 'plugins/datatables/Spanish.json'
} 
});

Lo anterior es para iniciar la tabla, ahora les muestro donde traigo el producto:

i$(document).on("click", ".btnAgregarProducto", function () {
'use strict';
var idProdpe = $(this).attr("id");
var datos = new FormData();
datos.append("idProduct", idProdpe);
$.ajax({
    url: 'controlador/traerProducto.php',
    method: "POST",
    data: datos,
    cache: false,
    contentType: false,
    processData: false,
    dataType: "json",
    success: function (respuesta) {
        tablaCreapedidos.on('draw', function(){
            $(".btnAgregarProducto").removeClass("btn-info");
            $(".btnAgregarProducto").addClass("btn-outline-info disabled"); 
        }).ajax.reload(null, false);
        var nombre = respuesta.nombre_producto;
        var costo = respuesta.precio_venta;
        $(".nuevoPropedido").append(
            '<div class="row">'+
             '<div class="col-5" style="padding-right:0px">'+
              '<div class="input-group mb-3">'+
               '<div class="input-group-prepend">'+
                '<button type="button" class="btn btn-danger btnQuitarProducto" idProdpe="'+idProdpe+'"><i class="fas fa-times"></i></button>'+
               '</div>'+      
               '<input type="text" class="form-control" id="agregarPropedido" name="agregarPropedido" value="'+nombre+'" readonly>'+
              '</div>'+
             '</div>'+
             '<div class="col-3">'+
              '<input type="number" class="form-control" id="agregarProcantidad" name="agregarProcantidad" min="1" step="1" value="1">'+
             '</div>'+
             '<div class="col-4" style="padding-left:0px">'+
              '<div class="input-group mb-3">'+
               '<div class="input-group-prepend">'+
                '<label class="input-group-text"><i class="fas fa-dollar-sign"></i></label>'+
               '</div>'+
               '<input type="text" class="form-control" id="agregarProprecio" name="agregarProprecio" value="'+costo+'" readonly>'+
              '</div>'+
             '</div>'+
            '</div>'
         );
    }
});
});

Con este codigo solo consigo que todos los botones se deshabiliten:

introducir la descripción de la imagen aquí

Y con el siguiente codigo todos se vuelven a habilitar:

$(".formCreapedido").on("click", ".btnQuitarProducto", function () {
'use strict';
$(this).parent().parent().parent().parent().remove();
var idProdpe = $(this).attr("idProdpe");
tablaCreapedidos.on('draw', function(){
    $(".btnAgregarProducto").removeClass("btn-outline-info disabled");
    $(".btnAgregarProducto").addClass("btn-info"); 
}).ajax.reload(null, false);
});

introducir la descripción de la imagen aquí

como puedo hacer para que solo se deshabilite el boton del producto que se selecciona?