تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
محاذاة اداة list view من اليمين الى اليسار
#1
السلام عليكم ورحمة الله وبركاته ....


بالنسبة لاداة listview كيف يمكن تحويل السجلات من اليمين الى اليسار 

هذا بخصوص عمل واجهة البرنامج بالعربي 
حيث انها تظهر من اليسار الى اليمين 


وشكرا لكم
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته

جرب التالي

PHP كود :
Option Explicit
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As LongByVal nIndex As LongByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As LongByVal nIndex As Long) As Long
Private Const WS_EX_LAYOUTRTL = &H400000
Private Const GWL_EXSTYLE = (-20)

 Private 
Sub SetRtL(Ctl As Control)
Ctl.Visible False
SetWindowLong Ctl
.hwndGWL_EXSTYLE_
GetWindowLong
(Ctl.hwndGWL_EXSTYLE_
Or WS_EX_LAYOUTRTL
Ctl
.Visible True
End Sub

Private Sub Form_Load()
SetRtL ListView1
End Sub 


بالتوفيق .
الرد }}}
تم الشكر بواسطة: hannileo , hannileo , Sajad , Sajad
#3
(12-11-18, 11:13 PM)AL_BRNS كتب : وعليكم السلام ورحمة الله وبركاته

جرب التالي

PHP كود :
Option Explicit
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As LongByVal nIndex As LongByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As LongByVal nIndex As Long) As Long
Private Const WS_EX_LAYOUTRTL = &H400000
Private Const GWL_EXSTYLE = (-20)

 Private 
Sub SetRtL(Ctl As Control)
Ctl.Visible False
SetWindowLong Ctl
.hwndGWL_EXSTYLE_
GetWindowLong
(Ctl.hwndGWL_EXSTYLE_
Or WS_EX_LAYOUTRTL
Ctl
.Visible True
End Sub

Private Sub Form_Load()
SetRtL ListView1
End Sub 


بالتوفيق .



شكرا لك وبارك الله بك  استاذ AL_BRNS        


لقد وضعت هذا الكود في الفورم ولكن ظهرت رسالة خطأ عند التنفيذ وعندما ازلت الكود لم تعد تظهر هذه الرسالة كما مبين بالصورة


وبكل الاحوال جربتها على مثال خارجي اضفت listview للفورم ونسخت الكود ولم يتغير شيئ كما في الصورة الثانية


الملفات المرفقة صورة/صور
       
الرد }}}
تم الشكر بواسطة:
#4
العفو اخي الكريم

جرب المثال التالي

بالتوفيق .


الملفات المرفقة
.rar   ListView.rar (الحجم : 1.5 ك ب / التحميلات : 38)
الرد }}}
تم الشكر بواسطة: hannileo , hannileo , elgokr
#5
(13-11-18, 11:40 PM)AL_BRNS كتب : العفو اخي الكريم

جرب المثال التالي

بالتوفيق .



اشكرك اخي AL_BRNS


لكن للاسف لم يعمل عندي بشكل جيد مازالت رسالة الخطأ كما بالصورة السابقة تظهر عندي 

ربما لانني وضفت اسم العمود من خصائص الاداة وليس بطريقة برمجية 

هل هناك طريقة عملية اكثر من هذه الطريقة ان امكن وشكرا لك
الرد }}}
تم الشكر بواسطة:
#6
وعليكم السلام ورحمة الله وبركاته

تفضل استخدم الكود بهذا الشكل
كود :
Option Explicit
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Const WS_EX_LAYOUTRTL = &H400000
Private Const GWL_EXSTYLE = (-20)

Private Sub SetRtL(Ctl As Control)
Ctl.Visible = False
SetWindowLong Ctl.hWnd, GWL_EXSTYLE, _
GetWindowLong(Ctl.hWnd, GWL_EXSTYLE) _
Or WS_EX_LAYOUTRTL
Ctl.Visible = True
End Sub


Private Sub Form_Load()
Me.ListView1.View = lvwReport
   
Me.ListView1.ColumnHeaders.Clear
Me.ListView1.ColumnHeaders.Add , , "العنوان", ListView1.Width / 2
Me.ListView1.ColumnHeaders.Add , , "التفاصيل", ListView1.Width / 2

With Me.ListView1.ListItems
   .Add , , "تجريبي 1"
   .Add , , "تجريبي 2"
End With

Me.ListView1.ListItems(1).SubItems(1) = "نص نص نص نص نص نص"
Me.ListView1.ListItems(2).SubItems(1) = "نص نص نص نص نص نص"

SetRtL ListView1
End Sub
Option Explicit
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Const WS_EX_LAYOUTRTL = &H400000
Private Const GWL_EXSTYLE = (-20)

Private Sub SetRtL(Ctl As Control)
Ctl.Visible = False
SetWindowLong Ctl.hWnd, GWL_EXSTYLE, _
GetWindowLong(Ctl.hWnd, GWL_EXSTYLE) _
Or WS_EX_LAYOUTRTL
Ctl.Visible = True
End Sub


Private Sub Form_Load()
Me.ListView1.View = lvwReport
   
Me.ListView1.ColumnHeaders.Clear
Me.ListView1.ColumnHeaders.Add , , "العنوان", ListView1.Width / 2
Me.ListView1.ColumnHeaders.Add , , "التفاصيل", ListView1.Width / 2

With Me.ListView1.ListItems
   .Add , , "تجريبي 1"
   .Add , , "تجريبي 2"
End With

Me.ListView1.ListItems(1).SubItems(1) = "نص نص نص نص نص نص"
Me.ListView1.ListItems(2).SubItems(1) = "نص نص نص نص نص نص"

SetRtL ListView1
End Sub

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: hannileo , Sajad , Sajad
#7
وعليكم السلام ورحمة الله وبركاته ,,,

فعلاً هذه المرة هذا الكود يعمل بشكل جيد عندما نسخت الكود في فورم مع ادام listview ولكن ليش مع برنامجي ولا ادري ماهو السبب حيث انها تظهر عندي رسالة خطأ 
عندما اقوم بالتشغيل  هل يوجد مشكلة بالكود التالي ؟ 
حتى لو تلاحظ كما بالصورة ان القوائم عندي لم تقلب الى اليمين 

كود :
Private Sub Text2_Change()
On Error Resume Next

If rs.State = 1 Then rs.Close


sql = "Select *From tblTransactions WHERE [TransacCode] Like '%" & Trim(Text2.Text) & _
"%' or [TransacCont] LIKE  '%" & Trim(Text2.Text) & _
"%'"


rs.Open sql, cn

If rs.RecordCount <= 0 Then
MsgBox "No Invoice found!", vbCritical + vbOKOnly, ""

Else
   
   ListView1.ListItems.clear
 
 

       
                  txtCust.Text = ""
                  txtCont.Text = ""
                  TxtDate.Text = ""
                  Text3.Text = ""
                  Text1.Text = ""
                  Text6.Text = ""
                  Text5.Text = ""
                  Text4.Text = ""
                 
   With rs
       Do While .EOF = False
         
               Set li = ListView1.ListItems.Add(, , rs!ID_item)
               li.SubItems(1) = rs!ItemDesc
               li.SubItems(2) = rs!ItemQTY
               li.SubItems(3) = Format(rs!UnitPrice, "###,###,###.00")
               li.SubItems(4) = Format(rs!Amount, "###,###,###.00")
               li.SubItems(5) = rs!TransacCust
               li.SubItems(6) = rs!TransacCont
               li.SubItems(7) = rs!DatePurchased
               li.SubItems(8) = rs!TransacCode
               li.SubItems(9) = rs!ItemProdCode
               li.SubItems(10) = rs!ItemCategory
               rs.MoveNext
               
               
   
               
       Loop
   End With
 End If
       Text3.Text = ListView1.SelectedItem.Text
       Text6.Text = ListView1.SelectedItem.SubItems(2)
       Text4.Text = ListView1.SelectedItem.SubItems(3)
       Text5.Text = ListView1.SelectedItem.SubItems(4)
       txtCust.Text = ListView1.SelectedItem.SubItems(5)
       txtCont.Text = ListView1.SelectedItem.SubItems(6)
       TxtDate.Text = ListView1.SelectedItem.SubItems(7)
       Text1.Text = ListView1.SelectedItem.SubItems(8)
       lblitems.Caption = ListView1.ListItems.Count


End Sub
كود :
Private Sub Form_Load()
Me.ListView1.View = lvwReport
 

ListView1.ColumnHeaders.Add , , "ID_item", 0, 0
ListView1.ColumnHeaders.Add , , "Product Description", 2700, 0
ListView1.ColumnHeaders.Add , , "QTY", 800, 2
ListView1.ColumnHeaders.Add , , "Unit Price", 1700, 1
ListView1.ColumnHeaders.Add , , "Amount", 1700, 1
ListView1.ColumnHeaders.Add , , "Customer Name", 0, 1
ListView1.ColumnHeaders.Add , , "Contact Number", 0, 1
ListView1.ColumnHeaders.Add , , "Date", 0, 1
ListView1.ColumnHeaders.Add , , "TransCode", 0, 1
ListView1.ColumnHeaders.Add , , "ItemProdCode", 800, 1
ListView1.ColumnHeaders.Add , , "ItemCategory", 1500, 1

SetRtL ListView1
End Sub

مع العلم ان رسالة الخطا تظهر عند السطر :
كود :
Set li = ListView1.ListItems.Add(, , rs!ID_item)


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


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة: Sajad , Sajad
#8
لا يوجد رد !!! 

على كل حال قمت بازالة جملة Option Explicit أصبح يعمل ولكن المشكلة التي ظهرت انني عندما اقوم بازاحة الاعمدة يمين او يسار فان محتوى الجدول يتحرك عكس ذلك 

أعتقد ان هذا الشيئ ليش عملي وقد يعمل على  افشال التصميم وربما الى افشال عمل البرنامج 

هل يوجد حل افضل من هذا ان وجد وان لم يكن يوجد خير وبركة 

على كل حال بارك الله بجهودكم وشكراً على المساعدة 
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم