Newsgroup: it.comp.lang.visual-basic
Titolo: note tipo excel

Salve a tutti,
vorrei far comparire un tool tip al passaggo del mouse su una label o un
altro controllo, che contenga dei commenti relativi al dato visualizzato
dalla label o dal controllo.
Un esempio di quello che vorrei fare sono i commenti su un foglio di excel.
Una volta inserito un commento in una cella, questo viene visualizzato
finchč il mouse rimane sulla cella stessa.
Grazie per l'attenzione.


Ti rispondo al volo prima che a qualcuno che oggi non è giocoso come me
saltino i nervi:
Prova a quardare la proprietà tooltip dei controlli menzionati.
Tuttavia, mi chiedo io (e si chiedono in tanti), possibile che qualcuno
chieda come scrivere un tooltip di un controllo e non solo non legga la
guida in linea, ma neppure provi a guardare se tra le propprietà del
controllo esiste...?????
Sei scusato solo se usi Vb da 4 in giù che la tooltip non l'avevano.
ciao
ugo

 wrote in message
9hf1l5$uen$1...@lacerta.tiscalinet.it...


 ha scritto

mi ci ero divertito all'inizio, quindi il codice e' da pulire un bel
po', ma va.
situazione: un mdb con gli i ching.
(lo metterei come free ma non riesco a trovare email di editore e utore
del libro cui ho ciullato testi e ideogrammi, quindi non posso nemmeno
mandartelo).
sono solo 64 schede, quindi un findfirst ci mette poco.
pero' il testo di ogni scheda si fa lungo, quindi avevo messo un
formTooltip, senza bordo, con un'etichetta autosize, cercando di gestire
il ridimensionamento del form in base alla lunghezza del testo
nell'etichetta.
in un formComb[inatoria] c'e' una matrice di command, con caption 1-64,
e con i trigrammi tipo battaglia navale. codice:
Private Sub Command1_MouseMove(Index As Integer, Button As Integer,
Shift As Integer, X As Single, Y As Single)
     Dim MyCriteria As String, rs As Recordset
     MyCriteria = "EsagNum = " & Command1(Index).Caption
     Set rs = DbX.OpenRecordset("Esagrammi", dbOpenDynaset)
     rs.FindFirst MyCriteria
     If rs.NoMatch Then MsgBox Command1(Index).Caption & ": Non
trovato": Exit Sub
     Dim TmpTxt, j As Integer
     For j = 3 To 7 ' = i campi che mi serviva visualizzare
          TmpTxt = TmpTxt & "[" & LCase(rs.Fields(j).Name) & _
          "]: " & rs.Fields(j) & vbCrLf
     Next j
     frmToolTip.lblToolTip = " Esagramma " & rs!EsagNum & _
          " -- " & rs!EsagNome & " -- " & rs!Significato & _
     vbCrLf & vbCrLf & TmpTxt
     rs.Close
    Dim TTLeft, TTTop
    Dim Pnt As PointAPI
    GetCursorPos Pnt
' il tooltip sta un po' in basso a destra:
    TTLeft = (Pnt.X + 5) * Screen.TwipsPerPixelX
    TTTop = (Pnt.Y + 5) * Screen.TwipsPerPixelY
    frmToolTip.Left = TTLeft
    frmToolTip.Top = TTTop
    frmToolTip.Visible = True
' quando esce dal cmd e passa sul form ->
' visible = false
End Sub
nel formData c'e' un datacontrol con i txt (definizioni degli esagrammi)
disposti piu' o meno a griglia:
Private Sub txtEsag_MouseMove(Index As Integer, Button As Integer, Shift
As Integer, X As Single, Y As Single)
'    txtEsag(Index).ToolTipText = txtEsag(Index)
    Dim TTLeft, TTTop
    Dim Pnt As PointAPI
    GetCursorPos Pnt
    TTLeft = (Pnt.X + 5) * Screen.TwipsPerPixelX
    TTTop = (Pnt.Y + 5) * Screen.TwipsPerPixelY
    'frmMain.Caption = Pnt.X & "," & Pnt.Y & " / " & TTLeft & "," &
TTTop
    frmToolTip.lblToolTip = txtEsag(Index)
    frmToolTip.Left = TTLeft
    frmToolTip.Top = TTTop
    frmToolTip.Visible = True
End Sub
dichiarazioni in un bas:
Type PointAPI
X As Long
Y As Long
End Type
Declare Function GetCursorPos _
Lib "user32" (lpPoint As PointAPI) As Long
---
se sei arrivato fin qui, e se hai un datacontrol e dati brevi da
visualizzare, forse ti basta qualcosa tipo:
txtTitolo.tooltiptext = data1.recordset!tuo_commento_al_titolo
che e' senz'altro piu' breve. pero' non l'ho provato e mi sembra anche
molto meno divertente :))
ciao, a.