Recibir el evento de drag en un NSImageView creado por programación

Tengo un NSImageView creado por programación y me gustaría ejecutar una función cuando el usuario suelte una imagen arrastrada sobre él. ¿Cómo podría hacerlo?

imageHolder = NSImageView(frame: NSRect(x: 0, y: 0, width: 256, height: 256)) imageHolder.wantsLayer = true imageHolder.image = NSImage.init(named: "picture") imageHolder.isEditable = true view.addSubview(imageHolder) 

Evento onkeypress no detecta tecla retroceso

Tengo un input text en el que escribo lo que pretendo buscar, uso el evento onkeypress para llamar a la función que toma el valor del campo y busca coincidencias. EL problema es que al borrar, al usar la tecla retroceso, no actua el evento onkeypress y no se llama a la funcion.

<input type = "text"  onkeypress= "entidades();" onchange= "entidades();"   class= "left-align form-control input-sm"    id="idProveedorPT" size="38" > 

Como salvar amostras antes e depois de um evento em um buffer circular?

Olá, estou processando um dataset de 17 horas de áudio .wav (16-bit PCM, 192khz), para simular um processamento em “tempo real” que será embarcado em um ESP32, Arduino DUE ou um RASP, depende dos resultados.

Como estou lidando com isto atualmente?

Primeiramente eu fatiei este arquivo em amostras de 1 minuto, após eu criei um programa em C que transforma esse arquivo em um .CSV (pulando todo o head do .wav e pegando apenas os campos de data).

OBS: Escolhi CSV para ter o dado em uma melhor disposição afim de realizar testes no Scilab para validar os algoritmos.

Com esse arquivo .CSV gerado eu o executo em um segundo programa. Que abre este arquivo, preenche um buffer circular com 130ms (24900 valores), quando o buffer está preenchido totalmente, o código começa a computar o RMS (Root Mean Square) em janela móvel com sobreposição de 10ms, o tamanho da janela é de 30ms. Quando obtenho um valor superior a 1000 é considerado um evento.

Abaixo as figuras do meu objetivo:

Evento de Passagem com demarcação de inicio e fim.

Aqui fica evidenciado a Janela com 50ms antes e depois a qual me refiro:

Janela co 50ms antes e depois do evento de passagem de 100ms

A minha questão que não consigo resolver é:

Como devo salvar estes 50ms antes e depois do evento, visto que o evento pode ocorrer em qualquer lugar do buffer e se o evento durar por mais de uma janela?

Alguns dados para facilitar o entendimento:

130ms =  24900 valores do meu arquivo .csv 50ms  =  9600 valores  30ms  =  5700 valores 10ms  =  1920 valores 

Já busquei varias fontes, porem a grande parte das bibliografias de DSP e Estruturas de dados tratam estes temas de forma superficial, Apenas exemplificando o que é um buffer circular e não como lidar com ele de forma útil.

Segue meu esboço de código, cujo o qual parece estar com uma abordagem errada do problema mas realmente estou sem ideias de como proceder, no caso criei um dataset de 1 á 100 para facilitar o debug:

    #include<stdio.h>     #include<stdlib.h>     #include<string.h>     #include<math.h>      // Define the size of window 50ms     #define window_size 3 // 30ms     #define buffer_size 13 // 130ms = 50ms + 30ms + 50ms      int main()     {         //Definindo variaveis.         int buffer[buffer_size]={0}; // cria buffer com 150ms do buffer;         int write = 0;         int i = 0, j = 0;         int read = 0;         int read1 =0;         int write1 = 0;         int counter_elements = 0;         int number_lines = 0;         int save_line = 0;         char c;         char str[1024];     // vetor para armazenar os caracteres lidos como string.         int inicio = 0, fim = 0;         //RMS         int soma_quadrado = 0;         int rms = 0;         int pre_amostragem[5] = {0};          //Define variaveis referentes a leitura do arquivo e manipulacoes do mesmo.         FILE * fp;         FILE * LOG;         FILE * log_rms_final;          // Open the file and verify is NULL.         if((fp = fopen("generator.txt","r")) == NULL)         { // Define o nome do csv para abrir             printf("Error! Can't open the file.\n");             exit(1);         }         // Registra os valores do rms         LOG = fopen("RMSValues.csv", "a");         // Cria o arquivo que registra 50ms antes e depois com a passagem.         log_rms_final = fopen("Log_RMS.csv","a");         //devemos ler o arquivo e processar:         int lines = 0;         while(!feof(fp))         {             fgets(str,1024,fp); //Lê o arquivo de 1024 cacacteres e armazena no vetor str.             //buffer[write] = (atoi(str) & 0xff00) / 256; // Adiciona no buffer na posição head o caractere convertido.             buffer[write] = atoi(str);             write = (write + 1) % buffer_size; // faz ficar "redondo".             counter_elements++; // Soma um na quantidade de elementos          c = fgetc(fp);         if(c == '\n')         {             lines++;         }         printf("%d\n", lines);             //Se o buffer ta cheio.             if(counter_elements == buffer_size)             {                 // Janela da passagem                 read1 = read; // read1 carrega o primeiro valor da janela e vai somando um                 for(i = 0; i < window_size; i++)                 {                     //Faz o quadrado e soma.                     soma_quadrado += buffer[read1]*buffer[read1];                     read1 = (read1 + 1) % buffer_size;                 }                  // RMS dado pela raiz da soma dos quadrados sobre o tamanho da janela;                 rms = sqrt(soma_quadrado/window_size);                  fprintf(LOG, "\n %d", rms); // Grava no arquivo                  if(rms > 1000)                 {                     printf("rms: %d\n",rms);                      // Salva os 50ms anteriores a passagem e a janela.                     write1 = write;                     for(j = 0 ; j < 5; j++)                     {                         //Torna o preenchimento circular do vetor de pré amostragem.                         write1 = (write1 + (buffer_size - 1)) % buffer_size;                         //pré amostragem recebe os valores do buffer referente aos 50 ms anteriors.                         pre_amostragem[j] = buffer[write1];                     }                      fprintf(log_rms_final,"%s","\n");                     // Grava o vetor de 50ms no arquivo de log no sentido correto.                     for(j = 4; j >= 0; j--)                     {                         fprintf(log_rms_final,"%d - pre \n",pre_amostragem[j]);                     }                      fprintf(log_rms_final,"%s","\n");     /*                     for(j = 0; j < window_size; j++)                     {                          fprintf(log_rms_final,"%d - janela\n",buffer[read1]);                         read1 = (read1 + 1) % buffer_size;                     }     */                     fprintf(log_rms_final,"%s","\n");                      //Salva os 50ms pós a passagem.                      /*                     fseek(log_rms_final,save_line - 3,save_line);                      for(j = 0; j < 5; j++){                          fgets(str,1024,fp);                         fprintf(log_rms_final,"%d - pós \n",atoi(str));                      }                     */                 }                  soma_quadrado = 0;                 rms = 0;                  //Faz a cola ficar circular, pula de 160 em 160.                 read = (read + 1) % buffer_size;                  //meu contador deve consumir mais 50ms                 counter_elements = counter_elements - 2;              }             soma_quadrado = 0;             rms = 0;          }      fclose(fp);     fclose(LOG);     fclose(log_rms_final);     return 0;     } 

Qualquer sugestão será bem vinda. Obrigado.

Mismo evento cuando se hace click y cuando se pulsa una tecla

Estoy intentando aprender React haciendo una simple “maquina de sonidos”.

Pues bien quiero que cuando se pulse una tecla o se haga click en cualquiera de los .drum-pad se active esta clase (digamos que la clase se activaría en cada uno de los div .drum-pad)

    .onclickonkeyed{   background: white;   -webkit-transition: background-color 300ms linear;    -ms-transition: background-color 300ms linear;     transition: background-color 300ms linear; } 

¿Eso se puede hacer de una vez?

¿O cómo se debería hacer?

Tengo esto de momento:

