رفتن به مطلب
  • 0

نحوه استفاده از دو فونت در یک لیبیل


mrnazari

سوال

سلام دوستان
خسته نباشید
می‌خواستم توی یه لیبل از دو فونت استفاده کنم
مثلا من ی متن فارسی و انگلیسی دارم
می‌خوام فونت متن فارسی یه چی باشه فونت متن انگلیسی هم یه چی دیگه
چجوری باید این کارو بکنم؟
ممنون می‌شم جوابمو زود بدید
چون نیاز اساسی بهش دارم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

6 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

درود

شما اول باید تشخیص بدید که متن فارسی هست یا انگلیسی بعد بیاید شرط بزارید که اکر فارسی بود TypeFace بشه X و اگر انگلیسی بود مثلا از فونت Y استفاده کنه. 

برای تشخیص فارسی یا انگلیسی بودن هم میتونید از ساب های زیر استفاده کنید و نسبت به مقدار برگشتی شرط هاتون رو قرار بدید : 

Sub checkFarsiCharecter(str As String) As Boolean
    str = str.ToLowerCase
    Dim i As Int
    Dim j As Int = 0
    For i = 0 To str.Length - 1
        Select str.CharAt(i)
            Case "a"
                j = j +1
            Case "b"
                j = j +1
            Case "c"
                j = j +1
            Case "d"
                j = j +1
            Case "e"
                j = j +1
            Case "f"
                j = j +1
            Case "g"
                j = j +1
            Case "h"
                j = j +1
            Case "i"
                j = j +1
            Case "j"
                j = j +1
            Case "k"
                j = j +1
            Case "l"
                j = j +1
            Case "m"
                j = j +1
            Case "n"
                j = j +1
            Case "o"
                j = j +1
            Case "p"
                j = j +1
            Case "q"
                j = j +1
            Case "r"
                j = j +1
            Case "s"
                j = j +1
            Case "t"
                j = j +1
            Case "u"
                j = j +1
            Case "v"
                j = j +1
            Case "w"
                j = j +1
            Case "x"
                j = j +1
            Case "y"
                j = j +1
            Case "z"
                j = j +1
            Case "0"
                j = j +1
            Case "1"
                j = j +1
            Case "2"
                j = j +1
            Case "3"
                j = j +1
            Case "4"
                j = j +1
            Case "5"
                j = j +1
            Case "6"
                j = j +1
            Case "7"
                j = j +1
            Case "8"
                j = j +1
            Case "9"
                j = j +1
        End Select
    Next
    If j = 0   Then
        Return True
    End If
    Return False
End Sub

Sub checkCharecter(str As String) As Boolean
    str = str.ToLowerCase
    Dim i As Int
    Dim j As Int = 0
    For i = 0 To str.Length - 1
        Select str.CharAt(i)
            Case "a"
                j = j +1
            Case "b"
                j = j +1
            Case "c"
                j = j +1
            Case "d"
                j = j +1
            Case "e"
                j = j +1
            Case "f"
                j = j +1
            Case "g"
                j = j +1
            Case "h"
                j = j +1
            Case "i"
                j = j +1
            Case "j"
                j = j +1
            Case "k"
                j = j +1
            Case "l"
                j = j +1
            Case "m"
                j = j +1
            Case "n"
                j = j +1
            Case "o"
                j = j +1
            Case "p"
                j = j +1
            Case "q"
                j = j +1
            Case "r"
                j = j +1
            Case "s"
                j = j +1
            Case "t"
                j = j +1
            Case "u"
                j = j +1
            Case "v"
                j = j +1
            Case "w"
                j = j +1
            Case "x"
                j = j +1
            Case "y"
                j = j +1
            Case "z"
                j = j +1
            Case "."
                j = j +1
        End Select
    Next
    If j = str.Length Then
        Return True
    End If
    Return False
End Sub

Sub checknumber(str As String) As Boolean
    Dim i As Int
    Dim j As Int = 0
    For i = 0 To str.Length - 1
        Select str.CharAt(i)
            Case "0"
                j = j +1
            Case "1"
                j = j +1
            Case "2"
                j = j +1
            Case "3"
                j = j +1
            Case "4"
                j = j +1
            Case "5"
                j = j +1
            Case "6"
                j = j +1
            Case "7"
                j = j +1
            Case "8"
                j = j +1
            Case "9"
                j = j +1
            Case "."
                j = j +1
        End Select
    Next
    If j = str.Length Then
        Return True
    End If
    Return False
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

درود

شما اول باید تشخیص بدید که متن فارسی هست یا انگلیسی بعد بیاید شرط بزارید که اکر فارسی بود TypeFace بشه X و اگر انگلیسی بود مثلا از فونت Y استفاده کنه. 

برای تشخیص فارسی یا انگلیسی بودن هم میتونید از ساب های زیر استفاده کنید و نسبت به مقدار برگشتی شرط هاتون رو قرار بدید : 

