PDA

View Full Version : سوال: وارد کردن حروف تکستها در سطرهای جدول MSFlexGrid



Hassan2500
پنج شنبه 15 تیر 1391, 23:46 عصر
سلام

1- در جدول MSFlexGrid سه سطر و سه ستون گذاشتم حالا میخوام اولین خانه های هر سطر را به ترتیب عبارات (اول-دوم-سوم) بزارم و بعد حروف تکستهای1 تا 3 را با زدن دکمه کامند به ترتیب وارد هر سطر از خانه دوم به بعد در این جدول کنم و سطرهای جدول بر اساس حروف تکستها خانه اضافه کند و حروف وارد هر خانه شود.

مثال

89268

محسن واژدی
شنبه 17 تیر 1391, 11:21 صبح
سلام علیکم
روال زیر را در ماژول فرم کپی کنید:


Private Sub AddItemsToFGrid(ByVal sString$, Optional RowIndex% = 0)
On Error Resume Next
Dim i%, j%
sString$ = Replace(sString$, " ", "")
With MSFlexGrid1

.RightToLeft = True
.ScrollTrack = True

.FixedRows = 0
.HighLight = 0

If .Rows < RowIndex% Then .Rows = RowIndex%
If .Cols - 1 < Len(sString$) Then .Cols = Len(sString$) + 1

For i = 0 To .Rows
.TextMatrix(i, 0) = "قسمت" & i + 1
Next

For i = 1 To .Cols
If i <= Len(sString$) Then
.TextMatrix(RowIndex% - 1, i) = Mid(sString$, i, 1)
Else
.TextMatrix(RowIndex% - 1, i) = Empty
End If
Next

'clean cells
On Error GoTo 0
For i = .Cols - 1 To 1 Step -1
For j = 0 To .Rows - 2
If .TextMatrix(j, i) > Empty Then Exit For
Next 'j
If .TextMatrix(j, i) = Empty Then .Cols = .Cols - 1
Next

If .Cols > 1 Then
.ColWidth(0) = 1000
Else
.Cols = 0
End If

.ColAlignment(-1) = flexAlignCenterCenter
.ColWidth(-1) = 700

End With
End Sub

Private Sub mnuCopy_Click()
With MSFlexGrid1
Clipboard.Clear
Clipboard.SetText .TextMatrix(.Row, .Col)
MsgBox "Saved sel to clipboard: " & .TextMatrix(.Row, .Col), vbInformation
End With
End Sub

Private Sub MSFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbKeyRButton Then PopupMenu mnuC
End Sub

برای مثال، اگر بخواهیم رشته زیر را در ردیف اول قرار بدهیم، میشود:

Private Sub Command1_Click()
AddItemsToFGrid "ABCD", 1
End Subیا رشته زیر را در ردیف پنجم:


Private Sub Command1_Click()
AddItemsToFGrid "EFGHIJK", 5
End Sub
موفق باشید

Hassan2500
شنبه 17 تیر 1391, 20:46 عصر
کدی که نوشتید عالیه فقط چند تا سؤال راجع بهش داشتم

1- چطوری تمام حروف رو دقیق در وسط هر خونه جدول قرار بدم گزینه alignment برای MSFlexGrid وجود نداره

2- آخرین خانه ها در هر سطر جدول خط عمودی ندارند چطوری این خط رو اضافه کنم

3- چطوری اندازه خونهای هر سطر رو بزرگ یا کوچک کنم

4- بجای AddItemsToFGrid "ABCD", 1 اینطوری نوشتم AddItemsToFGrid Text1, 1 ولی یه مشکلیه مثلاً در تکست1 حرف رو پاک میکنیم یا اضافه یا کم میکنیم حروف نوشته های قبلی تکست1 در MSFlexGrid باقی میمونه و پاک نمیشن

5- من میخوام در اولین خونه های هر سطر یه عبارت ثابت بنویسم مثلاً در خانه اول سطر1 نوشته بشه (قسمت1) بعدش در خونه دوم طبق مثال خودتون حرف A در خونه دوم حرف B در خونه سوم حرف C و در خونه چهارم حرف D یا بجای ABCD حروف تکست1 باشن