class DrumPad extends React.Component{   constructor(props){     super(props)   }   render(){     return(       <div id="grid-keys">         <div className="drum-pad" id="Heater-1"><audio src="" className="clip" id="Q"></audio>Q</div>         <div className="drum-pad" id="Heater-2"><audio src="" className="clip" id="W"></audio>W</div>         <div className="drum-pad" id="Heater-3"><audio src="" className="clip" id="E"></audio>E</div>         <div className="drum-pad" id="Heater-4"><audio src="" className="clip" id="A"></audio>A</div>         <div className="drum-pad" id="Clap"><audio src="" className="clip" id="S"></audio>S</div>         <div className="drum-pad" id="Open-HH"><audio src="" className="clip" id="D"></audio>D</div>         <div className="drum-pad" id="Kick-n'-Hat"><audio src="" className="clip" id="Z"></audio>Z</div>         <div className="drum-pad" id="Kick"><audio src="" className="clip" id="X"></audio>X</div>         <div className="drum-pad" id="Closed-HH"><audio src="" className="clip" id="C"></audio>C</div>       </div>     )   } }  class App extends React.Component {   constructor(props){     super(props)   }   render(){     return (       <div id="drum-machine">         <DrumPad />         <div id="display">"SOUND"</div>       </div>     )   } }  ReactDOM.render(<App/>, document.getElementById('root'))
body{   background: linear-gradient(135deg, #708090 21px, #d9ecff 22px, #d9ecff 24px, transparent 24px, transparent 67px, #d9ecff 67px, #d9ecff 69px, transparent 69px), linear-gradient(225deg, #708090 21px, #d9ecff 22px, #d9ecff 24px, transparent 24px, transparent 67px, #d9ecff 67px, #d9ecff 69px, transparent 69px)0 64px; background-color:#708090; background-size: 64px 128px;  }  #drum-machine{   width: 40%;   margin: 0 auto;   padding: 30px;   background: #8C271E;   border: 6px solid #BD632F;   border-radius: 4px;   color: black;   font-weight: bold;   font-family: arial;   display: flex; } #display{   font-style: italic;   background: #D9D1D4;   height: 20PX;   width: 70px;   padding: 10px 25px 10px 25px;   border: 2px solid #7C7C7C;   margin-left: 60px;   margin-top: 60px; } #grid-keys{   display: grid;   grid-template-columns: repeat(3, 100px);   grid-auto-rows: minmax(50px, auto);   grid-gap: 10px; }   #grid-keys .drum-pad{     background: #D8973C;     display: flex;     justify-content: center;     align-items: center;     border-radius: 3px;     cursor: pointer;   } .onclickonkeyed{   background: white;   -webkit-transition: background-color 300ms linear;     -ms-transition: background-color 300ms linear;     transition: background-color 300ms linear; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <div id="root"></div>

Mostrar e esconder de acordo com outro evento wordpress

Boa tarde a todos, eu queria fazer algo deste genero no meu site em wordpress e pensei em fazer com botoes que mostrassem/ escondessem o conteudo de acordo com o evento quando fossem clicados , alguem conhece algum plugin que faça isso? em codigo como fazer? segue o link de inspiração

https://maximainformatica.pt/pt/competencies/

¿como leo funciones en un componente angular con typescript o javascript usando el evento onmouseover en mi html?

no puedo leer las funciones que coloco en mi component.ts desde mi component.html utilizando el evento onmouseover

ya intente colocarlo dentro de el constructor también dentro del ngOnInit y fuera de ambos pero no funciona también intente enlazar el archivo .js con mi component.html y con el index.html de mi proyecto y sigue saliendo el mismo error este:

uncaught ReferenceError: aler is not defined at HTMLAnchorElement.onmouseover (Juego:15) 

donde aler es una función en mi componen.ts y juego:15 es la linea donde la llamo

function aler() {     alert("fg"); } 

y la llama en mi componente.html de esta manera en la etiqueta a de html

<a onmouseover="aler();"> 

Pegar evento que aconteceu na página

Bom dia!

Existe alguma maneira de ficar monitorando os eventos que estão acontecendo na página?

Alguma função que deixe registrando no console.log por exemplo, não sei, é só um exemplo..

Existe uma maneira de pegar isso?

Por exemplo, se eu clicar na página eu sei que é um evento de click, mas existem outros eventos personalizados que acontecem em determinados momentos que eu não conseguiria saber por si só, por isso minha dúvida.

No graba evento ics iCalendar

estoy generando un archivo ICS con iCalendar, el archivo se genera correctamente sin errores el mismo envio por correo desde PHP en el telefono celular al tratar de agregar dicho evento generado no se guarda en el calendario, tengo el siguiente codigo:

require_once("../icalendar/zapcallib.php"); $  file = '../invite.ics';  $  organizer = 'xx.xx@email.com'; $  title = $  _POST['title']; //obtengo fechas inicio/fin $  event_start = $  _POST['fecha_inicial']; $  event_end = $  _POST['fecha_final']; //llamamos a la clase iCalc $  icalobj = new ZCiCal(); //crear nodo principal evento $  eventobj = new ZCiCalNode("VEVENT", $  icalobj->curnode); //nodo titulo $  eventobj->addNode(new ZCiCalDataNode("SUMMARY:" . $  title)); //nodo fecha inicio $  eventobj->addNode(new ZCiCalDataNode("DTSTART;TZID=America/Guayaquil:" . ZCiCal::fromSqlDateTime($  event_start))); //nodo fecha final $  eventobj->addNode(new ZCiCalDataNode("DTEND;TZID=America/Guayaquil:" . ZCiCal::fromSqlDateTime($  event_end)));   $  uid = date('Y-m-d-H-i-s') . "@email.com"; $  eventobj->addNode(new ZCiCalDataNode("UID:" . $  uid)); // DTSTAMP fecha automatica requerida $  eventobj->addNode(new ZCiCalDataNode("DTSTAMP:" . ZCiCal::fromSqlDateTime())); //LOCATION referencia $  eventobj->addNode(new ZCiCalDataNode("LOCATION:" . $  _POST['direccion'])); //nodo organizador $  eventobj->addNode(new ZCiCalDataNode("ORGANIZER;CN=RGmanagementcorp:MAILTO:" . $  organizer)); //nodo descripcion $  eventobj->addNode(new ZCiCalDataNode("Description:" . ZCiCal::formatContent(     "Reunion RG" ))); //obtengo el ics en variable como string $  ics_file_contents = $  icalobj->export(); //coloco el ics string en archivo $  file file_put_contents($  file, $  ics_file_contents); 

con dicho codigo me genera un archivo como este:

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//ZContent.net//ZapCalLib 1.0//EN CALSCALE:GREGORIAN METHOD:PUBLISH BEGIN:VEVENT SUMMARY:Normas ISO DTSTART;TZID=America/Guayaquil:20190507T093000 DTEND;TZID=America/Guayaquil:20190507T103000 UID:2019-05-06-18-55-35@email.com DTSTAMP:20190506T235535 LOCATION:La Ronda ORGANIZER;CN=RGmanagementcorp:MAILTO:xx.xx@email.com Description:Reunion RG END:VEVENT END:VCALENDAR 

de antemano gracias por sus sugerencias..!!

¿Es posible disparar un evento cuando un item de un ListViewCollection cambia?

estoy trabajando hace poco en WPF, y me ha surgido una duda.

Tengo dos ViewModel,

public class Foo {     public string Ejemplo { get; set; }     public bool Checked { get; set; }       }  public class Bar {     private ObservableCollection<Foo> mFooList;     public ListCollectionView FooList { get; set; }     public Bar()     {         //Lleno la lista observable          FooList = new ListCollectionView(mFooList);        } } 

Hasta este punto, todo funciona correcto, ya que FooList es Filtrable y editable a su vez.

El ViewModel Bar se representaría visualmente con un DataGrid en el cual aparecerá el string Ejemplo en una columna, y en otra un CheckBox que permita la posibilidad de chequear la fila correspondiente.

Lo manejo de la siguiente manera:

<DataGrid Grid.Row="1"     AutoGenerateColumns="False"     ItemsSource="{Binding FooList}"     CanUserAddRows="False" CanUserDeleteRows="False"     d:DataContext="{d:DesignInstance Type=viewModels:Foo}" >     <DataGrid.Columns>         <DataGridTextColumn Header="Ejemplo" Binding="{Binding Path=Ejemplo}" IsReadOnly="True"/>                         <DataGridTemplateColumn Header="Debe exportarse?" >                 <DataGridTemplateColumn.CellTemplate>                 <DataTemplate>                     <CheckBox IsChecked="{Binding Path=Checked, UpdateSourceTrigger=PropertyChanged}"/>                 </DataTemplate>             </DataGridTemplateColumn.CellTemplate>         </DataGridTemplateColumn>     </DataGrid.Columns> </DataGrid> 

El asunto, es que necesito detectar cuando un CheckBox es tildado, o destildado, pero no estoy logrando detectarlo con el ViewModel mediante INotifyPropertyChanged ni bindear un Command en la propiedad Checked del CheckBox

¿Cómo debo notificar a la vista para poder reaccionar a un cambio en la columna de los CheckBox?

Gracias!

fullcalendar v4 cambiar color del evento eventclick

no logro resolver esto..

Tengo eventos que disponibles en color verde para reservar. Al hacer click en el evento se genera la reserva y el evento debe pasar a color rojo y deshabilitar el click.

Si hago console.log de info.event.classNames[0] encuentro la clase original (“disponible”). QUiero cambiar esa clase a “completo” pero no encuentro cómo hacerlo. Alguna sugerencia?

mi codigo es este:

function initCalendar(jdata, sala_id) { var calendarEl = document.getElementById('calendar'); $  ('#calendar').empty(); var calendar = new FullCalendar.Calendar(calendarEl, {     plugins: ['timeGrid'],     defaultView: 'timeGridWeek',     minTime: '08:00:00',     maxTime: '18:00:00',     allDaySlot: false,     weekends: false,     defaultDate: jdata.defaultDate,     contentHeight: 'auto',     locale: 'es',     eventClick: function (info) {         var dia = moment(info.event.start).format("DD/MM/YYYY");         var hora = moment(info.event.start).format("HH:mm");          if (info.event.classNames[0] == 'completo') {            return;         }          reservarSala(info.event, sala_id);     },     events: jdata.events }); calendar.render(); 

}