PDA

View Full Version : treeview ی فارسی



ILOVEVB
یک شنبه 21 فروردین 1384, 11:57 صبح
سلام
کنترل treeview ذاتاً خاصیت right to left ندارد آیا کنترلی داریم که کار treeview را بکند و خاصیت right to left را نیز داشته باشد .
ممنون :flower:

بابک زواری
یک شنبه 21 فروردین 1384, 12:45 عصر
بله از همان tree خود وی بی استفاده کن و کد زیر رو هم استفاده کن


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 Form_Load()
SetWindowLong TreeView.hwnd, GWL_EXSTYLE, GetWindowLong(TreeView.hwnd, GWL_EXSTYLE) Or WS_EX_LAYOUTRTL


Dim nodX As Node
Set nodX = TreeView.Nodes.Add(, , "R", "Root")
nodX.Expanded = True
Set nodX = TreeView.Nodes.Add(, , "P", "Parent")
nodX.Expanded = True
Set nodX = TreeView.Nodes.Add("R", tvwChild, , "Child 1")
Set nodX = TreeView.Nodes.Add("R", tvwChild, , "Child 2")
Set nodX = TreeView.Nodes.Add("R", tvwChild, , "Child 3")
Set nodX = TreeView.Nodes.Add("P", tvwChild, , "Child 4")
Set nodX = TreeView.Nodes.Add("P", tvwChild, , "Child 5")
Set nodX = TreeView.Nodes.Add("P", tvwChild, , "Child 6")

End Sub

M-Gheibi
یک شنبه 21 فروردین 1384, 14:49 عصر
:flower: :)

R_BABAZADEH
دوشنبه 22 فروردین 1384, 11:08 صبح
ممنون
جالب بود

(سیدشریفی)
سه شنبه 23 فروردین 1384, 08:46 صبح
آقا بابک خیلی آلی بود .
:تشویق:
:flower:

Hamedm
سه شنبه 23 فروردین 1384, 13:56 عصر
عالی بود :flower:

niloufar
چهارشنبه 24 فروردین 1384, 14:26 عصر
سلام
دمت گرم. خیلی حال داد.

ضمنا می تونید از VSFlexGrid با Set کردن مشخصه OutlineBar از آن هم استفاده کنید که خودش RightToLeft هم داره.

Payam Moradi
جمعه 26 فروردین 1384, 15:24 عصر
سلام
نمیشه برای ListView هم چنین کاری کرد؟ چون وقتی که از این کنترل به صورت Report استفاده میکنیم تیر ستونها بر عکس نمایش داده میشه.
برای این هم راه حلی هست؟

اولی که خیلی جالب بود.

تشکر :flower:

بابک زواری
شنبه 27 فروردین 1384, 00:13 صبح
خوب برای ListView هم دوستان با APi بالا یک تست بکنن جواب بدن

Hamedm
شنبه 27 فروردین 1384, 07:58 صبح
سلام


خوب برای ListView هم دوستان با APi بالا یک تست بکنن جواب بدن
من امتحان کردم و جواب داد.

در پناه حق موفق باشید و پرتوان

بابک زواری
شنبه 27 فروردین 1384, 08:51 صبح
ممنون آقا حامد لطف کردی

حامد مصافی
شنبه 27 فروردین 1384, 11:09 صبح
من که الان به کامپیوتر دسترسی ندارم ولی تا جایی که یادمه این کد با tree view مشکل داشت

بابک زواری
شنبه 27 فروردین 1384, 12:36 عصر
شما هم تست کنید ببینیم که آیا آقا حامد اشتباه تست کرده یا
شما با یک موضوع دیگه اشتباه گرفتید ؟

Payam Moradi
پنج شنبه 01 اردیبهشت 1384, 17:00 عصر
سلام

نه !!

از کنترل ListView به صورت Report استفاده کنید. نمیشه. ؟؟

اگه وقت داشتید بگید.
ممنون.

حامد مصافی
پنج شنبه 01 اردیبهشت 1384, 20:20 عصر
من که الان به کامپیوتر دسترسی ندارم ولی تا جایی که یادمه این کد با tree view مشکل داشت



سلام
ببخشید، منظور من ListView بود !! ( در حالت Report )
من اگه به خونه برگشتم حتماً این موضوع رو بررسی خواهم کرد

