Posts

Showing posts from November, 2015

ِ Write Custom Classes To Localize Windows Forms Application

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

ArrayList Supports Notifications When Items Added or Removed

Image
Public Class ArrayListChangedEventArgs     Inherits EventArgs     Public Sub New(list As CairoArrayList, action As ChangeAction)         Me.List = list         Me.Action = action     End Sub     Public Property List As CairoArrayList     Public Property Action As ChangeAction End Class ' ArrayListChangedEventArgs Public Enum ChangeAction     Add     Remoce End Enum Public Class CairoArrayList     Private _list As ArrayList     Public Sub New()         Me._list = New ArrayList     End Sub     Public ReadOnly Property Items As ArrayList         Get             Return Me._list         End Get     End Property     Public Sub Add(value As Object)         If Me._list IsNot Nothing AndAlso (Not Me._list.Contains(value)) Then             Me._list.Add(value)             Me.OnChanged(Me, New ArrayListChangedEventArgs(Me, ChangeAction.Add))         End If     End Sub     Public Sub Remove(value As Objec

Object MemberwiseClone Method

Public Class PersonID     Public IdNumber As Integer     Public Sub New(IdNumber As Integer)         Me.IdNumber = IdNumber     End Sub End Class ' PersonID Public Class Person     Implements ICloneable     Public ID As PersonID     Public Age As Integer     Public Name As String     Public Function Clone() As Object Implements ICloneable.Clone         Return Me.CreateDeepCopy(CreateShallowCopy())     End Function     Friend Function CreateShallowCopy() As Person         Return CType(Me.MemberwiseClone(), Person)     End Function     Friend Function CreateDeepCopy(current As Person) As Person         Return current     End Function End Class References: MSND Reference

Create, Save Tiff Image & Extract Images From TIFF Image

Friend Sub ImagesToTiff(fileName As String, images As Image(), isMultiIFrame As Boolean)        ' Define an EncoderParameters array        Dim encoderParams As New EncoderParameters(1)        ' Define ImageCodecInfo to retrieve information about image encoders and decoder        Dim encoderInfo As ImageCodecInfo = ImageCodecInfo.GetImageEncoders().First(Function(ie) ie.MimeType = "image/tiff")        '  define tiff image        Dim tiff As Image = CType(Nothing, Image)        ' define the top bitmap        Dim masterBitmap As Bitmap = CType(Nothing, Image)        If isMultiIFrame Then            Dim i As Integer = 0            While i < images.Length                If i = 0 Then                    ' save the top bitmap/frame                    Dim firstStream As New IO.MemoryStream                    masterBitmap = images(i)                    masterBitmap.Save(fi

Add ContextMeunStrip To Rectangle

Public Class Form1    Private list As List(Of String) = New List(Of String)    Private rect As Rectangle = New Rectangle(10, 10, 100, 20)    Private selectedText As String = Nothing    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load        Me.list.Add("Omar")        Me.List.Add("Amin")        Me.List.Add("Ibrahim")    End Sub    Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint        Using sb As New SolidBrush(Color.Black)            e.Graphics.FillRectangle(sb, rect)            Using sf As StringFormat = New StringFormat                sf.Alignment = StringAlignment.Center                sf.LineAlignment = StringAlignment.Center                e.Graphics.DrawString(selectedText, Control.DefaultFont, Brushes.White, rect, sf)            End Using        End Using    End Sub    Private Sub Form1_M

List (Of T) & HashSet (Of T) Provides Notifications When Items Added or Removed

Public Class ObservableList(Of T)    Inherits List(Of T) #Region " Constructor "    Public Sub New()    End Sub #End Region #Region " Property "    Public ReadOnly Property InnerList As IEnumerable(Of T)        Get            Return MyBase.ToList.AsReadOnly        End Get    End Property #End Region #Region " Method "    Public Overloads Sub Add(item As T)        If Not Me.InnerList.Contains(item) Then            MyBase.Add(item)            Me.OnChanged(item, ObservableChangeAction.Add)        End If    End Sub    Public Overloads Sub Remove(item As T)        If Me.InnerList.Contains(item) Then            MyBase.Remove(item)            Me.OnChanged(item, ObservableChangeAction.Remove)        End If    End Sub    Protected Sub OnChanged(item As T, action As ObservableChangeAction)        RaiseEvent Changed(Me, New Observ