كيف يكون بامكاني التالي:
بفرض لدي 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