Sub checkFarsiCharecter(str As String) As Boolean
    str = str.ToLowerCase
    Dim i As Int
    Dim j As Int = 0
    For i = 0 To str.Length - 1
        Select str.CharAt(i)
            Case "a"
                j = j +1
            Case "b"
                j = j +1
            Case "c"
                j = j +1
            Case "d"
                j = j +1
            Case "e"
                j = j +1
            Case "f"
                j = j +1
            Case "g"
                j = j +1
            Case "h"
                j = j +1
            Case "i"
                j = j +1
            Case "j"
                j = j +1
            Case "k"
                j = j +1
            Case "l"
                j = j +1
            Case "m"
                j = j +1
            Case "n"
                j = j +1
            Case "o"
                j = j +1
            Case "p"
                j = j +1
            Case "q"
                j = j +1
            Case "r"
                j = j +1
            Case "s"
                j = j +1
            Case "t"
                j = j +1
            Case "u"
                j = j +1
            Case "v"
                j = j +1
            Case "w"
                j = j +1
            Case "x"
                j = j +1
            Case "y"
                j = j +1
            Case "z"
                j = j +1
            Case "0"
                j = j +1
            Case "1"
                j = j +1
            Case "2"
                j = j +1
            Case "3"
                j = j +1
            Case "4"
                j = j +1
            Case "5"
                j = j +1
            Case "6"
                j = j +1
            Case "7"
                j = j +1
            Case "8"
                j = j +1
            Case "9"
                j = j +1
        End Select
    Next
    If j = 0   Then
        Return True
    End If
    Return False
End Sub

Sub checkCharecter(str As String) As Boolean
    str = str.ToLowerCase
    Dim i As Int
    Dim j As Int = 0
    For i = 0 To str.Length - 1
        Select str.CharAt(i)
            Case "a"
                j = j +1
            Case "b"
                j = j +1
            Case "c"
                j = j +1
            Case "d"
                j = j +1
            Case "e"
                j = j +1
            Case "f"
                j = j +1
            Case "g"
                j = j +1
            Case "h"
                j = j +1
            Case "i"
                j = j +1
            Case "j"
                j = j +1
            Case "k"
                j = j +1
            Case "l"
                j = j +1
            Case "m"
                j = j +1
            Case "n"
                j = j +1
            Case "o"
                j = j +1
            Case "p"
                j = j +1
            Case "q"
                j = j +1
            Case "r"
                j = j +1
            Case "s"
                j = j +1
            Case "t"
                j = j +1
            Case "u"
                j = j +1
            Case "v"
                j = j +1
            Case "w"
                j = j +1
            Case "x"
                j = j +1
            Case "y"
                j = j +1
            Case "z"
                j = j +1
            Case "."
                j = j +1
        End Select
    Next
    If j = str.Length Then
        Return True
    End If
    Return False
End Sub

Sub checknumber(str As String) As Boolean
    Dim i As Int
    Dim j As Int = 0
    For i = 0 To str.Length - 1
        Select str.CharAt(i)
            Case "0"
                j = j +1
            Case "1"
                j = j +1
            Case "2"
                j = j +1
            Case "3"
                j = j +1
            Case "4"
                j = j +1
            Case "5"
                j = j +1
            Case "6"
                j = j +1
            Case "7"
                j = j +1
            Case "8"
                j = j +1
            Case "9"
                j = j +1
            Case "."
                j = j +1
        End Select
    Next
    If j = str.Length Then
        Return True
    End If
    Return False
End Sub

 

مرسی از جوابتون

فقط می‌خواستم بدونم راه کمتری نداره؟؟؟!!!

اگه میشه یه توضیح کلی هم بابت کدی که گذاشتید بدید

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

مرسی از جوابتون

فقط می‌خواستم بدونم راه کمتری نداره؟؟؟!!!

اگه میشه یه توضیح کلی هم بابت کدی که گذاشتید بدید

ممنون

خواهش میکنم، والا متوجه منظورتون نمیشه یکی از روش های اصولیش اینه.

کد هم میاد تست میکنه اگر یه سری کارکتر در متن لیبل شما وجود داشت یه مقدار boolean برمیگردونه که شما باید شرط براش قرار بدید به این صورت : 

     If checkCharecter(Label2.Text) Then
   Label2.Typeface = en_TP
    Else If checkFarsiCharecter(Label2.Text) Then
       Label2.Typeface = farsi_TP
    End If

میتونید عدد بودن رو هم تشخیص بدید به همون روش بالا... 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

یک راهی قبلا یاد داشتم که میشد یک دوتا فونت رو در هم ادغام کرد ینی فونت انگلیسی و فارسی با هم تبدیل به یک فونت بشن.اینطوری نیاز به این همه کد نیس.اسمش نرم افزارش فک میکنمfont creator بود.دیگ خودت برو کار باهاش رو یاد بگیر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

یک راهی قبلا یاد داشتم که میشد یک دوتا فونت رو در هم ادغام کرد ینی فونت انگلیسی و فارسی با هم تبدیل به یک فونت بشن.اینطوری نیاز به این همه کد نیس.اسمش نرم افزارش فک میکنمfont creator بود.دیگ خودت برو کار باهاش رو یاد بگیر

سلام

مرسی از جوابت

من رفتم نرم‌افزار رو پیدا کردم ولی هر چی گشتم آموزش ترکیب دو فونت وجود داشته باشه نبود که نبود

میشه لینکی آموزشی چیزی بدی؟

دستت درد نکنه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

مرسی از جوابت

من رفتم نرم‌افزار رو پیدا کردم ولی هر چی گشتم آموزش ترکیب دو فونت وجود داشته باشه نبود که نبود

میشه لینکی آموزشی چیزی بدی؟

دستت درد نکنه

ترکیب کردن دو فونت بیش تر‌ برای ساخت فونت برای استفاده در‌موبایل به کار می ره ، اما در‌کامپیوتر‌ هم می تونید مشاهده کنید. آموزش ها رو از لینک های زیر ببینید :

http://www.ir-tci.org/forum/showthread.php?t=182798&styleid=14

http://forum.p30world.com/showthread.php?t=211631

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...