Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-11-2009, 13:12   #1
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
[Vb/C#/.Net]Popup tipo Post It

Ciao a tutti

Ho fatto una piccola applicazione che mi gestisce semplicemente delle scadenze di vario tipo.

Mi piacerebbe avere da voi qualche idea su come implementare un sistemino di messaggistica a video che segnali (ad esempio ogni ora) le scadenze più vicine.

Avevo inizialmente pensato di implementare un servizio, ma sto ancora lottando con un'altra applicazione e, lato server, non sono ancora all'altezza di poter fare qualcosa di utile.

La mia soluzione si baserebbe quindi sull'avvio automatico del programma, un comune programma composto da alcune piccole dll e da un'interfaccia grafica per la gestione dei dati.

Grazie mille a tutti come sempre!

RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 13:34   #2
U235
Member
 
Iscritto dal: Nov 2009
Messaggi: 56
ciao,

non ho afferato, si tratta di web o windows form?

mi spieghi meglio il meccanismo?
__________________
Un elemento come me quando si fissa fa sempre un gran casino, ma solo nel 45 ciò è stato negativo . Little Boy era mio nonno
U235 è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 13:56   #3
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Windows forms.

Scusa, ho dimenticato di spiegarmi meglio

L'applicazione è molto semplice:

C'è un db dove vengono inserite le varie scadenze per alcuni adempimenti
tramite l'applicazione fatta in C#.

A livello di programma, funziona tutto bene.

La 'chicca' che mi piacerebbe aggiungere è appunto che se l'utente
è un pò 'distratto', il programma legga le scadenze, le confronti con la data odierna
e se il valore è inferiore a, per esempio 15 giorni, segnali mediante un popup a video
la scadenza.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek

Ultima modifica di RaouL_BennetH : 04-11-2009 alle 14:04.
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 14:01   #4
U235
Member
 
Iscritto dal: Nov 2009
Messaggi: 56
come mai non usi un timer? forse vuoi un orario preciso costante tipo tuuti i gg.alle 12, 13, 14 ecc. indipendentemente dall'orario di avvio dell'applicazione?
__________________
Un elemento come me quando si fissa fa sempre un gran casino, ma solo nel 45 ciò è stato negativo . Little Boy era mio nonno
U235 è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 15:14   #5
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Al momento ho risolto semplicemente utilizzando una notifyIcon e, come da te suggerito, un timer.

Sembra che funzioni
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 15:23   #6
U235
Member
 
Iscritto dal: Nov 2009
Messaggi: 56
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Windows forms.

Scusa, ho dimenticato di spiegarmi meglio

L'applicazione è molto semplice:

C'è un db dove vengono inserite le varie scadenze per alcuni adempimenti
tramite l'applicazione fatta in C#.

A livello di programma, funziona tutto bene.

La 'chicca' che mi piacerebbe aggiungere è appunto che se l'utente
è un pò 'distratto', il programma legga le scadenze, le confronti con la data odierna
e se il valore è inferiore a, per esempio 15 giorni, segnali mediante un popup a video
la scadenza.

scusami, non avevo letto l'edit

ok...
il meccanismo è semplice, metti un timer che fa l'estrazione e confronto dei dati, nel caso vuoi che gli impegni non vengano segnalati di continuo ad ogni tick del timer, metti un dato di confronto ad esempio una data/ora con il classico check (o altro) tipo "ricordamelo tra tot tempo") nella form che farà da popup.

se non ti è chiaro, tra un po ti posto un esempio.
__________________
Un elemento come me quando si fissa fa sempre un gran casino, ma solo nel 45 ciò è stato negativo . Little Boy era mio nonno
U235 è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 18:42   #7
U235
Member
 
Iscritto dal: Nov 2009
Messaggi: 56
questo esempio l'ho creato (buttato giù rapidamente senza fronzoli) semplicemente per avere un idea di come potresti fare, ma ovviamente devi adattarlo perchè cosi' non ha molto senso, ma basterebbero delle piccole modifiche.

la prima classe è la popup che contiene due listBox, una per il testo da visualizzare e una per la scelta dell'utente che nell'ordine dovrebbe essere 1 ora, 2 ore, 3 ore e non ricordare piu', poi un bottone al quale è collegato il metodo button1_Click. in piu' ho aggiunto un evento di chiusura del form che rimanda indietro "l'impegno" modificato.
Quote:
//creo un delegato per trasmettere l'impegno modificato alla form principale
public delegate void Delegato(Impegno impegno);
public partial class Form2 : Form
{
public Impegno Impegno { get; set; }
Delegato delegato = null;
public Form2()
{
InitializeComponent();
}
//creo un costruttore che accetta un Impegno come parametro
public Form2(Impegno impegno)
{
InitializeComponent();
this.Impegno = impegno;
///aggiungo il testo alla listbox
this.listBox1.Items.Add(impegno.Testo);
///imposto la prima selezione di default (ricordamelo tra 1 ora)
this.listBox2.SelectedIndex = 0;
}

public event Delegato ModificaImpegno
{
add { this.delegato += value; }
remove { this.delegato -= value; }
}

private void button1_Click(object sender, EventArgs e)
{
/// controllo la scelta dell'utente tra le varie opzioni
switch (this.listBox2.SelectedIndex)
{
///1 ora
case 0 :
{
///sottraggo il tempo stabilito dal tempo di "anticipo" dell'avviso del promemoria
this.Impegno.Promemoria -= new TimeSpan(1, 0, 0);
break;
}
///2 ore
case 1:
{
///sottraggo il tempo stabilito dal tempo di "anticipo" dell'avviso del promemoria
this.Impegno.Promemoria -= new TimeSpan(2, 0, 0);
break;
}
///3 ore
case 2:
{
///sottraggo il tempo stabilito dal tempo di "anticipo" dell'avviso del promemoria
this.Impegno.Promemoria -= new TimeSpan(3, 0, 0);
break;
}
/// non ricordare piu'
case 3:
{
///dico di non ricordarmelo più
this.Impegno.Ricordalo = false;
break;
}
}
this.Close();
}
//alla chiusura del form
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
if (this.delegato != null)
{
///rimando indietro il promemoria modificato
this.delegato(this.Impegno);
}
}
}
la prossima classe è il form principale (partial)

