Oppure

Loading
12/11/18 22:17
rossiemme
questo programma cosa è esattamente? l'ho scaricato come vb.net dal sito microsoft.. pensavo fosse un editor completo
aaa
12/11/18 22:19
rossiemme
aaa
12/11/18 22:20
rossiemme
questo programma cosa è esattamente? l'ho scaricato come vb.net dal sito microsoft.. pensavo fosse un editor completo
aaa
12/11/18 23:45
Roby94
Quello è Visual Studio Code, il nuovo editor opensource di Microsoft. Lo uso da pochissimo, ma se non ho capito bene l'idea dietro è molto diversa da Visual studio "enterprise". VScode dovrebbe essere pensato a moduli, tu di base scarichi l'editor che fa solo da editor, puoi impostarlo per interfacciarsi con strumenti di compilazione e debug ma devono essere procurati dall'utente. Oppure puoi affidarti alla gallery di estensioni integrata nell'editor dove puoi trovare dei pacchetti gia pronti che comprendono anche debugger e compiler. Idealmente VScode è adattabile a qualsiasi linguaggio, sia per l'intellisense (come per esempio notepad++) sia per la parte di compilazione e debug.
Quindi per quello che so non basta per compilare VB.net. Leggendo sul sito microsoft è ancora presente la versione community di VS, questa invece dovrebbe comprendere (se non è cambiato nulla negli ultimi anni) anche compilatore e debbuger per VB.net ed è gratis, quindi se vuoi evitare sbattimenti io ti consiglierei di iniziare da questa.
visualstudio.microsoft.com/it/vs/features/net-development/
aaa
13/11/18 9:27
@rossiemme ... il timer è necessario per eseguire l'API. Il VB6 non gestisce eventi dello schermo quindi è impossibile realizzarlo diversamente. E' un vecchio linguaggio con dei limiti.

Visual Studio Community Edition lo scarichi da qui

visualstudio.microsoft.com/it/vs/community/

Ma anche VB.NET non prevede un evento click su desktop. Puoi utilizzare un hook del mouse per rilevare il click, vedi questo documento

support.microsoft.com/it-it/help/319524/…
14/11/18 6:25
rossiemme
grazie a tutti gli amici che mi hanno risposto, vorrei comunque dare una spiegazione di come è nata questa esigenza di rilevare un Click sullo Screen. In realtà mi basta sul Form, ma questo non reagisce quando è coperto da controlli.

E' sempre stato un mio pallino creare dei controlli da codice che rispondessero agli eventi, ma sfortunatamente ciò non avviene per gli Array di controlli, quindi pensavo di coprire tutti i controlli creati da codice con una Label trasparente per rilevare l'evento click, poi dalla posizione del mouse avrei rilevato quale controllo sottostante fosse corrispondente, ma sfortunatamente la Label non copre i controlli, e come essa nemmeno la Image.. mentre la Frame copre essa non può essere resa trasparente.. quindi non ci sono riuscito.
Posto qui di seguito il codice relativo e l'immagine di ciò che crea

Private WithEvents mEt As Label
Private Pic() As PictureBox


Private Sub SubCreatePic()
    
    Dim k As Long
    
    If mFrm Is Nothing Then Exit Sub
    
    ReDim Pic(5)
    For k = 0 To 5
        Set Pic(k) = mFrm.Controls.Add("VB.pictureBox", "pic" & k)
        Set Pic(k).container = mFrm
        Pic(k).Enabled = True
        Pic(k).Visible = True
        Pic(k).Appearance = 0
        Pic(k).AutoRedraw = True
        Pic(k).BackColor = &H8000000E
        Pic(k).ForeColor = vbBlack
        Pic(k).ScaleMode = vbPixels
        Pic(k).Appearance = 1
        Pic(k).Width = 16
        Pic(k).Height = 16
        Pic(k).Left = 20 * k
    
    Next k
    
    Set mEt = mFrm.Controls.Add("VB.label", "lbl")
    Set mEt.container = mFrm
    mEt.Visible = True
    mEt.Height = 40
    mEt.Width = 150
    mEt.Visible = True
    mEt.Enabled = True
    mEt.Caption = Chr(13) & "questa label non copre i controlli"
    
    
   




aaa
14/11/18 6:33
rossiemme
Per concludere il mio ragionamento, dopo aver escluso di utilizzare il click sul Form, su una Label o su una Image (perché nessuno di essi reagisce quando è coperto da controlli) ho pensato allora a un evento Click sullo Screen da gestire poi mediante coordinate X,Y del Mouse, ma sembra che nemmeno questo si possa fare senza utilizzare i metodi subclassing.

A questo punto, prima di rinunciare vorrei sapere qualcosa in più sulla tecnica subclassing
aaa
14/11/18 6:48
rossiemme
se guardate l'immagine e vedete dei segni di spinta non fatevi ingannare, non sono il frutto di eventi Click ma del codice seguente:



Private Sub SettaPic(v() As Boolean)
    Dim n As Long, i As Long, j As Long
    Dim a As Long, b As Long, c As Long, d As Long, e As Long 'parametri del 'visto'
    
    a = 3 'profondità
    b = 2 'shift in avanti
    c = 4 'spessore
    d = 2 'extracorsa
    e = 0 'shift in basso
    
    For n = 0 To 5
        If v(n) = True Then
            For i = b To a + b
                For j = 1 + e To c + e
                    SetPixel Pic(n).hdc, i, j + i, vbBlack
                Next j
            Next i
            For i = a + b To 2 * a + b + d
                For j = a + 1 + e To a + c + e
                    SetPixel Pic(n).hdc, i, j - i + a + b * 2, vbBlack
                Next j
            Next i
        Else
            Pic(n).Cls
        End If
    Next n
    
End Sub
aaa