الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

3 اسئلة نوعا ما بسيطة ارجو المساعدة

مغلق
بدأه Xacker في 27 أبريل 2003 · 11 رد · 1,052 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يكون بامكاني التالي:

بفرض لدي ComboBox وفيه عدة خيارات ولتكن هذه الخيارات هي اسماء الوان فرضا

احمر

اصفر

اخضر

ازرق

كيف بامكاني جعل اختيار اللون الاصفر مثلا يظهر نصا في TextBox ?

مثلا تظهر عبارة yellow فرضا

حاولت عدة طرق لكن لم تنفع فهل يمكن ذلك باستخدام

Select

Case علما اني لم اجربها من قبل وبصراحة ليس لدي فكرة واسعة عن استخدامه بصورة صحيحة

سؤال 2:

ما هو الكود الذي يمكنني من معرفة اصدار النظام (علما انني اود استخدامه في عبارة شرطية) فان كان 98 يقوم بتنفيذ كود وان كان اكس بي كود اخر الخ

ارجو ان اجد الحل لهذا فهو الحل لمشكلة اكواد الشفافية فليس هناك كود لجميع الاصدارات وتعذر امكانية تكرار البرنامج لكل اصدار ان كان العمل عليه يستغرق وقتا طويلا مع صعوبة توفير جميع الاصدارات في جهاز واحد

اخر سؤال وعذرا على الاطالة:

احاول حاليا التعامل مع الرموز Chr في الفيجوال ولم انجز سوى معرفة كيفية التحول من حروف كبيرة الى صغيرة والعكس

بفرض وجود ChkAscii

ChkHex

Chkspaced

و

txtType

txtChr

عند اختياري للتشيك بوكس الاول اقوم بالكتابة في txtType مما يؤدي الى ظهور الحروف مباشرة في txtChr لكن بصورة اسكي

التشيك بوكس 2 يؤدي الى ظهورها بصورة هكس

الخ

بالنسبة للتحويل بين الحروف الكبيرة والصغيرة استطعت عمل هذا على الشكل:

Private Sub txtType_Change()

If txtType.DataChanged Then

txtChr.Text = txtType.Text

End If



If chkUpper.Value = 1 Then



    txtChr.Text = UCase(txtType.Text)

    

End If



If chkLower.Value = 1 Then



    txtChr.Text = LCase(txtType.Text)

    

End If



End Sub

لكن واجهتني المشاكل في باقي الرموز والتحويل بينها رغم وجود اكواد لدي لكن لم اعرف استخدامها بالشكل الصحيح

مثلا وارجو ان يستفيد منها الاخرون ان اعتازوها:

Public Function UpDn(ByVal AnyStr As String) As String

  Dim i As Integer, b As String

  For i = 1 To Len(AnyStr)

  Select Case i Mod 2

    Case 0

      AnyStr = Left(AnyStr, i - 1) + LCase(Mid(AnyStr, i, 1)) + Right(AnyStr, Len(AnyStr) - i)

    Case 1

      AnyStr = Left(AnyStr, i - 1) + UCase(Mid(AnyStr, i, 1)) + Right(AnyStr, Len(AnyStr) - i)

  End Select

  Next

  UpDn = AnyStr

  

End Function

يقوم هذا الكود بتحويل الجملة من i am ready to chat online مثلا الى I Am ReAdY To cHaT OnLiNe

لم اعرف كيفية استخدامه لعدم وجود توضيح كيف يمكنني استدعاؤه او تغييره لصالحي وفي الشكل الذي احتاج اليه مع txtType و txtChr

كود اخر يقوم بعكس الكلام من Backwords الى sdrowkcaB:

Sub Rev()



Dim leng, i, x

leng = Len(Text1)

For i = 0 To leng

x = leng - i - 1

Text2 = Text2 & Mid(Text1, x, 1)

Next



End Sub

