• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

VB Helper

المشرفون
  • عدد المشاركات

    5,149
  • تاريخ الانضمام

  • تاريخ اخر زياره

كل شيء نشر بواسطة VB Helper

  1. السلام عليكم ورحمه الله وبركاته موضوعنا اليوم حول التطويرات او الاضافات في لغة الفيجوال بيسك 10 ضمن الاصدار الرابع للدوت نت, سنحاول التطرق للاضافات في ستة نقاط اساسيه 1- Implicit line continuation لفترة طويلة من الزمن كانت الفيجوال بيسك تستخدم الرمز _ لتكملة السطر Dim names() As String = {"John", "Peter", _ "Dave", "Steve", "Mike", "Sue"} Dim sName = From name In names _ Where name.StartsWith("S") _ Select name في المثال اعلاه تم ربط السطرين الاوليين الذين يضمان عناصر المصفوفه النصيه بالرمز _ ونفس الحال في جملة الاستعلام بالـ LINQ ,السبب الذي ادى ان مبرمجي السي شارب يقولوا لماذا الفيجوال بيسك لغة مزعجه!! ولكن الان يمكنك كتابة نفس الكود السابق بالصورة التاليه Dim names() As String = {"John", "Peter", "Dave", "Steve", "Mike", "Sue"} Dim sName = From name In names Where name.StartsWith("S") Select name سنلاحظ ان اكمال السطر يتم تلقائيا من قبل اللغة. واذكر ان هناك مجموعة من الاماكن المحددة التي يمكن استخدام التكملة الضمنية 2- Auto-Implemented Properties كما هو معلوم لنا اذا اردنا القيام بعمل خاصية ما نقوم بكتابة كود مثل Property Name As String Get Return _name End Get Set(value As String) _name = value End Set End Property اما الان يمكننا تعريف الخواص على النحو التالي Property Name As String وللعلم قد تم تطبيق الاكمال التلقائي للخواص في السي شارب في الاصدار 3.0 3- Collection Initializers لنلقي نظرة على المثال التالي Dim names() As String = {"John", "Peter", "Dave", "Steve", "Mike", "Sue"} وهو ليس بغريب علينا تم تهئية عناصر المصفوفة باستخدام الاكمال الضمني للسطر, ولكن تخيل ان الكائن names ليس مصفوفة, يعني Collection فانه يمكننا تهئيتها على النحو التالي Dim names As New List(Of String) names.Add("John") names.Add("Peter") names.Add("Dave") names.Add("Steve") names.Add("Mike") السي شارب في الاصدار 3.0 قامت بتقديم صيغة جديدة لتهئية المجاميع وذلك بفصل عناصرها بـ , ووضعها ضمن الاقواس {} ,فقامت الفيجوال بأخذ نفس الفكره ولكن باضافة الكلمة From قبلها Dim names As New List(Of String) From {"John", "Peter", "Dave", "Steve", "Mike", "Sue"} Multi Lambda Expression- 4 كنا في الفيجوال بيسك 8 نقوم بكتابة الـ Lambda Expression على النحو التالي Delegate Function AddOperation(ByVal a As Integer, ByVal b As Integer) As Integer Sub Main() Dim op1 As Integer = 12 Dim op2 As Integer = 25 Dim operation As AddOperation = AddressOf Add Dim result As Integer = operation(op1, op2) End Sub Function Add(ByVal a As Integer, ByVal b As Integer) As Integer Return a + b End Function وفي الفيجوال بيسك 9 اصبحت كتابة الـ Lambda Expression اقصر Delegate Function AddOperation(ByVal a As Integer, ByVal b As Integer) As Integer Sub Main() Dim op1 As Integer = 12 Dim op2 As Integer = 25 Dim operation As AddOperation = Function(a As Integer, b As Integer) a + b Dim result As Integer = operation(op1, op2) End Sub رغم هذا الا انه يشترط ان تكون Function وليس Sub وان تكون دالة ذات سطر واحد فقط, ولكن في الفيجوال بيسك 10 تم الغاء القيود جميعها فيمكننا استخدامها ببساطه Dim op1 As Integer = 12 Dim op2 As Integer = 25 Dim operation = Function(a As Integer, b As Integer) Dim c As Integer c = a + b Return c End Function Dim result As Integer = operation(op1, op2) كما يمكننا استخدام الاجراءات ايضا بنفس الصوره 5- Working with dynamic objects مطوري الدوت نت معتادين على ان الانواع والعمليات يتم فحصها في وقت ترجمة البرنامج, فالمترجم يقوم بتوليد كود IL ينفذ تلك العمليات بالاستدعاء, سلوك هذا النوع من المترجمات يطلق عليه Early Binding ولقد طبقت الفيجوال بيسك الـ Late Binding منذ زمن طويل وذلك من خلال تعريف المتغيرات من نوع Object واستخدام Option Strict off وطور مفهوم الـ Late Binding بالـ Dynamic Language Runtime وللمزيد عن البرمجة الديناميكية ارجو قراءة الموضوع التالي http://www.arabteam2000-forum.com/index.php?showtopic=251001 لنلقي نظره على المثال التالي Dim myConsole As Object = Console.Out myConsole.WriteLine("My Console") لقد قمنا بتعريف كائن يمثل المخرج ولاحظ ان نوعه Object, وفي السطر الثاني تم كتابة الاجراء WriteLine؟!! ماهذا؟ طبعا اكيد غريبه والاجراء لن يقترحه المترجم لأن الاجراء السابق تابع للفئة Console ولكن لأننا قمنا بتعريف المتغير من نوع Object يعني انه متغير ديناميكي وسيتم التعرف على نوع اثناء وقت التشغيل, لذا سيقوم المترجم حينها التأكد من وجود هذا الاجراء للمتغير, فاذا كان موجود سيقوم بطباعة MyConsole والا سيصدر خطأ, سأترك المثال للتجربة .. فالان يمكننا التخاطب مع لغات مثل الجافاسكربت و الـ Ruby والـ Python وغيرهم بصوره ديناميكية 6- Covariance & Contravariance تعتبر الوراثه احد مبادىء البرمجة الكائينية الاساسية, فالفيجوال بيسك فقدت الـ OOP لفتره طويلة ولكن بعد ظهور الدوت نت والتي امكنت للغة تطبيق جميع مبادىء البرمجة الكائينية. ولايخفى بظهور الاصدار الثاني من الدوت نت ظهر مفهوم الـ Generics والتي خدم كثيرا سوى من ناحية الكفاءة او اعادة استخدام الكود ولكن يمكن لهذه الانواع ان تدهشنا بعض الشيء لسبب ان بعض الاشياء ممنوعة حتى لو اعتقدنا انها مسموحه لنلقي نظرة على المثال التالي Public strings As IList(Of String) = New List(Of String) Public objects As IList(Of Object) = strings Sub Main() strings.Add("Hello") strings.Add("World") For Each item In objects Console.WriteLine(item) Next End Sub عند عملية بناء البرنامج لن يظهر البرنامج لنا اي تحذير او خطأ ولكن عن وضع Option Strict On اعلى البرنامج سيظهر لنا الخطأ لايمكن تحويل IList( Of String) الى IList (Of Object) الـ Covariance والـ Contravariance يمكننا من التحويل المرجعي الضمني للأنواع التاليه Arrays والـ Delegates والان يمكننا حل المشكلة بالكود التالي Public strings As IList(Of String) = New List(Of String) Public objects As IEnumerable(Of Object) = strings Sub Main() strings.Add("Hello") strings.Add("World") For Each item In objects Console.WriteLine(item) Next End Sub طبعا انا متأكد ان النقطة الاخيرة صعبة شوي لذا يمكن الاستعانه بالرابط التالي http://msdn.microsoft.com/en-us/magazine/ee336029.aspx
  2. السلام عليكم ورحمه الله وبركاته لاحظت ركودا بسيطا في الاونة الاخيره في أقسام الدوت نت لذا حاولت ان افكر في بعض الطرق لإعطاء هذه الاقسام رونقها وازدهارها من جديد, فكما نرى ان هناك الكثير من الـ Third-Party التي تعمل ادوات لبيئة الدوت نت مثل DevX و telerik وغيرهما لذا فكرت في عمل أدوات مفتوحة المصدر OpenSource Controls فأرجو من الاعضاء التفاعل وانشاء أدوات تخدم المبرمجين العرب والاستفادة من اكوادها. اقدم اول اداة IPTextBox وهي عبارة عن اداة تسمح بادخال عنوان IP وهذا هو الكود الخاص بها Public Class IPTextBox Public ReadOnly Property IP As String 'Get the IP from TextBoxes Get If String.IsNullOrEmpty(txtNumber1.Text) AndAlso String.IsNullOrEmpty(txtNumber2.Text) AndAlso String.IsNullOrEmpty(txtNumber3.Text) AndAlso String.IsNullOrEmpty(txtNumber4.Text) Then Return Nothing Else Return String.Format("{0}.{1}.{2}.{3}", txtNumber1.Text, txtNumber2.Text, txtNumber3.Text, txtNumber4.Text) End If End Get End Property Private Sub txtNumber_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtNumber1.KeyPress, txtNumber2.KeyPress, txtNumber3.KeyPress, txtNumber4.KeyPress 'Disable all the keys except the digits and backspace If Not (Char.IsDigit(e.KeyChar) Or e.KeyChar = Chr(8)) Then e.Handled = True End If End Sub Private Sub txtNumber_TextChanged(sender As Object, e As System.EventArgs) Handles txtNumber1.TextChanged, txtNumber2.TextChanged, txtNumber3.TextChanged, txtNumber4.TextChanged 'Chech whether the current TextBox has 3 digits, if so move the focus into the next TextBox Dim currentTextBox As TextBox = DirectCast(sender, TextBox) If currentTextBox.Text.Length = 3 Then Select Case currentTextBox.Name Case "txtNumber1" txtNumber2.Focus() Case "txtNumber2" txtNumber3.Focus() Case "txtNumber3" txtNumber4.Focus() End Select End If End Sub Private Sub txtNumber_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles txtNumber1.Validating, txtNumber2.Validating, txtNumber3.Validating, txtNumber4.Validating 'Check whether the number in the range 0 - 255 Dim currentTextBox As TextBox = DirectCast(sender, TextBox) Dim number As Short = Convert.ToInt16(If(currentTextBox.Text.Trim().Length = 0, 0, currentTextBox.Text)) If number < 0 OrElse number > 255 Then MessageBox.Show(String.Format("{0} is not a valid entry. Please specify a value between 0 and 255", number), "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) e.Cancel = False currentTextBox.SelectionStart = 0 currentTextBox.SelectionLength = currentTextBox.Text.Length currentTextBox.Focus() End If End Sub End Class ارفقت المشروع للفائدة WindowsApplication1.zip
  3. افتكرته الاوقات الي اعلى :)
  4. السلام عليكم ورحمه الله وبركاته اخي جرب الاستعلام التالي Select DateTimeColumn From TableName Where DateTimeColumn>getdate()  
  5. السلام عليكم ورحمه الله وبركاته اخي تأكد ان قيمه المتغيرين Dm و Vm هما Act_ID و Act_Ar
  6. جمع حقلين فى جدول اكسس بواسطه vb.net

    السلام عليكم ورحمه الله وبركاته اعتقد لا داعي من انشاء حقل جديد لان قيمته محسوبه Calculated لذا انصح بارجاع الكميه * السعر اثناء الاستعلام, وهذا استعلام بسيط ليوضح الفكره Select ProductName, Quantity, Price, Quantity*Price As 'Total' From Products
  7. ارسل قيمة الي ملف تنفيدي exe

    السلام عليكم وحمه الله وبركاته اخي اعرف انه ارسال قيمه, ولكن هل هنالك اتصال مسبق بين البرنامجين عبر بروتوكول معين؟ وماهي الفائده من ارسال القيمه للبرنامج الاخر؟
  8. ارسل قيمة الي ملف تنفيدي exe

    السلام عليكم ورحمه الله وبركاته اخي ممكن توضح طبيعه ماتهدف اليه في برنامجك ليتسنى تقديم الحل الانسب, لانه يمكن عمل المطلوب بالـ Sockets او الـ Windows APIs ويمكن بطريقه اسهل من السابقتين, لذا ارجو التوضيح
  9. لمـاذا لم يجد دعماً كافياً

    اخي ما نوع الدعم الذي تبحث عنه؟!!
  10. كيفية الربط بي الجداول

    السلام عليكم ورحمه الله وبركاته اخي يمكنك ربط اي جدولين باستخدام الـ Join في الـ SQL او باستخدام الـ SSMS اذا كان الجدول الاساسي يحتوي على Primary Key والاخر Foreign Key  
  11. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات . قواعد طرح المشاركات شكرا لحسن تعاونكم 
  12. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات . قواعد طرح المشاركات شكرا لحسن تعاونكم 
  13. السلام عليكم ورحمه الله وبركاته يمكن عمل هذا باستخدام الشيفره التاليه: For Each frm As Form In Application.OpenForms frm.BackColor = Color.Blue Next
  14. السلام عليكم ورحمه الله وبركاته ممكن ترفقي رساله الخطأ
  15. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات . قواعد طرح المشاركات شكرا لحسن تعاونكم 
  16. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات . قواعد طرح المشاركات شكرا لحسن تعاونكم 
  17. [تنبيه - عنوان غير مناسب : ]سؤال

    الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته مرحباً بكم في منتدى الفريق العربي للبرمجة نود تنبيهك أن العنوان غير مناسب.الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!! قواعد طرح المشاركات شكرا لحسن تعاونكم   
  18. السلام عليكم ورحمه الله وبركاته جرب ان تعمل Mapping لاسم النطاق في ملف الـ hosts
  19. حسب ما ذكرت سابقا, تغيير اعدادات اللغه من لوحه التحكم يقوم بتغيير الـ Culture
  20. البرنامج لا يعمل عند العميل

    ارجو ارفاق رساله الخطأ
  21. مشكلة الاتصال بداتا بيز Access

    الي واضح انه لا توجد قيم لكلا الحقلي اسم المستخدم وكلمه المرور, يمكنك عمل شرط يتاكد من ادخال اسم وكلمه مرور قبل تنفيذ امر الـ Select
  22. طلب مساعدة

    اخي هنالك اكثر من طريقه للتحزيم, يمكنك بسهوله عملها من Build اختر Publish
  23. تعدد الكومبو بوكس

    Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim people As New List(Of Person) From { New Person() With {.FirstName = "Scott", .LastName = "Hanselman"}, New Person() With {.FirstName = "John", .LastName = "Papa"} } CheckedListBox1.DataSource = people CheckedListBox1.DisplayMember = "FirstName" End Sub End Class Public Class Person Public Property FirstName As String Public Property LastName As String End Class جرب المثال التالي:  
  24. تعدد الجداولفي جملة select

    اخي اكتب لي جمله الـ Select الاخيره بعد التعديل
  25. تعدد الجداولفي جملة select

    هناك مجموعه من الاخطاء في الكود السابق المصفوفه تحتوي 7 عناصر لذا قم يتغيير حجمها افصل رمز النجمه عن الـ From مرر المتغير x بدلا من FNAME الذي لا توجد له اي فائده هنا