Chiamata di un oggetto Windows

Innanzitutto buongiorno a tutti.

Ho un oggetto windows chiamiamolo BOXALERT,
Boxalert contiene una label con del testo, e un temporizzatore che chiude l’oggetto ( self.close ) dopo qualche secondo.

per utilizzare questo oggetto richiamo un metodo che si chiama ‘messaggio’ con i seguenti parametri
testo as string = “”,
durata as double = 1.5

in pratica per chiamare il mio boxalert devo nel codice iserire
boxalert.messaggio(“Errore, la data inserita non valida”)
oppure
boxalert.messaggio(“Errore, la data inserita non valida”,3)

ma semplicemente come posso chiamare boxalert(“messaggio di errore”,3) che mi pare molto pi elegante ??

Questo ovviamente un esempio, poi ho altri oggetti windows che vorrei si comportassero nello stesso modo.

Ciao,

potresti implementare il metodo “contructor” con i due parametri che ti servono (testo As String, durata As double)

In questo modo da codice dovresti poterlo chiamare con la sintassi boxalert(“messaggio di errore”,3)

boxalert(testo, tempo) pi semplice ma non direi pi elegante…
in ogni caso lo puoi ottenere in questo modo:

crei un modulo o aggiungi ad un modulo la seguente procedura:

sub boxAlert (testo as string, durata as double=1.5) dim w as new boxAlert(testo,durata) end sub

dove il boxAlert chiamato il nome dell’oggetto window con il costruttore come ha detto Matteo

Per evitare di fare un metodo separato puoi creare uno shared Metodo sulla window boxalert
Ma a questo punto per chiamarla dovresti scrivere boxalert.boxalert(testo,tempo)
Questo identico a quello che fai ora, ma questo quello che chiamo pi elegante :wink:
In questo modo hai tutto in un solo oggetto che puoi riutilizzare semplicemente tra progetti.

Non posso quindi chiamare direttamente boxalert(“PROVA”,1.5) ???

invece posso chiamare ???
dim w as new boxalert(“PROVA”,1.5)
w.left = self.left + me.left
w.top= self.top + me.top
w.show

Da come hai descritto la cosa, boxalert una finestra. Quindi devi passare per un metodo di un modulo o shared della finestra per visualizzarla.
Per quanto riguarda il posizionamento puoi mettere due parametri opzionali (left as integer=-1, top as integer=-1)

sub boxAlert (testo as string, durata as double=1.5, left as integer=-1, top as integer=-1) dim w as new boxAlert(testo,durata) if left<>-1 then w.left=left if top<>-1 then w.top=top end sub