6- چطوری گزینه های راست کلیک رو به MSFlexGrid اضافه کنم یا اگه نمیشه یه کاری کنید که حروف MSFlexGrid لااقل کپی شن

محسن واژدی
شنبه 17 تیر 1391, 23:12 عصر
1- چطوری حروف رو دقیق در وسط هر خونه جدول قرار بدم گزینه alignment برای MSFlexGrid وجود ندارهچرا دارد، دوباره کد ویرایش شده پست 4 را بررسی کنید


2- آخرین خانه ها در هر سطر جدول خط عمودی ندارند چطوری این خط رو اضافه کنمدر صورت امکان بیشتر توضیح بدین


3- چطوری اندازه خونهای هر سطر رو بزرگ یا کوچک کنمتوسط ColWidth که دوباره در پست4 اضافه شده


4- من اومدم بجای AddItemsToFGrid "ABCD", 1 اینطوری نوشتم AddItemsToFGrid Text1, 1 ولی یه مشکلیه مثلاً در تکست1 حرف رو پاک میکنیم یا اضافه یا کم میکنیم حروف نوشته های قبلی تکست1 در MSFlexGrid باقی میمونه و پاک نمیشنبازم، پست4 :لبخندساده:


5- من میخوام در اولین خونه های هر سطر یه عبارت ثابت بنویسم مثلاً در خانه اول سطر1 نوشته بشه (قسمت1) بعدش در خونه دوم طبق مثال خودتون حرف A در خونه دوم حرف B در خونه سوم حرف C و در خونه چهارم حرف D یا بجای ABCD حروف تکست1 باشندوباره4 :لبخندساده::لبخندساده: (پست4)


6- چطوری گزینه های راست کلیک رو به MSFlexGrid اضافه کنم یا اگه نمیشه یه کاری کنید که حروف MSFlexGrid لااقل کپی شن پست4 :لبخندساده::لبخندساده::لبخن ساده:
البته قبلش یک منو با نام mc و یک زیر منو در آن با نام mnuCopy بر روی فرم ایجاد کنید

موفق باشید

Hassan2500
یک شنبه 18 تیر 1391, 00:37 صبح
سؤال2: مثلاً عکس پست1 رو نگاه کنید سلولهای آخر جدول MSFlexGrid ناقص اند و خط عمودی آخرشون نیست چطور اضافه اش کنم

سؤال4: حروف پاک میشن ولی خونه های سطرها با اضافه و کم کردن حروف تکست پاک نمیشن این رو اگه میشه هم درست کنید

سؤال6: به Menu Editor فرم چه چیزایی رو اضافه کنم تا کپی کردن انجام بشود

محسن واژدی
یک شنبه 18 تیر 1391, 14:32 عصر
سؤال2: مثلاً عکس پست1 رو نگاه کنید سلولهای آخر جدول MSFlexGrid ناقص اند و خط عمودی آخرشون نیست چطور اضافه اش کنم

سلول های انتهایی خط عمودی (لبه سیاه رنگ) ندارند



سؤال4: حروف پاک میشن ولی خونه های سطرها با اضافه و کم کردن حروف تکست پاک نمیشن این رو اگه میشه هم درست کنید

کد ویرایش شده جایگزین پست 2 شد



سؤال6: به Menu Editor فرم چه چیزائی رو اضافه کنم تا کپی کردن انجام بشه

باعرض پوزش کد FGrid را نگذاشته بودم


موفق باشید

Hassan2500
یک شنبه 18 تیر 1391, 20:45 عصر
سلام

1- دقیقا چه چیزایی توی Menu Editor فرم بنویسم تا کپی کردن انجام بشه الان هیچ چیزی رو کپی نمیکنه راستش من زیاد این قسمتش رو بلد نیستم بعدش میخوام وقتی راست کلیک کردم منوی راست کلیک ظاهر بشه نه چپ کلیک

2- این کد رو چطوری تغییر بدم که از ColWidth(0) = 600 به بعد همه 350 بشن و از تکرار جلوگیری بشه یعنی از ColWidth(1) تا آخر


Private Sub Form_Load()
MSFlexGrid1.ColWidth(0) = 600
MSFlexGrid1.ColWidth(1) = 350
MSFlexGrid1.ColWidth(2) = 350
.
.
.
.
End Sub


