Smiley RichTextBox [Résolu]

Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Dernière intervention
25 juillet 2018
- - Dernière réponse : ehjoe
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
- 13 mars 2012 à 15:30
Bonjour, j'ai un problème à l'insertion d'une image dans un richtextbox.
En faite l'image se place à la ligne et normalement elle devrai se mettre a la place du texte remplacé :

:)

Puis l'image est de très movaise qualité (et non transparente) par rapport à celle de l'original (elle n'est pas redimensionné dans le richtextbox)

Voici comment je rajoute l'image :

    ' Remplace le message recu par les smileys
    Private Sub InscMsg(ByVal Chat As RichTextBox)
        Dim Liste As String = "(ali) (a) oO :s :'( ^^ x| :[ :} :$ (bou) (h) (l) (k) >P xp (8) :| :o> o) :@ (pit) :-# :( ^o) :o :x +o) >d (z) :) :d (s) -_-' (ter) :/ :p >< ;)"

        For i As Int64 = 0 To Liste.Split(CChar(" ")).Count - 1
            Dim Img As Image = Smiley.Images.Item(CInt(i))
            Dim posi As Integer = InStr(Chat.Lines(Chat.Lines.Count - 2), Liste.Split(CChar(" "))(CInt(i)))
            If posi > 0 Then
                Chat.ReadOnly = False
                Chat.SelectionStart = Chat.GetFirstCharIndexFromLine(Chat.Lines.Count - 2) + posi - 1
                Chat.SelectionLength = Liste.Split(CChar(" "))(CInt(i)).Length
                Chat.SelectedText = CChar("")
                Clipboard.SetImage(Img)
                Chat.Paste()
                Chat.ReadOnly = True
            End If
        Next
    End Sub
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Dernière intervention
25 juillet 2018
3
Merci
Bon après hésitation, je vais quand même poster la solution.

Salut EhJoe merci pour ton message, non je ne veut pas faire du traitement de texte sinon je ne m'amuserai pas a faire un programme et à poster sur ce forum, comme l'indique l'image de mon premier poste c'est pour une messagerie instantané.

Alors la solution :

- Premièrement, j'ai ouvert Word afin de voir se qui se passé quant on copie une image depuis une source externe et Word (étant plus ou moins RichTextBox) me fait la même chose que mon application c'est à dire qu'il copie avec un retour chariot l'image.

- Deuxièmement, a force de bidouiller dans Word pour essayer de trouver une solution, j'ai découvert que si l'image à inséré est copié depuis le document RTF et non d'une source externe (comme une ImageListView pour ma part) puis collé, Word n'insert pas de retour à la ligne !

J'ai donc refait cette manip sur mon code :

    ' Remplace le message recu par les smileys
    Private Sub InscMsg(ByVal Chat As RichTextBox)
        Dim Liste As String = "(ali) (a) oO :s :'( ^^ x| :[ :} :$ (bou) (h) (l) (k) >P xp (8) :| :o> o) :@ (pit) :-# :( ^o) :o :x +o) >d (z) :) :d (s) -_-' (ter) :/ :p >< ;)"

        For i As Int64 = 0 To Liste.Split(CChar(" ")).Count - 1
            Dim Img As Image = Smiley.Images.Item(CInt(i))
            Clipboard.SetImage(Img) ' Copie l'image selon la liste

            Dim posi As Integer = InStr(Chat.Lines(Chat.Lines.Count - 2), Liste.Split(CChar(" "))(CInt(i)))
            If posi > 0 Then
                Chat.ReadOnly = False
                Chat.SelectionStart = 0 ' On se place au debut du RichTextBox
                Chat.Paste() ' On colle l'image au début du RichTextBox
                Chat.SelectionStart = 0 ' On se replace au debut du RichTextBox
                Chat.SelectionLength = 1 ' on selectionne l'image
                Chat.Cut() ' on coupe l'image directement dans le RichTextBox

                Chat.SelectionStart = Chat.GetFirstCharIndexFromLine(Chat.Lines.Count - 2) + posi - 1
                Chat.SelectionLength = Liste.Split(CChar(" "))(CInt(i)).Length
                Chat.Paste() ' Maintenant on colle l'image a la selection

            End If
            Chat.ReadOnly = True
        Next
    End Sub


Résultat :

:)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de Guillamue06
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
tiens, même en .NET on passe par le clipboard, y'a pas plus direct ?

(insertion OLE...)

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Dernière intervention
25 juillet 2018
0
Merci
???
Commenter la réponse de Guillamue06
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
0
Merci
Bonjour Guillamue n°06,

Clipboard.SetDataObject(path+file, True)
' GET = écrit : exemple :
Dim limage As IDataObject = Clipboard.GetDataObject()
If limage.GetDataPresent(DataFormats.Bitmap) = True Then
  PictureBox1.Image = limage.GetData(DataFormats.Bitmap)
 Else
  MsgBox("Rien de collable dans le presse-papiers", vbExclamation)
