Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117

    [VB6] Rilevamento immagine in una RichTextBox

    Salve a tutti,
    ho un problema con la gestione delle immagini introdotte in una RichTextBox adoperamndo il Visual Basic 6; mi spiego meglio:

    Adoperando la funzione:

    SendMessage L_Testo.hwnd, WM_PASTE, 0, 0

    ho la possibilità di incollare un immagine (ovviamente precedentemente copiata) attraverso WM_PASTE in una RichTextBox di nome L_Testo.

    Attraverso invece :

    L_Testo.SelText = "pippo"

    posso scrivere la parola "pippo" all'interno di L_Testo, nella stessa riga.

    A questo punto il problema che mi si presenta è capire in che posizione si presenta l'immagine nella riga stessa.

    Nel caso semplice, se prima scrivo:

    L_Testo.SelText = "pippo"
    SendMessage L_Testo.hwnd, WM_PASTE, 0, 0

    so per certo che prima apparirà la scritta pippo e poi l'immagine

    se invece scrivo:

    SendMessage L_Testo.hwnd, WM_PASTE, 0, 0
    L_Testo.SelText = "pippo"

    apparirà prima l'immagine e poi la scrita pippo.

    pero' la posizione dell'immagine in questi 2 casi la intuisco in base a come scrivere il codice e non per quello che "leggo" nella L_Testo.text, infatti in entrambi i 2 casi se scrivo

    cio_che_è_presente = L_Testo.text

    come giustamente che sia mi ritrovo in cio_che_è_presente il valore "pippo" senza aver nessuna informazione nei riguardi dell'immagine.

    La mia domanda e':
    Esiste una proprietà di L_Testo o cmq una maniera per poter capire la posizione di un immagine introdotta in L_Testo?

    Grazie in anticipo per le risposte.

  2. #2
    Ciao..senti, ti posso dire che l'immagine che uno inserisce viene considerata dal programma come 1 carattere: es. hai il rich, ci sono 1 figura e subito dopo 1 carattere; se fai len(richtextbox1.text) ti restituisce due.
    A questo punto avevo pensato all'uso di left e right in quanto estraendo i caratteri uno ad uno e mostrandoli con un msgbox non viene visualizzato quello in cui risiede l'immagine. Il problema è che devo capire qualcosa in più sulla tua richtextbox, la cosa migliore sarebbe che tu postassi il codice, per capire se i caratteri sono fissi, come è impostata la richtextbox ecc..ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117
    Ti spiego subito la mia situazione

    In pratica sto sviluppando un prg tipo Winmx ma con la chat tipo msn quindi il problema si presenta quando voglio trasmettere in chat frasi tipo:

    Ciao ! come stai?

    creare una funzione che mi permetta di scrivere ed aggiungere le smile e' semplice perche' io scrivo il testo in una RichTextBox di nome L_Testo e quando clikko su una barra dove ci sono tante smile e scelgo quindi la smile da introdurre, effettuo l'operazione di copia smile e poi di incolla smile con:

    SendMessage L_Testo.hwnd, WM_PASTE, 0, 0

    in particolare usifruisco di una TexBox di appoggio.

    Quando scrivo su L_Testo, prelevo cio' che scrivo su di essa e lo incollo in questa Texbox mentre quando scelgo una smile inserisco nella Textbox un codice smile da me inventato.

    Ti faccio un esempio semplice:

    in L_Testo:

    Ciao ! come stai?

    in Texbox (ossia cio' che alla fine poi trasmettero') realizzo questo:

    Ciao smile1 ! come stai? smile2

    Tutto questo funziona perfettamente, il problema si presenta quando modifico cio' che ho gia' scritto, ad esempio:

    Ciao ! come stai?

    torno indietro per modificare cio' che ho scritto...ad esempio:

    Ciao Michele ! come stai?

    infatti in questo caso non ho nessun riferimento se "Michele" l'ho scritto prima o dopo di .

    Non so se ho reso l'idea.

    Il problema e' che non posso verdere su L_Testo.text la posizione di

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117
    Cmq...

    "A questo punto avevo pensato all'uso di left e right in quanto estraendo i caratteri uno ad uno e mostrandoli con un msgbox non viene visualizzato quello in cui risiede l'immagine."

    magari il carattere non e' visibile ma c'e', si dovrebe provare a copia il carattere "invisibile" anche se presumo che si veda come un semplice spazio e poi copiarlo nella funzione qui riportata:

    Singola_T = Split(L_Testo.Text, " ")

    if Singola_T(1)= " "
    ...fai questo
    end if

    if Singola_T(2)= " "
    ...fai questo
    end if

    nota che dentro " " non ci dev'essere lo spazio ma devi ci devi fare control+V di quello che ti da il msgbox.

    ma non so minimamente se funziona...

  5. #5
    Ciao..era per questo che ti suggerivo di postare il codice, così da capire bene la situazione..
    cosa significa "il carattere non è visibile ma c'è"? Ti riferivi forse ad uno spazio bianco? ..

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117
    si, un carattere bianco, ma cmq ho provato, il carattere non c'e' ossia risulta essere il carattere "" cioe' nulla

    cmq mi sa che l'unica soluzione è usare le stringe tipo :)
    cosi' almeno so che dove' c'e' :) c'e' un sorriso..ehehe

  7. #7
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    io avrei pensato una cosa... un po' articolata, ma forse fattibile...

    utilizzare una Collection.

    ovvero, l'utente quando modifica il testo, è ovvio che prema dei tasti... rilevando la pressione dei tasti e la posizione del caret è possibile variare il contenuto della Collection. ovviamente la collection dovrebbe contenere un carattere per ogni elemento.
    alla fine della modifica, basterebbe ciclare gli elementi della collection e riprodurre la stringa, immagini comprese.

    per di più la collection può contenere anche oggetti quindi si potrebbero inserire gli smilies direttamente nell'elemento corrispondente.

    certo non nascondo che sia laborioso... ma è un'idea

    Boolean

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117
    mi hai dato un idea!!!

    (mannaggia alla miseria, se sono riusciti a farlo quelli di msn non ci devo riuscire io con il vostro aiuto???)

    mi rispondo da solo al problema, chissa' si riesce a trovare na soluzione:

    se scrivo:

    Dim Singola_T() As String

    Singola_T = Split(L_Testo.Text, "")

    e in L_testo c'e' scritto:

    ciao michele come stai?

    mi trovo:

    Singola_T(0) = "ciao michele"
    Singola_T(1) = "come stai?"

    quindi cosi' si puo' controllare se c'e' un immagine in mezzo alla frase...ora bisogna capire come poter modificare "ciao michele" senza creare conflitti con

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117
    Come non detto, mi ero sbagliato....non e' vero che l'immagine e' un carattere nullo ( "" ) ma come dicevi tu inizialemnte e' uno spazio o cmq qualcosa che non riesco a controllare.

    Mi sa che non c'e' soluzione...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.