Posts

Showing posts from December, 2015

Validating arabic strings for equality compare

جميعنا نستخدم الكلمات العربية بحكم أصولنا العربية و لذلك سنجد أن أغلب المبرمجين يكتبون برامجا موحهه للناطقين بالعربية لذلك هناك شئ هام جدا يجب وضعه في الإعتبار حين نريد ان نكتب برامج تدعم اللغة العربية و هذا الشئ هو مقارنة الكلمات و الأسماء والحروف المكتوبة باللغة العربية للتأكد من صحتها و التأكد من ظهورها و تخزينها بالشكل الصحيح. وفي هذا الموضوع سنناقش كيفية التأكد من صحة المدخلات المكتوبة باللغة العربية قبل حفظها أو قبل استخدامها بشكل ما مثل حفظها في برامج الداتابيز مثلا ولتوضيح الموضوع علينا أن نفهم كيف تكتب الحروف العربية في الأصل و ماهي الحالات التي تظهر بها الحروف العربية   الحالة الأولي   أن الحرف قد يظهر منفردا أو منعزلا وكمثال علي ذلك حرف الواو من الممكن ان يظهر هكذا (و) او حرف الألف من الممكن أن يظهر هكذا (أ) او حرف الحاء (ح) وهكذا مع بقية الحروف الأخري الحالة الثانية ان الحرف قد يكون جزء من كلمة و ربما يظهر في وسط هذه الكلمة وهنا قد يكون الحرف مقرونا بشئ اخر وكمثال علي ذلك حرف الحاء (ح) مثلا من الممكن ان يظهر هكذا ( ـــــحـــــ.) وهكذا مع بقية الح

NumericsShaper From English To Arabic in DotNet

ترجمة نص أو ترجمة كلمة أو رقم من لغة الي أخري أمر هام جدا خاصة حين تحاول أن تبني برامج تدعم لغات أخري ومن المؤكد أن هذا الأمر يشغل بال فئة من المبرمجين و في  هذا الموضوع سنناقش بعض الأفكار التي من الممكن أن تكون نواة معقولة لكتابة برامج لترجمة النصوص او كتابة برامج مثل القاموس الإلكتروني او ما شابه ذلك الهدف مشاركة الأفكار البرمجية الفكرة فكرة الموضوع هنا عبارة عن تخزين البيانات بشكل ما ثم فراءتها ثم عرضها علي المستخدم من خلال برنامجك وهذا غالبا ما يتم بأكثر من اسلوب طبقا لرؤية و هدف كل مبرمج هذا كله من الممكن أن يتم كالتالي أن نحتفظ بالبيانات الخاصة بكل لغة في ملف ما او في عدة ملفات ثم نقوم بقراءتها وتحويلها الي مصفوفات وهذا الأسلوب مناسب جدا حين يكون هدفك أن تسمح لمستخدم البرنامج أن يضيف بيانات أو يقوم بالتعديل في البيانات التي تم تخزينها مسبقا او ما شابه ذلك   أن يكون برنامجك لا يدعم عمليات الاضافة والتعديل وتقوم أنت بإدخال البيانات كاملة وهنا قد تحتاج او لا تحتاج الي ملفات لتخزين البيانات لكنك ستظل في حاجة الي تخزين البيانات بشكل ما د

إختيار صف واحد أو اختيار جميع الصفوف في الداتا جريد فيو

الكود التالي يوضح كيفية اختيار صف واحد من الداتا حريد فيو  و أيضا يستخدم لإختيار جميع الصفوف Friend  Function  SelectRows ( ByVal grid  As  DataGridView ) As  Boolean          ' Method 1         ' For  j  As  Integer  =  0 To grid . Rows . Count  -  1          '    Dim row As DataGridViewRow = grid.Rows(j)         '     Me . SelectRow ( grid ,  row . Index )           'Next         '  Method 2         For Each r  As  DataGridViewRow In grid . Rows             Me . SelectRow ( grid ,  r . Index )          Next         Return False     End  Function      Friend  Function  SelectRow ( ByVal grid  As  DataGridView ,  ByVal row  As  Integer ) As  Boolean         If  ( row  >=  grid . RowCount )  Then             row  = ( grid . RowCount  -  1 )          End  If          If  ( row  >=  0 )  Then             grid . CurrentCell  =  grid . Rows . Item ( row ). Cells . Item ( 0 )              grid . Rows . Item ( row ). Selected  =  True             Return True  

Retrieve Owner and Form of a Control

أحيانا و عندما تقوم بكتابة كونترول جديد قد نحتاج الي الحصول علي الكونترول الموجود به الكونترول الخاص بنا وأيضا قد نحتاج ان نحصل علي الفورم الموجود به الكونترول  الخاص بنا و لكي نفعل هذا علينا فقط ان نضيف للكونترول الخاص بنا هاتين الصفتين    ' Retrieve container of our control     Public Property Owner As Control         Get             Return MyBase.Parent         End Get         Set(value As Control)             If MyBase.Parent IsNot value Then                 If value Is Nothing Then                     value.Controls.Add(Me)                 End If             End If             MyBase.Parent.Controls.Remove(Me)         End Set     End Property     '  ' Retrieve form of our control     Public ReadOnly Property Form As ContainerControl         Get             Dim _designer As Control = MyBase.Parent             While _designer IsNot Nothing                 If TypeOf _designer Is ContainerControl Then                     Return TryCast(_designer, ContainerControl)    

Capture Mouse Position within Control Coordinates

إيجاد مكان الماوس عي الكونترول في أي وقت أمر هام جدا و أهميته تكمن في أننا تستطيع إستخدامه في كثير من الحلول البرمجية خاصة في ألعاب الكمبيوتر و تحريك الأشياء المرسومة مثل الأشكال الهندسية المختلفة و في تحريك الصور او تحريك اي شئ موجود داخل الكونترول أو حتي إيجاد أي شئ علي الكونترول في أي وقت خاصة وقت التشغيل وأفضل مثال عملي للفكرة التي اريد كتابتها هو  Google Maps أغلب المبرمجين يعتمدون علي طرق و دوال موجودة بالفعل في الكونترول مثل : - Control.PointToClient Method Control.MousePosition Cursor.Position و لأني مهتم جدا بالجرافكس  و الانيميشين وجدت انني دائما ما يجب علي أن أتعامل مع أجداث الماوس المختلفة حتي أستطيع تحديد مكان الماوس علي الكونترول و لكي أوفر علي نفسي مشقة تكرار كتابة هذه الأكواد وجدت انني أحتاج الي تطوير الكونترول الخاص بشركة مايكروسوفت و إضافة بعض الصفات الإضافية له و التي أستطيع بإستخدامها تحديد مكان الماوس داخل حدود الكونترول في أي وقت وكان شرطا لدي لتنفيذ هذه الفكرة هو أن لا أستخدم الدوال والطرق الخاصة بشركة مايكروسوفت والمذكورة أعلاه الفكرة: لكي أقوم بتن