نفس المشكلة :(

كود 3 يقوم بالتحويل من ثنائي عشري الى عشري - من هكس الى عشري - من عشري الى ثنائي بثلاث طرق للاستدعاء لكن كوني مبتدء لم اعرف كيف اقوم باستخدامه على الشكل الصحيح:

Function Binary2Decimal(mybin As String, decout As Long)



    decout = 0

    bits = Len(mybin)

    

    'convert binary to decimal

    For i = 1 To bits

        If Mid(mybin, i, 1) = "1" Then

            decout = decout + (2 ^ bits) / 2

        ElseIf Mid(mybin, i, 1) <> "0" Then

            MsgBox "Invalid input", , "Error"

            decout = -1

            Exit Function

        End If

        bits = bits - 1

    Next i

    

End Function



Sub convertBin2Dec()



    Dim decout As Long

    Dim mybin As String

    

    mybin = InputBox("Decimal")

    Binary2Decimal mybin, decout

    If decout <> -1 Then MsgBox decout

    

End Sub



Function Decimal2Binary(mynum As Long, binout As String)



    Dim bit() As Integer

    Dim bits As Integer

    

    binout = ""

    

    'find out how big the number is in bits

    x = 1

    bits = 1

    Do While mynum > x

        x = x * 2

        bits = bits + 1

    Loop

    bits = bits - 1

    

    'redim 'bit' to number of bits

    ReDim bit(1 To bits)

    

    'convert decimal to binary

    For i = 1 To bits

        If mynum > ((2 ^ bits) / 2) - 1 Then

            bit(i) = "1"

            mynum = mynum - ((2 ^ bits) / 2)

        Else

            bit(i) = "0"

        End If

        binout = binout & bit(i)

        bits = bits - 1

    Next i

        

End Function



Sub convertDec2Bin()



    Dim binout As String

    Dim mynum As Long

    

    On Error GoTo azkaban

    

    mynum = InputBox("Decimal")

    Decimal2Binary mynum, binout

    MsgBox binout

    

    'the output from Decimal2Binary only uses as many 'bits' as it needs,

    'i.e. all leading zeros are removed (actually, they are never there

    'in the first place).  if you want the output in, for example, 8 bits,

    'you could use the following line of code to reformat the output:

    

    'binout = String(8 - Len(binout), "0") & binout '8 is number of bits

    

    

Exit Sub

azkaban:

    MsgBox "Invalid input", , "Error"

End Sub



Function Hexadecimal2Decimal(myhex As String, decout As Long)



    myhex = UCase(myhex)

    multiplier = 1



    decout = 0

    hexstr = "0123456789ABCDEF"

    For i = Len(myhex) To 1 Step -1

        z = Mid(myhex, i, 1)

        v = Val(InStr(1, hexstr, z)) - 1

        If v + 1 = 0 Then

            MsgBox "Invalid input", , "Error"

            decout = -1

            Exit Function

        End If

        decout = decout + v * multiplier

        multiplier = multiplier * 16

    Next i



End Function



Sub convertHex2Dec()



    Dim decout As Long

    Dim myhex As String

    

    myhex = InputBox("Hexadecimal")

    Hexadecimal2Decimal myhex, decout

    If decout <> -1 Then MsgBox decout

    

End Sub

والف شكر لم قرا الموضوع او ساعدني وآمل بحق ان اجد حلا لمشاكلي الكثيرة

اخوكم NOP :o

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#2

اجابة الس}ال الاول:

Select Case Combo1.ListIndex

Case 0

Text3.Text = "Blue"

Case 1

Text2.Text = "Green"

Case 2

Text1.Text = "Yellow"

End Select

#4

السؤال الاول: انظر الكود المرفق... هل هذا ما تريد؟

بالنسبه للكود الذي يعرض لك الكلام هكذا "I Am ReAdY To cHaT OnLiNe"..

يستخدم هكذا..

Dim str

str = UpDn("im ready to chat")

MsgBox str

اما بالنسبه للكود العاكس :فأقترح عليك استبداله بهذا(نفس الكود ولكن معدل)

Public Function Rev(str As String) As String

    Dim leng, i, x, RevStr

    leng = Len(str)

    For i = 0 To leng - 2

    x = leng - i - 1

    RevStr = RevStr & Mid(str, x, 1)

    Next

    Rev = RevStr

End Function

ويمكن استخدامه كالتالي

Dim str

str = Rev("im ready to chat online")

MsgBox str
#5

آسف نسيت ارفاق الملف

combo.zip

#6

وهذا مثال للكود الاخير

convert.rar

#7

بالنسبة لعكس الكلام من Backwords الى sdrowkcaB:

Text2= StrReverse(Text1)

الوظيفة موجودة ضمن الفيجوال بيسيك 6

#8

الف شكر للجميع بجرب وبخبركم بالنتائج

الف شكر (f)(f)(f)

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#9

السؤال الاول: الف شكر اخوي Bibo على هذه الطريقة وللاخ الغالي hamohd على الطريقة الاخرى شكرا لكما

السؤال الثاني:

اخي hamohd بالنسبة لتغيير حالة الحروف قمت باتطبيق ما اخبرتني به على الشكل

Public Function UpDn(ByVal AnyStr As String) As String

  Dim i As Integer, b As String

  For i = 1 To Len(AnyStr)

  Select Case i Mod 2

    Case 0

      AnyStr = Left(AnyStr, i - 1) + LCase(Mid(AnyStr, i, 1)) + Right(AnyStr, Len(AnyStr) - i)

    Case 1

      AnyStr = Left(AnyStr, i - 1) + UCase(Mid(AnyStr, i, 1)) + Right(AnyStr, Len(AnyStr) - i)

  End Select

  Next

  UpDn = AnyStr

  

End Function





Private Sub Text1_Change()

If Text1.DataChanged Then

Text2.Text = Text1.Text

End If



If Check1.Value = 1 Then

Dim str

str = UpDn(Text1.Text)

Text2.Text = str

End If

End Sub

لكن لم يتم تطبيقه بشكل صحيح حيث تبقى حالة الحروف كما هي .. ارجو ارشادي الى الطريقة الصحيحة او مكان الخطا

السؤال 3: تتم حل المشكلة الف شكر لك اخوي ابو شكيب

ارجو من اخوي hamohd توجيهي الى الطريقة التي يمكنني استخدام طريقته فيها مع Text1 و Text2 و CheckBox كما في الكود السابق الذي استخدمته كي يزداد اطلاعي على كيفية استخدامه في حال واجهتني مشكلة مماثلة :)

اخي ابو شكيب شكرا لك على المساعدة .. ارجو منك ان لم يكن لديك مانع اطلاعي على بعض الوظايف المماثلة لهذه الويظيفة التي تقوم بالتاثير على نص

كشكر بسيط هذا الكود يقوم بالتحويل من نص عادي الى نص بلغة Elite المستخدمة من قبل الهكرز للتخاطب احيانا:

ما نحتاجه هو

Check1 => chkElite

Text1 => txtType

Text2 => txtChr

Timer1

Module1 => Elite

نضع هذا الكود في الموديول Elite

Function Talk_Elite(strin As String)

'Returns the string in elite

Let inptxt$ = strin

Let lenth% = Len(inptxt$)



Do While NumSpc% <= lenth%

DoEvents

Let NumSpc% = NumSpc% + 1

Let NextChr$ = Mid$(inptxt$, NumSpc%, 1)

Let NextChrr$ = Mid$(inptxt$, NumSpc%, 2)

If NextChrr$ = "ae" Then Let NextChrr$ = "و": Let NewSent$ = NewSent$ + NextChrr$: Let Crapp% = 2: GoTo Greed

If NextChrr$ = "AE" Then Let NextChrr$ = "ئ": Let NewSent$ = NewSent$ + NextChrr$: Let Crapp% = 2: GoTo Greed

If NextChrr$ = "oe" Then Let NextChrr$ = "œ": Let NewSent$ = NewSent$ + NextChrr$: Let Crapp% = 2: GoTo Greed

If NextChrr$ = "OE" Then Let NextChrr$ = "Œ": Let NewSent$ = NewSent$ + NextChrr$: Let Crapp% = 2: GoTo Greed

If Crapp% > 0 Then GoTo Greed



If NextChr$ = "A" Then Let NextChr$ = "إ"

If NextChr$ = "a" Then Let NextChr$ = "ه"

If NextChr$ = "B" Then Let NextChr$ = "ك"

If NextChr$ = "C" Then Let NextChr$ = "ا"

If NextChr$ = "c" Then Let NextChr$ = "¢"

If NextChr$ = "D" Then Let NextChr$ = "ذ"

If NextChr$ = "d" Then Let NextChr$ = "ً"

