string durchsuchen, statt bestimmten Zeichensatz Bild in richTextBox einfügen

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von Slave.

    string durchsuchen, statt bestimmten Zeichensatz Bild in richTextBox einfügen

    Hallo !!!
    Ich möchte für mein Chat smileys einfügen.
    und das alles möchte ich mit einer rtb machen.
    so nun die frage wie kann ich denn string durchsuchen, und bestimmte Zeichensätze in eine bild umwandeln ich krieg das überhaubt nicht hin x.x.

    danke im voraus

    Slave
    String Funktionen, wie z.B. IndexOf zum suchen, mit Substring den Smilie rauslöschen und in den RTF Code das bild einfließen lassen(als PNG, die ByteWerte in HEX dargestellt), wie das genauere drumherum aussehen muss, kannst du dir in einer RTF Datei mit Bild angucken...
    das ganze musst du in der RTF Eigenschaft machen...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Snippets sind meist kurz, das hier wäre dann wohl weniger ein Snippet...
    follgende Informationen bekommst du noch von mir:

    Quellcode

    1. {\pict\pngblip\picwX\pichY
    2. HEXDATEN
    3. }

    anstatt X gibst du die Breite des Bildes in pixeln an und anstatt Y die Höhe in Pixeln...
    bei den HEXDATEN schreibst du einfach das PNG Bild(andere Bilder müssen erst konvertiert werden) d.h. die Bytes mit Header und allem drum und dran, in HEX Form rein...
    social.msdn.microsoft.com/foru…3-4672-8ccd-33718148d1e3/
    ala das hier ;)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Fehler 1 "As Any" wird in Declare-Anweisungen nicht unterstützt. C:\Dokumente und Einstellungen\Slave\Desktop\Projekt1.NET1\Form1.vb 10 161 Projekt1
    Fehler 2 "SelStart" ist kein Member von "System.Windows.Forms.Control". C:\Dokumente und Einstellungen\Slave\Desktop\Projekt1.NET1\Form1.vb 28 9 Projekt1
    Fehler 3 "Find" ist kein Member von "System.Windows.Forms.Control". C:\Dokumente und Einstellungen\Slave\Desktop\Projekt1.NET1\Form1.vb 58 10 Projekt1
    Fehler 4 "SelStart" ist kein Member von "System.Windows.Forms.Control". C:\Dokumente und Einstellungen\Slave\Desktop\Projekt1.NET1\Form1.vb 63 5 Projekt1
    Fehler 5 "Find" ist kein Member von "System.Windows.Forms.Control". C:\Dokumente und Einstellungen\Slave\Desktop\Projekt1.NET1\Form1.vb 63 20 Projekt1
    Fehler 6 "SelLength" ist kein Member von "System.Windows.Forms.Control". C:\Dokumente und Einstellungen\Slave\Desktop\Projekt1.NET1\Form1.vb 65 5 Projekt1
    Fehler 7 "SelStart" ist kein Member von "System.Windows.Forms.Control". C:\Dokumente und Einstellungen\Slave\Desktop\Projekt1.NET1\Form1.vb 68 13 Projekt1
    Fehler 8 "SelLength" ist kein Member von "System.Windows.Forms.Control". C:\Dokumente und Einstellungen\Slave\Desktop\Projekt1.NET1\Form1.vb 68 28 Projekt1
    Fehler 9 "SelText" ist kein Member von "System.Windows.Forms.Control". C:\Dokumente und Einstellungen\Slave\Desktop\Projekt1.NET1\Form1.vb 70 5 Projekt1
    Fehler 10 "SelStart" ist kein Member von "System.Windows.Forms.Control". C:\Dokumente und Einstellungen\Slave\Desktop\Projekt1.NET1\Form1.vb 81 3 Projekt1
    Fehler 11 Der Wert vom Typ "Microsoft.VisualBasic.FileAttribute" kann nicht in "System.Windows.Forms.Cursor" konvertiert werden. C:\Dokumente und Einstellungen\Slave\Desktop\Projekt1.NET1\Form1.vb 86 41 Projekt1

    VB.NET-Quellcode

    1. Public Class Form1
    2. Public Sub Create_Smileys(ByRef RTF As System.Windows.Forms.Control)
    3. Dim Picture1 As Object
    4. Dim Smileys() As String
    5. Dim SmileysFile() As String
    6. Dim Smilestring As String
    7. Dim SmileFileString As String
    8. Dim i As Short
    9. Dim Pos, Start As Integer
    10. Dim IconPath As String
    11. 'UPGRADE_WARNING: Screen Eigenschaft Screen.MousePointer hat ein neues Verhalten. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6BA9B8D2-2A32-4B6E-8D36-44949974A5B4"'
    12. System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
    13. ' Akt. Position im RTF merken
    14. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts RTF.SelStart konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    15. Pos = RTF.SelStart
    16. ' Suche nach Smileys ab Stelle
    17. Start = 1
    18. ' Pfad, in dem die Bilddateien gespeichert sind
    19. IconPath = My.Application.Info.DirectoryPath & "\smileys\"
    20. ' Smileys-Tags (Zeichenfolgen) - durch
    21. ' Leerzeichen getrennt
    22. Smilestring = ":) :-) :( :-( ;) ;-) " & ":o :D :p :cool: :rolleyes: :mad:"
    23. ' Dateinamen der Bilder, durch die die Zeichenfolgen
    24. ' ersetzt werden sollen - durch Komma getrennt
    25. SmileFileString = "smiley1.gif,smiley1.gif," & "smiley2.gif,smiley2.gif," & "smiley3.gif,smiley3.gif," & "smiley4.gif,smiley5.gif," & "smiley6.gif,smiley7.gif," & "smiley8.gif,smiley9.gif"
    26. ' Strings zerlegen und in ein Array speichern (nur VB6)
    27. ' VB4/5: siehe http://www.vbarchiv.net/archiv/tipp_463.html
    28. Smileys = Split(Smilestring, " ")
    29. SmileysFile = Split(SmileFileString, ",")
    30. ' kleine Prüfung, ob gleiche Anzahl
    31. If UBound(Smileys) <> UBound(SmileysFile) Then
    32. MsgBox("Ungleiche Anzahl.")
    33. Exit Sub
    34. End If
    35. ' Nach Smileys in der RichTextBox suchen:
    36. For i = LBound(Smileys) To UBound(Smileys)
    37. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts RTF.Find konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    38. While RTF.Find(Smileys(i), Start - 1) >= 0
    39. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts Picture1.Picture konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    40. Picture1.Picture = System.Drawing.Image.FromFile(Trim(IconPath & SmileysFile(i)))
    41. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts RTF.SelStart konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    42. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts RTF.Find konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    43. RTF.SelStart = RTF.Find(Smileys(i), Start - 1)
    44. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts RTF.SelLength konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    45. RTF.SelLength = Len(Smileys(i))
    46. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts RTF.SelLength konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    47. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts RTF.SelStart konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    48. Start = RTF.SelStart + RTF.SelLength + 1
    49. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts RTF.SelText konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    50. RTF.SelText = ""
    51. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts Picture1.Picture konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    52. CopyPictureToRTF(RTF, Picture1.Picture)
    53. End While
    54. ' Alle Smileys eines Type gefunden. Suche von vorn
    55. Start = 1
    56. Next i
    57. ' Textmarke wieder zurücksetzen
    58. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts RTF.SelStart konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    59. RTF.SelStart = Pos
    60. 'UPGRADE_ISSUE: Es kann nicht festgestellt werden, auf welche Konstante vbNormal aktualisiert werden soll. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="B3B44E51-B5F1-4FD7-AA29-CAD31B71F487"'
    61. 'UPGRADE_ISSUE: Die Screen-Eigenschaft Screen.MousePointer unterstützt keine benutzerdefinierten Mauszeiger. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="45116EAB-7060-405E-8ABE-9DBB40DC2E86"'
    62. 'UPGRADE_WARNING: Screen Eigenschaft Screen.MousePointer hat ein neues Verhalten. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6BA9B8D2-2A32-4B6E-8D36-44949974A5B4"'
    63. System.Windows.Forms.Cursor.Current = vbNormal
    64. End Sub
    65. Private Sub CopyPictureToRTF(ByRef RTF As System.Windows.Forms.Control, ByRef Bild As System.Drawing.Image)
    66. Dim Picture1 As Object
    67. ' Diese Funktion stamt von Michael Imhof
    68. ' Siehe vb@rchiv: http://www.vbarchiv.net/archiv/tipp_56.html
    69. ' Manchmal gibt es Probleme mit dem Zurückschreiben
    70. ' der Zwischenablage, in diesem Fall kann man die Zeilen
    71. ' Clipboard.... auskommentieren
    72. Dim Buf As Object
    73. 'UPGRADE_NOTE: Text wurde aktualisiert auf Text_Renamed. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="A9E4979A-37FA-4718-9994-97DD76ED70A7"'
    74. Dim Text_Renamed As String
    75. If My.Computer.Clipboard.ContainsText() = True Then
    76. ' Wenn in der Zwischenablage Text ist,
    77. ' wird er in einem String gespeichert
    78. Text_Renamed = My.Computer.Clipboard.GetText
    79. Else
    80. ' ansonsten in einer Variant-Variable
    81. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts Buf konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    82. Buf = My.Computer.Clipboard.GetImage()
    83. End If
    84. ' Zwischenablage löschen und Bild kopieren
    85. My.Computer.Clipboard.Clear()
    86. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts Picture1.Picture konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    87. My.Computer.Clipboard.SetImage(Picture1.Picture)
    88. System.Windows.Forms.Application.DoEvents()
    89. ' Bild per SendMessage in RTF-Box einfügen
    90. SendMessage(RTF.Handle.ToInt32, WM_PASTE, 0, 0)
    91. System.Windows.Forms.Application.DoEvents()
    92. Sleep(30) ' zur Sicherheit kurz warten
    93. ' Zwischenablage wieder löschen, da das Bild
    94. ' sonst in der Zwischenablage bleibt
    95. My.Computer.Clipboard.Clear()
    96. ' Falls vor dem Kopieren des Bildes ein Text oder
    97. ' sonstiger Inhalt in der Zwischenablage war, schreiben wir
    98. ' diesen wieder zurück in die Zwischenablage
    99. If Text_Renamed <> "" Then
    100. My.Computer.Clipboard.SetText(Text_Renamed)
    101. Else
    102. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts Buf konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    103. If Buf <> 0 Then
    104. My.Computer.Clipboard.SetImage(Buf)
    105. End If
    106. End If
    107. End Sub
    108. Private Sub Command1_Click()
    109. Dim RichTextBox1 As Object
    110. ' Alle Smiley-Tags durch Bildsymbole ersetzen
    111. 'UPGRADE_WARNING: Die Standardeigenschaft des Objekts RichTextBox1 konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    112. Create_Smileys(RichTextBox1)
    113. End Sub
    114. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    115. End Sub
    116. End Class