Quote:
public partial class Form1 : Form
{
Impegno impegno;

public Form1()
{
InitializeComponent();

///imposti il timer tenendo presente che piu' è frequesnte (intervallo minore) e piu' è preciso il promemoria, ma è
///anche vero che piu' è frequesnte e piu' lavora il codice...
this.timer1.Interval = 10000;
///abilito il timer
this.timer1.Enabled = true;
///creo un nuovo "Impegno" che in questo caso è un oggetto creato appositamente per fare un esempio
///ma potrebbe essere un dato preso dal db
this.impegno = new Impegno();
///imposto la data e ora dell'impegno
this.impegno.DataOra = new DateTime(2009, 11, 4, 20, 40, 0);
///stabilisco quanto tempo prima devo essere avvisato (in questo caso 2 ore)
this.impegno.Promemoria = new TimeSpan(2, 0, 0);
///imposto il testo da visualizzare nel promemoria
this.impegno.Testo = "prova imopegno";
///stabilisco che deve ricordarmelo
this.impegno.Ricordalo = true;
///questo serve per non fa ripetere il promemoria mentre lo sto lavorando se il timer e frequente
this.impegno.InUso = false;
}

//al tick del timer chiamo il metodo che controlla gli impegni
private void timer1_Tick(object sender, EventArgs e)
{
controlloImpegni(this.impegno);
}

void controlloImpegni(Impegno impegno)
{
///controllo se il promemoria è attivo e che non sia già in uso
if (impegno.Ricordalo&&!impegno.InUso)
{
///sottraggo dalla data di impegno il tempo del promemoria (stabilisco quanto tempo prima devo farlo)
DateTime dataOra = impegno.DataOra.Subtract(impegno.Promemoria);
///stabilisco se è il momento di mandare il promemoria
if (dataOra <= DateTime.Now)
{
///marco come in uso il dato
impegno.InUso = true;
///creo la popup
Form2 popup = new Form2(impegno);
///aggiungo l'evento per la ricezione dell'impegno modificato
popup.ModificaImpegno += new Delegato(popup_ModificaImpegno);
///faccio apparire a video la popup
popup.Show();
}
}
}
//alla chiusura o alla pressione del tasto della popup
void popup_ModificaImpegno(Impegno impegno)
{
///l'impegno non è piu' in uso
impegno.InUso = false;
///"salvo" l'impegno eventualmente nel db ad esempio....
///in questo caso di test lo rimetto in circolo
this.impegno = impegno;
}
}
in fine la prossima classe l'ho fatta per supportare l'esempio senza db

Quote:
public class Impegno
{
public DateTime DataOra { get; set; }
public string Testo { get; set; }
public TimeSpan Promemoria { get; set; }
public bool Ricordalo { get; set; }
public bool InUso { get; set; }
}
Fammi sapere se hai dificolta a ricreare il tutto secondo le tue esigenze.

Ciao.
__________________
Un elemento come me quando si fissa fa sempre un gran casino, ma solo nel 45 ciò è stato negativo . Little Boy era mio nonno
U235 è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2009, 09:53   #8
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Nel frattempo che me lo studio, ti ringrazio per l'aiuto
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Windows punta sull'intelligenza ibrida: ...
NVIDIA DGX Station arriva su Windows, in...
Per Nadella e Huang, CEO di Microsoft e ...
Microsoft Surface Laptop Ultra, ufficial...
TP-Link, quattro Stati americani fanno c...
Fino a 45.000 dollari di vantaggi per le...
Cooler Master V8 ACE 3DHP: un'unica torr...
SpaceX vuole 40 miliardi per i chip Nvid...
Power Station portatile EcoFlow DELTA 2 ...
Full Self-Driving di Tesla, la Germania ...
Nobel per la Fisica 2026 a Francis Halze...
Niente lunotto, tre motori e un cofano i...
Fai fare tutto all'intelligenza artifici...
ASUS PRIME Radeon RX 9070 a 599,99€: pre...
Stop ai datacenter di Google in Finlandi...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:58.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v