If NextChr$ = "E" Then Let NextChr$ = "ت"

If NextChr$ = "e" Then Let NextChr$ = "è"

If NextChr$ = "f" Then Let NextChr$ = "ƒ"

If NextChr$ = "H" Then Let NextChr$ = "h"

If NextChr$ = "I" Then Let NextChr$ = "‡"

If NextChr$ = "i" Then Let NextChr$ = "î"

If NextChr$ = "k" Then Let NextChr$ = "|‹"

If NextChr$ = "K" Then Let NextChr$ = "(«"

If NextChr$ = "L" Then Let NextChr$ = "£"

If NextChr$ = "M" Then Let NextChr$ = "//"

If NextChr$ = "m" Then Let NextChr$ = "‹v›"

If NextChr$ = "N" Then Let NextChr$ = "//"

If NextChr$ = "n" Then Let NextChr$ = "ٌ"

If NextChr$ = "O" Then Let NextChr$ = "ط"

If NextChr$ = "o" Then Let NextChr$ = "ِ"

If NextChr$ = "P" Then Let NextChr$ = "¶"

If NextChr$ = "p" Then Let NextChr$ = "ق"

If NextChr$ = "r" Then Let NextChr$ = "®"

If NextChr$ = "S" Then Let NextChr$ = "§"

If NextChr$ = "s" Then Let NextChr$ = "$"

If NextChr$ = "t" Then Let NextChr$ = "†"

If NextChr$ = "U" Then Let NextChr$ = "ع"

If NextChr$ = "u" Then Let NextChr$ = "µ"

If NextChr$ = "V" Then Let NextChr$ = "/"

If NextChr$ = "W" Then Let NextChr$ = "VV"

If NextChr$ = "w" Then Let NextChr$ = "vv"

If NextChr$ = "X" Then Let NextChr$ = "><"

If NextChr$ = "x" Then Let NextChr$ = "×"

If NextChr$ = "Y" Then Let NextChr$ = "¥"

If NextChr$ = "y" Then Let NextChr$ = "‎"

If NextChr$ = "!" Then Let NextChr$ = "،"

If NextChr$ = "?" Then Let NextChr$ = "؟"

If NextChr$ = "." Then Let NextChr$ = "…"

If NextChr$ = "," Then Let NextChr$ = "‚"

If NextChr$ = "1" Then Let NextChr$ = "¹"

If NextChr$ = "%" Then Let NextChr$ = "‰"

If NextChr$ = "2" Then Let NextChr$ = "²"

If NextChr$ = "3" Then Let NextChr$ = "³"

If NextChr$ = "_" Then Let NextChr$ = "¯"

If NextChr$ = "-" Then Let NextChr$ = "—"

If NextChr$ = " " Then Let NextChr$ = "_"

If NextChr$ = "<" Then Let NextChr$ = "«"

If NextChr$ = ">" Then Let NextChr$ = "»"

If NextChr$ = "*" Then Let NextChr$ = "¤"

If NextChr$ = "`" Then Let NextChr$ = "“"

If NextChr$ = "'" Then Let NextChr$ = "”"

If NextChr$ = "0" Then Let NextChr$ = "؛"

Let NewSent$ = NewSent$ + NextChr$



Greed:

If Crapp% > 0 Then Let Crapp% = Crapp% - 1

DoEvents

Loop

Talk_Elite = NewSent$



End Function

ثم نقوم باستخدام الكود:

Private Sub Timer1_Timer()

txtChr.Text = Talk_Elite("" & txtType.Text)

End Sub

(خصائص ال Timer1 هي: Enabled: false

Interval: 1)

و الكود في حدث غلق الفورم:

Timer1.Enabled = False



End

ونهاية

Private Sub txtType_Change()

If txtType.DataChanged Then

txtChr.Text = txtType.Text

End If



' Do Elite

If chkElite.Value = 1 Then



Timer1.Enabled = True



End If



End Sub

وشكرا للجميع على المساعدات القيمة .. ارجو الا تكون الاسئلة الممتدة صعبة ..

الف شكر

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#10

طريقتك سليمه تماما وهذا مثال عليه

change.zip

#11

وهذا الكود العاكس

reverse.zip

#12

الف شكر اخي hamohd الف شكر (f)(f)

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…