text

Mattepuffo's logo
Copiare testo senza formattazione in Windows

Copiare testo senza formattazione in Windows

Quando copiamo del testo, ad esempio dal web, e lo copiamo su un editor di testo tipo Word, abbiamo tutta la formattazione completa di link, grassetto, ecc.

Molto spesso è un comportamento che non ci piace e non ci serve, e siamo costretti a passare per un editor tipo Notepad per ovviare al problema.

Mattepuffo's logo
PHP RESTful client

PHP RESTful client

Di default PHP non ha librerie per interrogare un servizio RESTful.

L'unico modo sarebbe usare cURL, o una libreria esterna.

Tra le varie disponibili mi sono buttato su Pest.

Questo perchè non ha altre dipendenze, e per installarla basta copiare i tre file sul server.

La libreria mette a disposizione tre classi, rispettivamente per:

  • leggere i dati in formato plain text
  • leggere i dati in formato JSON
  • leggere i dati in formato XML

Usare la libreria è molto semplice.

Mattepuffo's logo
Javascript Select selezionata

Javascript Select selezionata

Una cosa molto richiesta è come sapere quale voce di una <select> è stata selezionata usando Javascript.

Ci sono ovviamente infiniti modi per farlo, e molto dipende anche da quello ci si deve fare.

Vi posto una funzione un pò generale; faremo un controllo sul valore e poi gli faremo fare qualcosa.

Mattepuffo's logo
Creare un Frame con wxPython

Creare un Frame con wxPython

E piano piano siamo arrivati anche a Python!

Il primo articolo di questo linguaggio riguarda la crezione di una finestra usando le librerie grafiche wxPython.

Le librerie wx sono open e multipiattaform, e ci sono porting per vari linguaggi.

La guida è basata su Python 2.7.

Cercando di fare subito le cose bene, facciamo subito le cose OOP.

Creiamo due file, uno che è i file di init, e uno che contiene la classe per il Frame.

Il primo file l'ho chiamato __init.py con questo dentro:

import wx
from Form import *

if __name__ == "__main__":
    app = wx.App()
    f = Form()
    f.Show()
    app.MainLoop()

Prima di tutto imprtiamo le librerie wx e richiamiamo anche l'altra classe con il Frame.

Sotto inizializimo la App e mostriamo il Frame; questo è il classico modo per lanciare le applicazioni wxPython.

Mattepuffo's logo
Usare i form con Sencha Touch

Usare i form con Sencha Touch

Proseguiamo con Sencha Touch e i suoi componenti.

Oggi vediamo come usare i form.

Non terremo in considerazione validazione cose del genere, ma solo un uso basilare.

Per prima cosa preprate un file PHP (o di altro linguaggio lato server) da contattare al submit del form.

Ricordo che Sencha Touch è Javascript driven e quindi per svolgere determinate operazione (invio email, iscrizione, ecc....) richiede l'uso di file lato server.

Per fare un esempio un pò più completo ho pensato di usare subito un file lato server:

// test.php

<?php

$response = array('result' => $_POST['nome']);

echo json_encode($response);

La risposta che il file invierà sarà in formato JSON e sarà il nome inserito nella textfield.

Mattepuffo's logo
Creare un countdown con C#

Creare un countdown con C#

Oggi vedremo come creare un piccolo cpuntdown con C# e Windows Form.

Create una nuova applcazione Windows Form.
Nella finestra dovete mettere come minimo questi elementi:

  • una TextBox per impostare le ore
  • una TextBox per impostare i minuti
  • una TextBox per impostare i secondi
  • un Button per lo start
  • un Button per la pausa
  • un Button per lo stop
  • una Label per lo scorrere delle ore
  • una Label per lo scorrere dei minuti
  • una Label per lo scorrere dei secondi
  • un oggetto Timer che trovate nel gurppo Componenti; quando lo aggiungete verrà visualizzato nella barra in fondo alla finestra del designer

Inoltre, per fare le cose più carine, i tasti di stop e pausa all'inizio sono disabilitati.

Di volta in volta abiliteremo/disabiliteremo solo i pulsanti che ci servono.

A questo punto nel codice del form pirma di tutto aggiungiamo 4 variabili private:

private int seconds = 0;
private int minutes = 0;
private int hours = 0;
private bool paused;

Penso che non abbiano bisogno di molte spiegazioni.

Poi abbiamo bisogni di un metodo per ogni bottone più uno per controllare l'oggetto Timer.

Cominciamo col metodo del pulsante start:

private void btnStart_Click(object sender, EventArgs e)
        {
            if (paused != true)
            {
                if (txtHr.Text != String.Empty || txtMn.Text != String.Empty || txtSn.Text != String.Empty)
                {
                    try
                    {
                        if (txtHr.Text != String.Empty)
                        {
                            hours = Convert.ToInt32(txtHr.Text);
                        }
                        if (txtMn.Text != String.Empty)
                        {
                            minutes = Convert.ToInt32(txtMn.Text);
                        }
                        if (txtSn.Text != String.Empty)
                        {
                            seconds = Convert.ToInt32(txtSn.Text);
                        }
                        btnStart.Enabled = false;
                        btnPause.Enabled = true;
                        btnStop.Enabled = true;
                        cdTimer.Enabled = true;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
                else
                {
                    MessageBox.Show("Inserire almeno un valore");
                }
            }
            else
            {
                cdTimer.Enabled = true;
                paused = false;
                btnStart.Enabled = false;
                btnPause.Enabled = true;
                btnStop.Enabled = true;
            }
        }

Prima controlliamo se lo stato del Timer è in pausa.

Poi controlliamo che almeno una delle TextBox sia valorizzata.

Se tutto va bene valoriaziamo le variabili int private con i valori delle TextBox e abilitiamo il Timer (cdTimer).