End If
' voir la doc sur clipboard (presse-papiers)


Ceci étant dit, le RTF proche en entête du Doc sert surtout à présenter en plus beau que le TextBox (couleur, images, mise en forme), mais si ton but est d'écrire dedans, d'en faire un traitement de texte sophistiqué, ben... tu risques d'avoir du mal car ce n'est pas un véritable TT, sinon Word ferait faillite, ah !

Si tu veux faire du TT lance Word, ça rend l'application dépendante de ce dernier certes, mais au moins tu as du répondant pour faire toutes les manipulations que tu veux...

Cordialement, Joe.
Commenter la réponse de ehjoe
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
0
Merci
Ah oui c'est vrai, c'est pour un MP.
Tiens, j'ai déposé la source vb6 du mien, mais je doute qu'elle te serve, le tien est mieux s'il fonctionne...

http://www.vbfrance.com/codes/CHAT-PERSONNEL-ENTRE-PERSONNES-IM-MESSAGE-INSTANTANE_54145.aspx

Source ICI

Cordialement, Joe.
Commenter la réponse de ehjoe
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
0
Merci
suite et fin, le tien est assez soigné avec les images, mais sinon on fait plus simple, genre :

:o)
;o)
:o)))
:)
;)
:()

etc...

Le problème c'est qu'on s'amuse avec 10 minutes et qu'ensuite on laisse tomber, car c'est plus pratique de passer par des chat officiels résident du fait que ça ne limite pas le nombre de personnes...

Cordialement, Joe.
Commenter la réponse de ehjoe
Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Dernière intervention
25 juillet 2018
0
Merci
Bin disons que je fait une messagerie qui implémente beaucoup d'options et certes qui est très esthétique (du moins je mis force) j'ai trouvé une solution pour la mauvaise qualité des images: enlever la transparence par un fond blanc.

J'avais vue sur ton site ta messagerie j'en avais fait beaucoup en VB6 entre deux clients et j'ai aussi remarqué pas mal de bon programme (dommage payant j'aurai bien voulu tester ).
Commenter la réponse de Guillamue06
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
Le problème c'est qu'on s'amuse avec 10 minutes et qu'ensuite on laisse tomber, car c'est plus pratique de passer par des chat officiels résident du fait que ça ne limite pas le nombre de personnes..


oui et non, d'ou l'interet d'avoir des protocoles ouvert...

mirc, jabber, etc.

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
0
Merci
Cher Guillamue n°06,

Si tu veux, quand tu l'auras terminé, tu peux le mettre en source ton MP

Pour mes programmes, oui, certains sont payants, ça va de soi, le Tarot à jouer j'y ai passé 6 mois tout seul, l'astrologie 9 mois, l'astronomie 3 mois, mais avec l'aide d'un agrégé de maths et des indications d'astrophysiciens, alors un tel investissement ne peut être gratuit : aider oui, mais y a des limites

C'est une association "et je paye la TVA", alors elle permet juste d'avoir le flux et le matériel informatique pour continuer (TVA = 19,6% + 15% commission AlloPass, reste 2/3)... ça fait à peine 7000 € en 8 ans (y compris mes 10 romans), c'est associatif, ne crois pas que ça rapporte de l'argent car il y a trop de concurrence et surtout bien trop de sites sur le Net, ce qui fait qu'être visible est quasiment impossible...

Je ne crois pas qu'on puisse gagner de l'argent avec Internet en logiciels, sauf à faire un truc ultra-utile sans concurrence, ce qui ne marche qu'un temps.
Par contre si on a des fonds propres importants, en ayant ses propres serveurs et en écrivant côté Net des jeux sophistiqués sans cesse avec abonnement mensuel, oui, ça, ça rapporte, mais faut un sacré investissement de base...

Le devenir de l'emploi, de l'informatique...
Sur un plan économique, il y a une terrible décroissance depuis 2008, à mon avis on va s'écrouler gravement en Occident, donc toute la Terre, c'est sans doute une question de mois, peut être de quelques années car plus personne ne peut équilibrer son budget public à cause de sa dette, l'utime solution étant d'augmenter la dette pour combler le déficit budgétaire, jusqu'au moment où il n'y aura plus rien à emprunter, où le déficit du budget ne sera plus équilibrable, d'où une cessation des paiements (Amérique du Nord et Europ de l'Ouest), les autres continents ce sera pire, ils repartiront dans leurs cavernes, car ils vivent en nous pompant, et n'auront plus rien à vendre aux pigeons.
Les premiers temps seront sans doute comblé par une dévaluation colossale en créant de la monnaie, puis les Etats ne pourront plus faire face aux folles dépenses, et toute l'économie s'écroulera, toutes les sociétés, tous les emplois, les logiciels aussi (ah ah)... c'est la fin d'un système de fous dirigé par des fous depuis maintenant un peu plus de quarante ans...

