Benvenuto nella documentazione del Kit di Sviluppo WinGabriel! Questo kit è stato pensato per permetterti di creare funzionalità aggiuntive per il programma WinGabriel.
Qui sotto troverai una spiegazione dettagliata degli oggetti principali e del loro funzionamento, con esempi sia in C# che in VB.NET. Una volta sviluppato il tuo componente, potrai inviarlo per l’inserimento nel programma, qualora si vogliano rendere disponibili a tutti, all’indirizzo: gabriel.pappalardo@icloud.com.
Attenzione: questo indirizzo email non deve mai essere utilizzato per richiedere assistenza. Non forniamo assistenza per lo sviluppo o l’utilizzo del programma, e tali richieste verranno cancellate senza risposta.
—
Componenti Fondamentali di WinGabriel
WGMenu: Creare Menu Interattivi
L’oggetto WGMenu è il tuo punto di partenza per creare menu di navigazione per le tue funzionalità aggiuntive. Permette agli utenti di scegliere tra diverse opzioni per avviare specifiche azioni.
Come Funziona
- Navigazione: Gli utenti possono scorrere le voci del menu utilizzando le frecce SU e GIÙ.
- Selezione: Per selezionare una voce, basta premere il tasto INVIO.
- Definizione delle Voci: Ogni voce del menu è associata a una specifica azione (un metodo o una subroutine) che verrà eseguita quando la voce viene selezionata.
Esempi di Utilizzo
VB.NET:
Public Sub AvviaMenuFunzioneAggiuntiva()
Dim menu As New WGMenu()
menu.aggiungi("Esegui Azione 1", AddressOf MiaAzioneUno)
menu.aggiungi("Apri Sotto-menu", AddressOf SottoMenu)
menu.avvia("Menu Funzionalità Aggiuntiva") ' Il titolo che verrà letto dallo screen reader
End Sub
Private Sub MiaAzioneUno()
' Codice per la tua azione specifica
End Sub
Private Sub SottoMenu()
' Codice per un eventuale sotto-menu o altra logica
End Sub
C#:
public void AvviaMenuFunzioneAggiuntiva()
{
WGMenu menu = new WGMenu();
menu.Aggiungi("Esegui Azione 1", MiaAzioneUno);
menu.Aggiungi("Apri Sotto-menu", SottoMenu);
menu.Avvia("Menu Funzionalità Aggiuntiva"); // Il titolo che verrà letto dallo screen reader
}
private void MiaAzioneUno()
{
// Codice per la tua azione specifica
}
private void SottoMenu()
{
// Codice per un eventuale sotto-menu o altra logica
}
—
Campi: Acquisire Input dall’Utente
L’oggetto Campi (spesso usato come wgcontrols.Campi) è fondamentale per raccogliere dati dall’utente attraverso diversi tipi di input (testo, numeri, date, orari) all’interno delle tue funzionalità aggiuntive.
Come Funziona
- Navigazione: Gli utenti possono passare da un campo all’altro utilizzando le frecce SU e GIÙ, oppure il tasto INVIO per passare al campo successivo.
- Input: Inseriscono i dati nel campo corrente.
- Obbligatorietà: Quando aggiungi un campo, l’ultimo parametro booleano (
TrueoFalse) indica se il campo è obbligatorio. Se èTrue, l’utente dovrà compilarlo per poter procedere, altrimenti il programma considererà l’annullamento dell’operazione. - Fine Input: L’evento
Fineviene attivato quando l’utente completa l’inserimento dei dati (ad esempio, premendo INVIO sull’ultimo campo o ESC per annullare). È qui che recupererai i valori inseriti.
Esempi di Utilizzo
VB.NET:
Private WithEvents campiInputFunzione As wgcontrols.Campi ' Dichiarazione con WithEvents
Public Sub RichiediDatiPerFunzione()
campiInputFunzione = New wgcontrols.Campi()
campiInputFunzione.Aggiungi("Nome del record", "recordNome", True) ' Campo obbligatorio
campiInputFunzione.AggiungiNumerico("Quantità", "recordQuantita", False) ' Campo facoltativo (False)
campiInputFunzione.AggiungiData("Data di creazione", "recordData", True)
campiInputFunzione.AggiungiOrario("Ora evento", "recordOra", False)
AddHandler campiInputFunzione.Fine, AddressOf GestisciFineCampiFunzione ' Associa la subroutine all'evento Fine
campiInputFunzione.avvia()
End Sub
Private Sub GestisciFineCampiFunzione()
If campiInputFunzione.TuttiObbligatoriRiempiti() Then
Dim nomeRecord As String = campiInputFunzione.RecuperaValore("recordNome")
Dim quantita As String = campiInputFunzione.RecuperaValore("recordQuantita")
Dim dataRecord As String = campiInputFunzione.RecuperaValore("recordData")
Dim oraEvento As String = campiInputFunzione.RecuperaValore("recordOra")
' Qui puoi usare i valori recuperati per la tua funzionalità
Dim messaggio As New WGMessaggi()
messaggio.Messaggio("Dati acquisiti: " & nomeRecord & ", Quantità: " & quantita)
messaggio.ShowDialog()
Else
Dim messaggio As New WGMessaggi()
messaggio.Messaggio("Acquisizione dati annullata o campi obbligatori non compilati.")
messaggio.ShowDialog()
End If
campiInputFunzione.Dispose() ' Importante per rilasciare le risorse
End Sub
C#:
private wgcontrols.Campi campiInputFunzione; // Dichiarazione
public void RichiediDatiPerFunzione()
{
campiInputFunzione = new wgcontrols.Campi();
campiInputFunzione.Aggiungi("Nome del record", "recordNome", true); // Campo obbligatorio
campiInputFunzione.AggiungiNumerico("Quantità", "recordQuantita", false); // Campo facoltativo (false)
campiInputFunzione.AggiungiData("Data di creazione", "recordData", true);
campiInputFunzione.AggiungiOrario("Ora evento", "recordOra", false);
campiInputFunzione.Fine += GestisciFineCampiFunzione; // Sottoscrizione all'evento Fine
campiInputFunzione.Avvia();
}
private void GestisciFineCampiFunzione()
{
if (campiInputFunzione.TuttiObbligatoriRiempiti())
{
string nomeRecord = campiInputFunzione.RecuperaValore("recordNome");
string quantita = campiInputFunzione.RecuperaValore("recordQuantita");
string dataRecord = campiInputFunzione.RecuperaValore("recordData");
string oraEvento = campiInputFunzione.RecuperaValore("recordOra");
// Qui puoi usare i valori recuperati per la tua funzionalità
WGMessaggi messaggio = new WGMessaggi();
messaggio.Messaggio($"Dati acquisiti: {nomeRecord}, Quantità: {quantita}");
messaggio.ShowDialog();
}
else
{
WGMessaggi messaggio = new WGMessaggi();
messaggio.Messaggio("Acquisizione dati annullata o campi obbligatori non compilati.");
messaggio.ShowDialog();
}
campiInputFunzione.Dispose(); // Importante per rilasciare le risorse
}
—
WGMenuLista: Mostrare Elenchi Selezionabili
L’oggetto WGMenuLista serve per presentare agli utenti elenchi di elementi. È utile per visualizzare risultati, liste di opzioni o dettagli all’interno delle tue funzionalità aggiuntive.
Come Funziona
- Navigazione: Gli utenti possono scorrere gli elementi dell’elenco con le frecce SU e GIÙ.
- Selezione: Il tasto INVIO seleziona l’elemento corrente. Puoi disabilitare questa funzionalità impostando
inviononconsentitoaTrue(otruein C#), utile per liste di sola lettura. - Opzioni Aggiuntive: È possibile aggiungere un “menu opzioni” specifico per la lista. Questo menu si apre premendo il tasto ALT e fornisce azioni contestuali per l’elemento selezionato (es. “Dettagli”, “Azione”).
Esempi di Utilizzo
VB.NET:
Private WithEvents miaListaFunzione As WGMenuLista ' Dichiarazione con WithEvents
Public Sub MostraElencoElementi()
miaListaFunzione = New WGMenuLista()
miaListaFunzione.ImpostaTitolo("Elenco Elementi Funzionalità")
miaListaFunzione.multiselezioneconsentita = False ' Permetti una sola selezione
miaListaFunzione.inviononconsentito = False ' Permetti la selezione con Invio
' Aggiungi elementi alla lista (testo visualizzato, ID interno)
miaListaFunzione.AggiungiElemento("Elemento A", "ID001")
miaListaFunzione.AggiungiElemento("Elemento B", "ID002")
miaListaFunzione.AggiungiElemento("Elemento C", "ID003")
AddHandler miaListaFunzione.ElementoSelezionato, AddressOf GestisciSelezioneElemento
AddHandler miaListaFunzione.escpremuto, AddressOf ChiudiElencoElementi
' Aggiungi opzioni al menu contestuale (si apre con ALT)
miaListaFunzione.aggiungiopzione("Visualizza Dettagli", AddressOf VisualizzaDettagliElemento)
miaListaFunzione.aggiungiopzione("Esegui Azione", AddressOf EseguiAzioneElemento)
miaListaFunzione.avvia()
End Sub
Private Sub GestisciSelezioneElemento(idSelezionato As String)
Dim messaggio As New WGMessaggi()
messaggio.Messaggio("Hai selezionato l'elemento con ID: " & idSelezionato)
messaggio.ShowDialog()
End Sub
Private Sub VisualizzaDettagliElemento()
Dim id As String = miaListaFunzione.OttieniElemento() ' Recupera l'ID dell'elemento su cui è stata scelta l'opzione
Dim messaggio As New WGMessaggi()
messaggio.Messaggio("Visualizzazione dettagli per ID: " & id)
messaggio.ShowDialog()
End Sub
Private Sub EseguiAzioneElemento()
Dim id As String = miaListaFunzione.OttieniElemento()
Dim messaggio As New WGMessaggi()
messaggio.Messaggio("Eseguita azione sull'elemento con ID: " & id)
messaggio.ShowDialog()
End Sub
Private Sub ChiudiElencoElementi()
miaListaFunzione.abbandona() ' Chiude l'elenco
End Sub
C#:
private WGMenuLista miaListaFunzione; // Dichiarazione
public void MostraElencoElementi()
{
miaListaFunzione = new WGMenuLista();
miaListaFunzione.ImpostaTitolo("Elenco Elementi Funzionalità");
miaListaFunzione.MultiSelezioneConsentita = false; // Permetti una sola selezione
miaListaFunzione.InvioNonConsentito = false; // Permetti la selezione con Invio
// Aggiungi elementi alla lista (testo visualizzato, ID interno)
miaListaFunzione.AggiungiElemento("Elemento A", "ID001");
miaListaFunzione.AggiungiElemento("Elemento B", "ID002");
miaListaFunzione.AggiungiElemento("Elemento C", "ID003");
miaListaFunzione.ElementoSelezionato += GestisciSelezioneElemento;
miaListaFunzione.EscPremuto += ChiudiElencoElementi;
// Aggiungi opzioni al menu contestuale (si apre con ALT)
miaListaFunzione.AggiungiOpzione("Visualizza Dettagli", VisualizzaDettagliElemento);
miaListaFunzione.AggiungiOpzione("Esegui Azione", EseguiAzioneElemento);
miaListaFunzione.Avvia();
}
private void GestisciSelezioneElemento(string idSelezionato)
{
WGMessaggi messaggio = new WGMessaggi();
messaggio.Messaggio($"Hai selezionato l'elemento con ID: {idSelezionato}");
messaggio.ShowDialog();
}
private void VisualizzaDettagliElemento()
{
string id = miaListaFunzione.OttieniElemento(); // Recupera l'ID dell'elemento su cui è stata scelta l'opzione
WGMessaggi messaggio = new WGMessaggi();
messaggio.Messaggio($"Visualizzazione dettagli per ID: {id}");
messaggio.ShowDialog();
}
private void EseguiAzioneElemento()
{
string id = miaListaFunzione.OttieniElemento();
WGMessaggi messaggio = new WGMessaggi();
messaggio.Messaggio($"Eseguita azione sull'elemento con ID: {id}");
messaggio.ShowDialog();
}
private void ChiudiElencoElementi()
{
miaListaFunzione.Abbandona(); // Chiude l'elenco
}
—
WGMessaggi: Mostrare Messaggi all’Utente
L’oggetto WGMessaggi è un modo semplice per fornire feedback o informazioni all’utente all’interno delle tue funzionalità aggiuntive.
Come Funziona
- Basta istanziarlo, impostare il testo del messaggio e chiamare
ShowDialog()per mostrarlo.
Esempi di Utilizzo
VB.NET:
Public Sub MostraMessaggioDiConferma()
Dim messaggio As New WGMessaggi()
messaggio.Messaggio("La tua funzionalità ha completato l'operazione con successo!")
messaggio.ShowDialog()
End Sub
C#:
public void MostraMessaggioDiConferma()
{
WGMessaggi messaggio = new WGMessaggi();
messaggio.Messaggio("La tua funzionalità ha completato l'operazione con successo!");
messaggio.ShowDialog();
}
—
WGDomanda: Porre Domande all’Utente
L’oggetto WGDomanda è utilizzato per chiedere all’utente una conferma o una decisione (Sì/No) all’interno delle tue funzionalità aggiuntive.
Come Funziona
- Si imposta la domanda e si associa un metodo all’evento
rispostadomanda(che riceverà la risposta dell’utente, un valore di tipoDialogResult, tipicamenteDialogResult.YesoDialogResult.No).
Esempi di Utilizzo
VB.NET:
Public Sub ChiediConfermaAzione()
Dim domanda As New WGDomanda()
AddHandler domanda.rispostadomanda, AddressOf GestisciRispostaAzione ' Associa la subroutine
domanda.avvia("Vuoi procedere con questa azione nella tua funzionalità?")
End Sub
Private Sub GestisciRispostaAzione(risposta As DialogResult)
If risposta = DialogResult.Yes Then
Dim msgBox As New WGMessaggi()
msgBox.Messaggio("Azione confermata.")
msgBox.ShowDialog()
Else
Dim msgBox As New WGMessaggi()
msgBox.Messaggio("Azione annullata.")
msgBox.ShowDialog()
End If
End Sub
C#:
public void ChiediConfermaAzione()
{
WGDomanda domanda = new WGDomanda();
domanda.RispostaDomanda += GestisciRispostaAzione; // Sottoscrizione all'evento
domanda.Avvia("Vuoi procedere con questa azione nella tua funzionalità?");
}
private void GestisciRispostaAzione(DialogResult risposta)
{
if (risposta == DialogResult.Yes)
{
WGMessaggi msgBox = new WGMessaggi();
msgBox.Messaggio("Azione confermata.");
msgBox.ShowDialog();
}
else
{
WGMessaggi msgBox = new WGMessaggi();
msgBox.Messaggio("Azione annullata.");
msgBox.ShowDialog();
}
}