3- چرا این کد کار نمیکنه کد درستش چی میشه


Private Sub Form_Load()
MSFlexGrid1.TextMatrix(0, 0) = "ابجد" & vbNewLine & "هوزح"
End Sub


5- فایلی که قبلا به من دادید تا اسکین برنامه شبیه ویندوزی که داریم بشه یعنی فایل xp resource.res برای اسکرول MSFlexGrid عمل نمیکنه چکار کنم اسکرولش شبیه اسکرول ویندوزی که داریم بشه الان هر کاری میکنم نمیشه آیا در Properties چیری رو باید تغییر بدم

محسن واژدی
یک شنبه 18 تیر 1391, 22:23 عصر
سلام

1- دقیقا چه چیزایی توی Menu Editor فرم بنویسم تا کپی کردن انجام بشه الان هیچ چیزی رو کپی نمیکنه راستش من زیاد این قسمتش رو بلد نیستم بعدش میخوام وقتی راست کلیک کردم منوی راست کلیک ظاهر بشه نه چپ کلیک

2- این کد رو چطوری تغییر بدم که از ColWidth(0) = 600 به بعد همه 350 بشن و از تکرار جلوگیری بشه یعنی از ColWidth(1) تا آخر


Private Sub Form_Load()
MSFlexGrid1.ColWidth(0) = 600
MSFlexGrid1.ColWidth(1) = 350
MSFlexGrid1.ColWidth(2) = 350
.
.
.
.
End Sub


3- چرا این کد کار نمیکنه کد درستش چی میشه


Private Sub Form_Load()
MSFlexGrid1.TextMatrix(0, 0) = "ابجد" & vbNewLine & "هوزح"
End Sub


سلام علیکم
نمونه زیر را بررسی کنید




5- فایلی که قبلا به من دادید تا اسکین برنامه شبیه ویندوزی که داریم بشه یعنی فایل xp resource.res برای اسکرول MSFlexGrid عمل نمیکنه چکار کنم اسکرولش شبیه اسکرول ویندوزی که داریم بشه الان هر کاری میکنم نمیشه آیا در Properties چیری رو باید تغییر بدم

بله، manifest بر روی msflex-grid تاثیری ندارد

موفق باشید

Hassan2500
دوشنبه 19 تیر 1391, 19:58 عصر
من ميخوام کاري کنيد که اگه کپي کردم کل سلولها و حروف داخل تمام سلولها کپي شوند نه فقط يک حرف بعدش اين سؤالم رو هم جواب نداديد نحوه درست نوشتن کد زير چطوريه چون در اين حالت کار نميکنه


1 Private Sub Form_Load()
MSFlexGrid1.TextMatrix(0, 0) = "ابجد" & vbNewLine & "هوزح"
End Sub


آقاي واژدي قبلا يه برنامه جفر بهتون دادم در اون چطوريه که اسکرول MSFlexGrid شکل و رنگش همگام با ويندوز است آيا کار خاصي کرده

محسن واژدی
دوشنبه 19 تیر 1391, 22:57 عصر
من ميخوام کاري کنيد که اگه کپي کردم کل سلولها و حروف داخل تمام سلولها کپي شوند نه فقط يک حرف بسلام
کدهای پیچیده ای نمیخواهند، سعی کنید میتوانید بنویسید
نمونه ویرایش شده زیر را بررسی کنید


عدش اين سؤالم رو هم جواب نداديد نحوه درست نوشتن کد زير چطوريه چون در اين حالت کار نميکنهنمیتوان بیشتر از یک خط در هر ردیف msFG نوشت


قبلا يه برنامه جفر بهتون دادم در اون چطوريه که اسکرول MSFlexGrid شکل و رنگش همگام با ويندوز است آيا کار خاصي کرده از کامپوننت vsFlexGrid Pro استفاده کنید

freshteh_0341
یک شنبه 05 آذر 1391, 08:54 صبح
sسلام وخسته نباشید خدمت شما بخاطر راهنمایی هاتون.من میخوام داخلmsflexgridعکس بگذارم خاصیت pictureوpicturecellدارد و من بهش |آدرس عکس میدم وهمه نوع فرمت عکسی امتحان میکنم اما بهم خطا میده وکار نمیکنه میشه کمکم کنید.:لبخندساده: