JavascriptProva

mercoledì 11 dicembre 2013

Alla ricerca di un metodo di calcolo più rapido

Bene.
Ora devo modificare questo mammuth e velocizzarlo.

Ho in mano, salvato come una variabile, il sottomenu selezionato al momento del click per introdurre nella casella il nome.
Che ci faccio?

Il numero di indice del sottomenu corrisponde all'indice del nome nella matrice dei nomi, e corrisponderà all'indice della casella nella matrice delle caselle appartenenti a una determinata colonna.
Facendo valere questa corrispondenza, si può fare un calcolo limitato all'oggetto di interesse senza stare ogni volta a sfogliare tutto l'array di caselle perdendo moltissimo tempo.

Ho bisogno di lavorare un po' su un menu isolato per vedere se si può ricavare un indice di un sottomenu.
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim sottomenu As New ToolStripMenuItem
        sottomenu.Text = "STRONZO"
        MenuStrip1.Items.Add(sottomenu)
        MenuStrip1.Items(0).BackColor = Color.Cyan
    End Sub
Ecco, dunque devo salvare come variabile non il sottomenu come variabile oggetto ma il suo indice come variabile numerica (tipo Integer o altro).

Cambio il tipo di variabile...
    Dim SelectedMenu As Integer 'indice del menu selezionato


Adesso provvediamo a salvare l'indice del sottomenu, e non più il sottomenu, in questa variabile.
    Sub Trascrivi(ByVal sender As Object, ByVal e As EventArgs)

        SelectedItem.Text = sender.text
        SelectedMenu = mioMenu.Items.IndexOf(sender)
        MsgBox(SelectedMenu)
        CALCOLO()
Bene.
Abbiamo memorizzato l'indice del sottomenu.
Adesso usiamolo. Facciamo una prova...
        nomiGriglia.CelleDellaColonna(0)(SelectedMenu).BackColor = Color.Red
inserita nella routine "Calcolo()".
E funziona!!!

La casella si colora di rosso immediatamente. Prima, con quel metodo rudimentale del dover sfogliare tutte le caselle, passava più di mezzo secondo.

Nessun commento:

Posta un commento