Newsgroup: it.comp.lang.visual-basic
Titolo: [Richtexbox]p.f.,mi correggete questo codice?

Il problema son due,ho una rtb dove scrivo del testo libero e lo salvo
in un campo memo di access in RTF.
Per formattarlo (es.grassetto,italico etc.) nessun problema,le grane
vengono per il copia ed incolla.Con il mio codice nun funziona nulla.
Codice per selezionare il testo:
Private Sub rtb_MouseUp(Button As Integer, Shift As Integer, x As
Single, y As Single)
txtSelezionato = frmNuovo.rtb.SelText
End Sub
Quindi da una toolbar...
...        
Case "Copy"
' Elimina il contenuto degli Appunti.
Clipboard.Clear
' Copia il testo selezionato negli Appunti.
Clipboard.SetText txtSelezionato, vbCFRTF
Case "Paste"
frmVisualizza.rtb.SelText = Clipboard.GetText(vbCFRTF)
Bene il testo viene copiato ed incollato ma senza nessuna
formattazione(grassetto etc) ???
Altro problemino,dovrei rilevare al passaggio del mouse sopra la rtb
se il testo č o meno sottolineato per simulare un collegamento
ipertestuale.Ho tirato giů un codicino che "funzionicchia" ma mi manda
in palla il codice della selezione codice:
Private Sub rtb_MouseMove(Button As Integer, Shift As Integer, x As
Single, y As Single)
Dim PosCar As Long
PosCar = GetPosOverCursor(rtb, CLng(x), CLng(y))
rtb.SelStart = PosCar
frmModifica.rtb.SelStart = PosCar
If frmModifica.rtb.SelUnderline = True Then
    frmModifica.MousePointer = 99
    frmModifica.MouseIcon = LoadPicture("MANINA.CUR", vbLPCustom,
vbLPColor, 16, 16)
Else
    frmModifica.MousePointer = 0
End If
End Sub
Function GetPosOverCursor(Box As Object, x, y) As Long
Dim tmpPnt As POINTAPI, tmpPos As Long
tmpPnt.x = x / Screen.TwipsPerPixelX
tmpPnt.y = y / Screen.TwipsPerPixelY
tmpPos = SendMessage(Box.hWnd, &HD7, 0&, tmpPnt)
GetPosOverCursor = tmpPos
End Function
Questo č il codice per avviare il collegamento :
Private Sub rtb_DblClick()
If rtb.SelUnderline = True Then  'and trb.selcolor = vbblue
   Do While rtb.SelUnderline = True
    rtb.SelStart = rtb.SelStart - 1
     If rtb.SelStart = 0 Then
     Exit Do
     End If
        maxcount = maxcount + 1
     If maxcount = 250 Then
     maxcount = 0
     Exit Do
     End If
   Loop
 linkstart = rtb.SelStart + 0
 rtb.SelStart = rtb.SelStart + 2
    Do While rtb.SelUnderline = True
    rtb.SelStart = rtb.SelStart + 1
    If rtb.SelStart = Len(rtb.Text) Then
    Exit Do
    End If
       maxcount = maxcount + 1
    If maxcount = 250 Then
    maxcount = 0
    Exit Do
    End If
   Loop
 linkend = rtb.SelStart - 1
 rtb.SelStart = linkstart
 rtb.SelLength = linkend - linkstart
 keyword = rtb.SelText
 iRet = ShellExecute(frmModifica.hWnd, vbNullString, keyword,
vbNullString, "c:\", 1)
End If
End Sub
Mi potete aiutare ???
Grazie a tutti
R.Zanni

 End Sub
è mattina, è lunedì: non garantisco nulla....
però invece di seltext userei selrtf
Per quanto riguarda la seconda parte del post, le mie condizioni attuali non mi
permettono di leggere più di 10 righe di testo, quindi passo :-)
--
Salutoni
Sergio

 End Function
 
  Puoi essere più chiaro riguardo questa funzione, non riesco a capire &HD7
che messaggio sia!
Ciao
--------------------------------
Inviato via 
http://usenet.libero.it

 perň invece di seltext userei selrtf
non funziona,altre idee ?
Grazie
R.Zanni
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 non funziona,altre idee ?
ricominciamo:
Per quello che ne so, quando vuoi interagire con una rich text box, utilizzando
tutte le impostazioni del font, devi utilizzare gli appositi metodi/funzioni del
controllo.
Nel tuo caso, le istruzioni sembrerebbero due, in due diverse funzioni: una è la
Mouse_up che ho evidenziato ieri, l'altra è il paste della toolbar, dove è
scritto:
frmVisualizza.rtb.SelText = Clipboard.GetText(vbCFRTF)
e che andrebbe cambiato con
frmVisualizza.rtb.SelRtf = Clipboard.GetText(vbCFRTF)
qui le mie nozioni si fermano.
--
Salutoni
Sergio