PDA

View Full Version : سوال: تغییر طول یک ردیف درVsflaxGrid



isaac23
چهارشنبه 24 تیر 1394, 13:27 عصر
سلام
چطور میشه طول یه ردیف رو در کامپونت VsFalaxGridتغییر داد من فونت جدول رو بزرگتر کردم الان نصف نوشته ها پیدا نیست.
میخوام بعد از اینکه به اندازه دلخواه تغییر دادم ثبت بشه و دفعه ی بعد که فرم رو باز میکنم به همون تظیماتی که ذخیره کردم باشه.

roo.row
چهارشنبه 24 تیر 1394, 19:40 عصر
با سلام

اولا که کنترل فلکس گرید محدوده اندازه خونه هاش بر اساس
فونت MS sans serif شماره 10 است و اگر بخواهید تغییر دهید از خاصیت زیر استفاده کنید

در ضمن اون flexgrid هست نه falaxgrid
و برای ذخیره کردنش می تونین از انواع روش ها مانند رجیستری فایل ini و... استفاده کنید


VSFlexGrid1.ColWidth
VSFlexGrid1.RowHeight

خط اول تغییر طول
خط دوم تغییر ارتفاع

vbhamed
چهارشنبه 24 تیر 1394, 19:40 عصر
سلام
با خاصیت RowHeight میشه ارتفاع هر سطر رو تنظیم کرد ولی ذخیره کردنش دیگه از روشهای مختلف مثل دیتابیس و فایل ini و ... می‌تونه انجام بشه

isaac23
جمعه 26 تیر 1394, 18:53 عصر
چطوری میشه این کد نویسی ها رو تو یه خط نوشت نخوام واسه هر ستون یه کد باشه ممنون میشم جواب بدید .؟

واسه ذخیره و بازیابی اون سه ستون ها به اندازه اولش برگرده ..


واسه ذخیره سازی اندازه ستون ها

SaveSetting App.Title, "Gird", "1", VSFlexGrid1.ColWidth(1)
SaveSetting App.Title, "Gird", "2", VSFlexGrid1.ColWidth(2)
SaveSetting App.Title, "Gird", "3", VSFlexGrid1.ColWidth(3)



واسه بازیابی تنظیمات

.ColWidth(1) = GetSetting(App.Title, "Gird", "1")
.ColWidth(2) = GetSetting(App.Title, "Gird", "2")
.ColWidth(3) = GetSetting(App.Title, "Gird", "3")

roo.row
جمعه 26 تیر 1394, 23:51 عصر
با سلام

چرا با حلقه for ننوشتید ممکن بخواهید اطلاعات بیشتری رو ذخیره ویا از رجیستری بازیاب یکنید
اونجوری تویه خط هم میشه .

در ضمن اگه تعداد نامعلوم شد از ubound , lbound استفاده کنید(در لیست ویژوال بیسیک موجود نیست)

for i = 1 to 3
SaveSetting App.Title, "Gird", i, VSFlexGrid1.ColWidth(i)
next i



با تشکر

isaac23
یک شنبه 28 تیر 1394, 08:08 صبح
من هر کاری میکنم واسه ردیف ها نمیشه اطلاعات بازیابی کنم اطلاعات ذخیره میشه ولی هر کاری میکنم نمی دونم چطوریه باید نوشت

.RowHeight(.Rows) = GetSetting(App.Title, "SGrid", "14")

SaveSetting App.Title, "SGrid", "14", .RowHeight(1)

roo.row
یک شنبه 28 تیر 1394, 12:35 عصر
با سلام
منظورتون رو دقیق تر بیان کنید

با تشکر

vbhamed
یک شنبه 28 تیر 1394, 17:24 عصر
سلام
بخش بالایی برای ذخیره و بخش پایینی برای بازیابی ارتفاع هر سطر هستش
With VSFlexGrid1
For i = 0 To .rows - 1
SaveSetting App.Title, "SGird", "rh" & CStr(i), .RowHeight(i)
Next
End With

With VSFlexGrid1
For i = 0 To .rows - 1
.RowHeight(i) = GetSetting(App.Title, "SGrid", "rh" & CStr(i))
Next
End With
البته دو نکته رو مد نظر داشته باشید
1 - این کد ارتفاع هر سطر رو جداگانه ذخیره و بازیابی می‌کنه یعنی ارتفاع سطرهاتون می‌تونه با هم فرق داشته باشه ولی اگر همه سطرها یک ارتفاع دارن فقط ارتفاع یک سطر رو ذخیره کنید و موقع بازیابی به همه سطرها اعمال کنید

2 - اگر تعداد سطرها خیلی زیاد باشه بهتره ارتفاع سطرها رو با هم در یک رشته بنویسید (توسط کاما از هم جدا کنید) و کل رشته رو یکجا ذخیره کنید و موقع بازیابی هم با تابع Split از هم جداشون کنید

isaac23
یک شنبه 28 تیر 1394, 17:53 عصر
قربون دستت آقا حامد من دنبال همین چیزی که شما گفتید میگشتم اره اطلاعات من زیاده نزدیک به 1200 ردیف میرسه و احتمال بیشتر شدنش هست من این چیزی که گفتید رو می خوام و اصلا سر در نمیارم اگه نمونه کد رو بدید ممنون میشم .. لازمش دارم دستت درد نکنه ...
این چیزی رو که گفتید رو میگم/.

- اگر تعداد سطرها خیلی زیاد باشه بهتره ارتفاع سطرها رو با هم در یک رشته بنویسید (توسط کاما از هم جدا کنید) و کل رشته رو یکجا ذخیره کنید و موقع بازیابی هم با تابع Split از هم جداشون کنید

vbhamed
پنج شنبه 01 مرداد 1394, 09:07 صبح
سلام
قسمت بالا برای ذخیره و قسمت پایین برای بازیابی
Dim s$, i%

With VSFlexGrid1
For i = 0 To .Rows - 1
s = s & .RowHeight(i) & ","
Next
End With
SaveSetting App.Title, "SGird", "rh", s

'---------------------------------------------------------

s = GetSetting(App.Title, "SGird", "rh")
Dim rh$()
rh = Split(s, ",")
With VSFlexGrid1
For i = 0 To .Rows - 1
.RowHeight(i) = rh(i)
Next
End With

nazanin_90
سه شنبه 03 شهریور 1394, 12:15 عصر
سلام استاد !
من در محیط اکسس این کدها را تست کردم که در App.Title ایراد می گیره .لطفاً راهنمائی بفرمائید مفهوم App.Title چیه و با توجه به آشنائی شما به محیط اکسس معادل آن در محیط اکسس چی میتونه باشه ؟
ممنون

محسن واژدی
پنج شنبه 05 شهریور 1394, 21:28 عصر
سلام
در App.Title که آقای فرجام فر گفتن بصورت استاندارد نام برنامه را به عنوان کلید ذخیره تنظیمات در نظر میگیره، اختیارا میتوانید هر عنوان دیگه ای را بجای App.Title قرار بدهید به عنوان مثال:
Dim s$, i%

With VSFlexGrid1
For i = 0 To .Rows - 1
s = s & .RowHeight(i) & ","
Next
End With
SaveSetting "MyProject", "SGird", "rh", s

'---------------------------------------------------------

s = GetSetting("MyProject", "SGird", "rh")
Dim rh$()
rh = Split(s, ",")
With VSFlexGrid1
For i = 0 To .Rows - 1
.RowHeight(i) = rh(i)
Next
End With

موفق باشید