Donc profite des logiciels car bientôt y aura même plus d'électricité

Cordialement, Joe.
Commenter la réponse de ehjoe
Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Dernière intervention
25 juillet 2018
0
Merci
EhJoe, si il y a bien une chose que j'encourage à faire c'est de rentabiliser son travail sur le développement logiciel qui a du mal a entrer dans le marché pour les petits développeur a cause du piratage et l'esprit du "Sa fait chier d'acheter des données informatique".

On acheté bien le boulot d'un ébéniste qui travail a sont temps libre, ou d'un tailleur de pierre alors pourquoi pas un développeur logiciel ? C'est un travail comme un autre !

J'ai bien remarqué que certaine de t'est apli représente un travail énorme et je trouve sa parfaitement normale que tu les vendes et je t'encourage à le faire.

D'ailleurs, si j'aurai besoins (et qui sais peut être bientôt ?) un programme d'astronomie ou tout autres genre de programmes que tu présente je t'assure que je suis prêt débourser une toute petite somme en achetant un de t'es programme plutôt qu'avoir le même programme hyper connu et en plus de sa cracké car il serait trop chère.

Pour se qui est de mettre ma source sur ce site, non je ne la mettrai pas car je compte mettre en vente la partie serveur j'y est passé beaucoup trop de temps.

Par contre, je mettrai surement la partie qui permet de transférer le flux d'un microphone vers un objet TCPClient / TCPListenner j'ai vue qu'il y en avais pas mal qui cherché comment faire.

PS: Appel moi Guillaume plutot que Guillamue N°06 j'ai l'impression d'être un prisonnier (ouai en 2005 je me suis gouré à l'inscription j'ai inversé le m avec le u )
Commenter la réponse de Guillamue06
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
0
Merci
Guillaume,

En souvenir de Guillaume le "conquérant", qui a fait parler les anglais en français durant cinq siècles, après que le bon Iulius Caesar les eut fait parler Latin durant cinq autres siècles, ah ah, et maintenant ce sont les Incas qui vont à force de s'installer vont faire parler les Américain en Espagnol?

Bref, oui, il est normal de payer les logiciels en général, mais il y a tout un tas minoritaire d'asociaux du "libre", avec qui je me prends parfois de bec sans hésitation, qui prônent la gratuité du travail des autres en une sorte de pseudo-marxiste qui ferait que tout le monde travaillerait gratuitement, et que de ce fait les logiciels seraient gratuits. Principe de troc qui peut s'appliquer entre gens qui programment, mais dont les autres ne sauraient bénéficier; utopie du troc qui a grande échelle est invivable, absurdité.
En sus, généralement les logiciels gratuits, faut dire ce qui est, soit ils sont inutiles en ce sens qu'on en trouve plein qui font la même chose, trop même, soit ils sont boiteux ou invendables? D'ailleurs pour être honnête je dirais que ceux que je mets en "gratuit" sont ceux que je n'arrive pas à vendre?

D'un autre côté il y a les profiteurs de monopoles, comme MS, qui a l'origine eut le génie d'unifier les normes informatiques, mais qui désormais nous fait payer durant notre vie, une dizaine de fois le même logiciel (OS et Suite), car pour ma part, passer de XP à Vista est simplement un changement de version et ne devrait pas coûter plus de 15 ? avec le CD d'installation, or MS considère que c'est un autre logiciel, et le vend 200 ou 300 ? avec le CD d'installation, bon, là je trouve qu'il y a abus.
De même, certains logiciels, j'en ai un de "musique" (écriture du solfège), qui est très bien, nécessite une clef d'activation à chaque changement de machine, or, comme une société peut tomber en faillite, si jamais ça arrive on ne peut plus se servir du logiciel, pourtant payé?
Y a du côté de certaines sociétés un aspect rente perpétuelle, alors que par exemple un médicament tombe dans le domaine public au bout de quinze ans, on devrait sans doute faire une réglementation de ce type pour la version d'un logiciel, hélas ce n'est pas le cas? Il faudrait pourtant trouver un juste milieu entre ces deux extrêmes.

Concernant le code en vbNet je suis toujours demandeur, chercheur de personnes qui savent programmer les cartes, par exemple j'aimerais depuis longtemps faire un logiciel qui attrape le son à la sortie de la carte son (donc absent des bruits ambiants), et puisse en faire un fichier son facilement modifiable par tous les éditeurs de fichier son, ou encore, pouvoir faire un fichier midi en adressent la fréquence des différents instrument de la carte, si tu sais faire ça je suis intéressé?

Ben alors à un de ces jours, cordialement, Joe.
Commenter la réponse de ehjoe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.