بابک زواری
پنج شنبه 01 اردیبهشت 1384, 20:42 عصر
آقای BlackDal شما از 27 فروردین تا 1 اردیبهشت به خونه برنگشتید ؟ :wink:

niloufar
شنبه 03 اردیبهشت 1384, 12:47 عصر
آقای BlackDal شما از 27 فروردین تا 1 اردیبهشت به خونه برنگشتید ؟
سلام
مثل اینکه این آقا حامد مسافرت هستند. من هم از 24 فروردین منتظر یه پاسخ از ایشان هستم. :oops:

Hamedm
شنبه 03 اردیبهشت 1384, 12:52 عصر
سلام


آقای BlackDal شما از 27 فروردین تا 1 اردیبهشت به خونه برنگشتید ؟
سلام
مثل اینکه این آقا حامد مسافرت هستند. من هم از 24 فروردین منتظر یه پاسخ از ایشان هستم. :oops:
من این وسط چیکارم؟ بنظرم منظور ایشون آقای BlackDal است.

در پناه حق موفق باشید و پرتوان

niloufar
شنبه 03 اردیبهشت 1384, 13:16 عصر
سلام

من این وسط چیکارم؟ بنظرم منظور ایشون آقای BlackDal است.
آقا حامد محمدی، البته و صد البته شما هم آقا حامد هستید ولی باز البته و صد البته که تنها یک آقا حامد در زمین وجود ندارد :embr: من آقا حامد مصافی را گفتم نه آقا حامد محمدی :oops:

Hamedm
شنبه 03 اردیبهشت 1384, 14:04 عصر
سلام

سلام

من این وسط چیکارم؟ بنظرم منظور ایشون آقای BlackDal است.
آقا حامد محمدی، البته و صد البته شما هم آقا حامد هستید ولی باز البته و صد البته که تنها یک آقا حامد در زمین وجود ندارد :embr: من آقا حامد مصافی را گفتم نه آقا حامد محمدی :oops:
سرکار خانوم نیلوفر، به من حق بدید چون در این سایت همه آقای مصافی را به نام BlackDal میشناسند نه حامد مصافی.
آقای زواری و دیگر مسئولین بخش، ببخشید که دارم پست اضافی میفرستم.

در پناه حق موفق باشید و پرتوان

حامد مصافی
شنبه 03 اردیبهشت 1384, 22:36 عصر
سلام
ببخشید دوستان من مسافرت بودم
مشکل List View هم حل شد!

در واقع Header کنترل List View یک پنجره فرزند نسبت به خود کنترل است ( بوسیله ++spy می توانید این موضوع را بررسی کنید )
برای حل این مشکل من هندل Header را هم به دست آوردم

ابتدا این کد را در یک ماژول کپی کنید


Rem Hamed Masafi
Rem Ineed: No Module!

Const GWL_EXSTYLE = -20
Const WS_EX_LAYOUTRTL = &H400000
Const WS_EX_NOINHERITLAYOUT = &H100000

Private Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Declare Function EnumChildWindows Lib "User32.dll" ( _
ByVal hWndParent As Long, _
ByVal lpEnumFunc As Long, _
ByVal lParam As Long) As Long

Private Sub RTLForm(hWnd As Long)
Dim OldLong As Long
OldLong = GetWindowLong(hWnd, GWL_EXSTYLE)
SetWindowLong hWnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL Or WS_EX_NOINHERITLAYOUT
End Sub

Private Function EnumChildProc(ByVal hWnd As Long, ByVal lParam As Long) As Long
RTLForm hWnd
EnumChildProc = True
End Function

Public Sub RTLWindow(hWnd As Long, Optional GetAllChilds As Boolean = False)
RTLForm hWnd
If GetAllChilds Then EnumChildWindows hWnd, AddressOf EnumChildProc, ByVal 0&
End Sub



حالا بوسیله فراخوانی تابع RTLWindow از این ماژول به این شکل به نتیجه دلخواه می رسید

مثال :


RTLWindow ListView1.hWnd, True

بابک زواری
یک شنبه 04 اردیبهشت 1384, 15:57 عصر
ممنون BlackDal عزیز :wink: :) :D :flower: