Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - richtextbox e gif
Forum - Visual Basic 6 - richtextbox e gif

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
buongiorno a tutti ragazzi....

sono un programmatore amatoriale ed utilizzo vb versione 6....e' da qualche mese che mi son impegnato nella realizzazione di un programma di chat, ed ora sono arrivato all'annoso problema degli smile...gli smile non animati ,sia piccoli che grandi sono riuscito a farli, ora pero' vorrei provare a fare gli smile animati.....nella chat dove vengono postati i messaggi  , sia inviati che ricevuti , non uso un webbrowser ma una richtextbox che purtroppo , in versione vb6, non supporta le gif....
per fare gli smile ho usato il controllo clipboard.setdata e prelevo l'immagine da una directory dove ci sono le immagini basandomi sul tag.....di per se' la richtextbox supporta le gif come formato ma mi inserisce la immagine senza animazione , solo statica perdendo cosi' l'effetto dell gif....

posto il codice di come ho eseguito gli smile......

Codice sorgente - presumibilmente VB.NET

  1. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  2. Const smile = "bmp1,bmp2,bmp3,bmp4,bmp5,bmp6,bmp7,bmp8,bmp9,bmpbig1,bmpbig2,bmpbig3"
  3. Private Const WM_PASTE = &H302
  4.  
  5. Private Sub rtb_Change()
  6.  Dim Placement As Integer
  7.   Dim Start As Integer
  8.   tmp = Split(smile, ",")
  9.   For i = 0 To UBound(tmp)
  10.     If InStr(1, rtb.Text, tmp(i)) Then
  11.         Placement = InStr(rtb.Text, tmp(i))
  12.         Start = Placement + 1
  13.         rtb.SelStart = Placement - 1
  14.         rtb.SelLength = Len(tmp(i))
  15.         rtb.SelText = ""
  16.         temp = Clipboard.GetText
  17.         Clipboard.SetData LoadPicture(App.Path & "\smile\" & tmp(i) & ".bmp")
  18.         rtb.Locked = False
  19.         SendMessage rtb.hwnd, WM_PASTE, 0, 0
  20.         'Rtb1.Locked = True
  21.         Clipboard.SetText temp
  22.         Clipboard.Clear
  23.     End If
  24.   Next
  25. End Sub



se qualcuno di voi ha qualche suggerimento su come poter fare gli smile animati ben volentieri , non pretendo codice ma qualche idea, perche' la cosa mi sembra piuttosto dura, almeno vedendo i vari esempi in internet.....

vi saluto ragazzi.....

PM Quote
Avatar
kryc (Normal User)
Rookie


Messaggi: 23
Iscritto: 10/12/2007

Segnala al moderatore
Postato alle 22:04
Lunedì, 05/05/2008
Direi che è piuttosto complicato in vb6, io non mi sonomai posto questo problema e nno ho una soluzione concreta, ma si potrebbe risolvere forse con l'uso di un timer con le api
nel senso che per una gif animata, siccome vb6 non le supporta, dovresti avviare un timer quando s aggiunge una determinata gif animata , in modo tale che cambi immagine velocemente in modo da farla sembrare una gif animata
Mi è venuto in mente solo questo a riguardo, ma ripeto non è una soluzione è solo un modo per aggirare il problema

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 22:12
Lunedì, 05/05/2008
mettere le gif (con animazione) in una richbox e' davero difficile....molto al di sopra di poter essere spiegato su due righe.....il discorso del timer puo' andar bene se hai una imagelist con la sequenza di immagini che vengono riprodotte su una picture frame per frame in sequenza....
una cosa a cui avevo pensato, ma non credo sia fattibile' era inserire una image ( o picture ) all'interno della richtextbox, ma non la prorpieta' picture, prorpio il componente , esattamente come inserisco lo smile....

qualcuno ha idea se la cosa sia fattibile?.....

Ultima modifica effettuata da il 05/05/2008 alle 22:14
PM Quote
Avatar
kryc (Normal User)
Rookie


Messaggi: 23
Iscritto: 10/12/2007

Segnala al moderatore
Postato alle 22:20
Lunedì, 05/05/2008
Ho trovato questa libreria Gif89.dll che gestisce le gif animate, lavorandoci unpò su forse può risolvere il tuo problema

Ultima modifica effettuata da kryc il 05/05/2008 alle 22:25
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 22:59
Lunedì, 05/05/2008
grazie per esserti impegnato..ma purtroppo la gif89.dll sere si per le gif ma da inserire in un form ......in realta' un trucchetto per fare le gif animate e' semplice si usa un webbrowser con la prorpieta' navigate e gli si mette l'indirizzo della directory ed il gioco e' fatto.....
il mio problema e' inserire un componente all'interno della richtextbox .....
in un certo senso la mi aidea e la tua si sono affiancate molto tu usando una dll io usando un webbrowser.....
praticamente volevo creare un componente webbrowser dargli la prorpieta' index , quando nel messaggio ricevevo un particolare tag  "es. :)" facevo il load di un nuovo webbrowser dandogli l'indice basandomi su una variabile che di volta in volta aggoirnavo aggiungendoci 1 e poi davo la prorpieta' navigate a quel determinato componenete.....

che giro di parole in realta' soo 2 righe
dim n as integer
private sub form_load()
  n = 0
end sub

private sub rtb_change()
  n = n+1
web(n).navigate "......."
end sub

il gioco e' fatto
il problema alla base e' come si puo' inserire un componente all'interno della richtextbox.....

PM Quote