View Full Version : سوال: قرار دادن tag بین متن
  
امین مستانی
شنبه 21 مرداد 1391, 15:42 عصر
با عرض سلام
طاعات و عبادات قبول
بنده دارم روی یک برنامه کار میکنم که میخوام با کلیک بر روی یک دکمه متن انتخاب شده در RichTextBox میان tag ها قرار بگیره برای مثال با کلیک بر روی کامند متن "سلام" به این صورت شود "[b/]سلام[b]"
و همین طور برعکس یعنی با کلیک بر روی یک کامند متن سلام را به صورت بولد برای پیش نمایش نشان دهد .
خودم این نمونه سورس را نوشتم که منتها متن را بهم میریزد
Dim StrInput
 
If Text2.SelLength = 0 Then
MsgBox "ÇÈÊÏÇ ãÊä ãæÑÏäÙÑ ÑÇ ÇäÊÎÇÈ ˜äíÏ", vbInformation, "Ñä"
Else
 
StrInput = Text2.SelText
Text2.SelText = ""
Text2.SetFocus
SendKeys "<b>" & StrInput & "</b>"
End If
شما نمونه سورسی برای سوالاتم ندارید؟؟
با تشکر
ramzdar
شنبه 21 مرداد 1391, 16:34 عصر
دو تا دکمه و دو تا RichTextBox بذار روی فرم و اسم RichTextBox ها رو به ترتیب به Text1 و Text2 تغییر بده و کد زیر رو تو بخش کد قرار بده
Private Sub Command1_Click()
Text1.Text = "<b>" & Text1.Text & "</b>"
End Sub
Private Sub Command2_Click()
On Error Resume Next
Dim StrInput As String
StrInput = Split(Text1.Text, "<b>")(1)
StrInput = Split(StrInput, "</b>")(0)
Text2.Text = StrInput
Text2.SelStart = 0
Text2.SelLength = Len(StrInput)
Text2.SelBold = True
End Sub
m.4.r.m
شنبه 21 مرداد 1391, 16:43 عصر
ببین این به کارت میاد ؟
http://uplod.ir/iq4vhen15f4f/TaGG.zip.htm
امین مستانی
شنبه 21 مرداد 1391, 17:00 عصر
ممنون از پاسخ هاتون 
ولی من میخوام که متن انتخاب شده در RichTextBox دارای تگ شود نه کل متن
مشکل من با متن انتخاب شده است
m.4.r.m
شنبه 21 مرداد 1391, 17:35 عصر
بیا داداش برات نوشتم اما تشکر یادت نره ها تو تکست باکس متن داخل Richtextbox رو می نویسی مثلا " Salam " بعد کلیک کن نتیجه رو ببین
http://uplod.ir/mmp3u82p10k0/Richtextbox.zip.htm
امین مستانی
شنبه 21 مرداد 1391, 19:44 عصر
ممنون از پاسختون . کارم راه افتاد .
ولی در متن های فارسی حروف جابجا میشوند . راهی برای درست کردن آنها نیست ؟؟
با تشکر
Mr'Jamshidy
یک شنبه 22 مرداد 1391, 01:50 صبح
ممنون از پاسختون . کارم راه افتاد .
ولی در متن های فارسی حروف جابجا میشوند . راهی برای درست کردن آنها نیست ؟؟
با تشکر
نه متاسفانه
چون کامپوننت ها (اکثرا) برای زبان های برای زبان های چپ به راست کانفیگ شده نمیشه کاریش کرد
البته شاید از RightToLeft بتونی جواب بگیری
http://barnamenevis.org/showthread.php?307981-Right-TO-left-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D9%88%D8%B1%D9%85&p=1351987&viewfull=1#post1351987
امین مستانی
یک شنبه 22 مرداد 1391, 04:37 صبح
ممنونم 
ولی باز هم همانطور به صورت بهم ریخته است
محسن واژدی
یک شنبه 22 مرداد 1391, 05:19 صبح
سلام علیکم 
تابع زیر را هم بررسی کنید:  Public Sub AddRemoveTag(RTBox As RichTextBox, sStartTag$, sEndTag$)
    On Error Resume Next
Dim inpu$
    Dim lSS&, lSL&
    With RichTextBox1
        lSS& = .SelStart
        lSL& = .SelLength
        If lSL& = 0 Then
            MsgBox "ابتدا متن را انتخاب کنيد", vbInformation
        Else
            If lSS& > Len(sStartTag$) And (lSL& + Len(sEndTag$)) < Len(.Text) Then
                If LCase(Mid(.Text, (lSS& - Len(sStartTag$)) + 1, Len(sStartTag$))) = LCase(sStartTag$) Then
                    If LCase(Mid(.Text, (lSS& + lSL&) + 1, Len(sEndTag$))) = LCase(sEndTag$) Then
                        .SetFocus
                        .SelStart = (lSS& - Len(sStartTag$))
                        .SelLength = lSS& + Len(sEndTag$)
                        
                        .SelText = Mid(.SelText, Len(sStartTag$) + 1, Len(.SelText) - (Len(sStartTag$) + Len(sEndTag$)))
                        .SelStart = lSS& - Len(sStartTag$)
                        .SelLength = lSL& - Len(sEndTag$)
                    Else
                        GoTo AddTag
                    End If
                Else
                    GoTo AddTag
                End If
            Else
                GoTo AddTag
            End If
            
            Exit Sub
AddTag:
            inpu$ = .SelText
            inpu$ = sStartTag$ & inpu$ & sEndTag$
            .SelText = inpu$
        End If
    End With
End Sub
 
برای مثال:  AddRemoveTag RichTextBox1,"", ""  
و یا:
AddRemoveTag RichTextBox1,"", ""
البته بایستی اول متن را high-light و سپس تابع را اجرا کنیم، برای کاهش وابستگی تابع به این مورد هم بایستی کمی کدها را اضافه تر کنیم :)
موفق باشید
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.