PDA

View Full Version : سوال: سؤال در مورد HScrollBar



Hassan2500
شنبه 10 تیر 1391, 23:36 عصر
سلام

من میخوام کناره های HScrollBar سریعتر عمل کنند یعنی این قسمتهاش <> در ضمن وقتی فایل exe رو هم باز میکنی HScrollBar علامت داخلش که بصورت یک خط است چشمک میزند بعدش چکار کنم رنگش و هم شکلش رو هم تغییر بدم.

89001

setroyd
شنبه 10 تیر 1391, 23:55 عصر
برای سریعتر کردن smallchange رو تغییر بده , برای اینکه چشمک نزنه فوکوس رو وردار , برای اینکه شکل رو عوض کنی باید از کامپوتتت استفاده کنی .

Hassan2500
یک شنبه 11 تیر 1391, 00:07 صبح
جناب setroyd چطوری فوکوس رو بردارم و بعدش چه کامپوننتی بگیرم

محسن واژدی
یک شنبه 11 تیر 1391, 01:05 صبح
سلام علیکم

برای غیرفعال کردن فوکوس میتوانید خاصیت TabStop شی اسکرول بار را برابر False قرار بدهید، همینطور برای تغییر ظاهر هم میتوانید از Manifest استفاه کنید و هم از کامپوننت هایی مانند CodeJock
هر دو مورد را در پست های زیر میتوانید بررسی کنید:

Code-Jock Suite Controls + Manifest
http://barnamenevis.org/showthread.php?296016-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D9%87%D8%A7%DB%8C-codejock&p=1299055&viewfull=1#post1299055

Manifest
http://barnamenevis.org/showthread.php?278981


موفق باشید

Hassan2500
یک شنبه 11 تیر 1391, 01:23 صبح
مشکلم برطرف شد فقط یه مشکلی دیگه است اینه که وقتی روی HscrollBar کلیک میکنم یعنی مابین <> که در این حالت HscrollBar سیاه میشه میخوام اینطوری نشه در ضمن وقتی برنامه رو exe میکنم HscrollBar رنگش از بین میره و یه شکل زشت به خودش میگیره میخوام شکلش هنگام exe کردن همان حالتی باشه که وقتی ابتدا روی فرم میزاریمش بعدش میخوام وقتی قبل خط مابین HscrollBar کلیک کردم خط بجهت اون سمتی که دارم کلیک میکنم پیش بره

محسن واژدی
یک شنبه 11 تیر 1391, 04:43 صبح
وقتی روی HscrollBar کلیک میکنم یعنی مابین <> که در این حالت HscrollBar سیاه میشه میخوام اینطوری نشه در ضمن وقتی برنامه رو exe میکنم HscrollBar رنگش از بین میره و یه شکل زشت به خودش میگیره
اگر manifest و ... استفاده کرده باشیم استیل برنامه همگام با ویندوز میشه، و اگر بخواهیم دوباره از استیل کلاسیک استفاده کنیم طبیعتا بایستی موارد یاد شده را غیرفعال کنیم


وقتی قبل خط مابین HscrollBar کلیک کردم خط بجهت اون سمتی که دارم کلیک میکنم پیش بره
در صورت امکان بیشتر توضیح دهید

موفق باشید

Hassan2500
یک شنبه 11 تیر 1391, 11:33 صبح
جناب واژدی آیا اگه از manifest استفاده کنیم بعد برنامه رو exe کنیم و بعد فقط فایل exe رو تو هر کامپیوتری اجرا کنیم آیا فایل exe تنظیماتش از بین نمیره یا فقط در کامپیوتری که این manifest رو توش قرار دادیم شکل برنامه همگام با همون ویندوز میشه

کلاً منظورم اینه شکل HScrollBar اینطوری نباشه هنگام exe کردن رنگش آبی باشه

89019
در ضمن منظورم اینه که اگه در این قسمتهای سفید HScrollBar کلیک کنیم این خط وسط به سمت نشانگر موس حرکت کند

89018

محسن واژدی
یک شنبه 11 تیر 1391, 13:35 عصر
جناب واژدی آیا اگه از manifest استفاده کنیم بعد برنامه رو exe کنیم و بعد فقط فایل exe رو تو هر کامپیوتری اجرا کنیم آیا فایل exe تنظیماتش از بین نمیره یا فقط در کامپیوتری که این manifest رو توش قرار دادیم شکل برنامه همگام با همون ویندوز میشه


بایستی فایل manifest را در کنار exe برنامه کپی کنیم، (برای راحتی کار میتوانیم manifest را به ریسورس برنامه اضافه کنیم، برای افزودن آن ابزار Visual Basic 6 Resource Editor را از Add-In فعال و اجرا کنید سپس xp resource.res موجود در ضمیمه زیر را به پروژه اضافه و همراه آن کامپایل کنید در اینصورت لزومی به وجود manifest در کنار برنامه نیست)




در ضمن منظورم اینه که اگه در این قسمتهای سفید HScrollBar کلیک کنیم این خط وسط به سمت نشانگر موس حرکت کند


برای اینکار باید مقدار LargChange شی HScrollBar رااضافه کنیم، به عنوان مثال HScrollBar.LargChang=100


موفق باشید

Hassan2500
یک شنبه 11 تیر 1391, 19:44 عصر
ابزار Visual Basic 6 Resource Editor در Add-In > Add-In Manager وجود نداره چطوری اضافه اش کنم و بعد منظورتون این xp resource.res رو داخل پوشه ای که سورس برنامه قرار داره قرارش بدم بعد برنامه رو exe کنم

بعد در ضمن چرا روی <> کلیک میکنم خط داخل HScrollBar به اول و آخرش میپرد و در وسط خودش حرکت نمیکند

محسن واژدی
یک شنبه 11 تیر 1391, 20:49 عصر
ابزار Visual Basic 6 Resource Editor در Add-In > Add-In Manager وجود نداره چطوری اضافه اش کنم
با دستوری مشابه زیر:

regsvr32 "C:\Program Files\Microsoft Visual Studio\VB98\Wizards\RESEDIT.DLL"
ابزار را ریجستر و به برنامه اضافه میکنیم



منظورتون این xp resource.res رو داخل پوشه ای که سورس برنامه قرار داره قرارش بدم بعد برنامه رو exe کنم

خیر، بعد از اینکه فایل را ریجستر و ابزار را باز کردیم، از درون Resource-Editor فایل xp-resource.res را به resource-editor اضافه و ذخیره میکنیم، پس از آن برنامه را کامپایل میکنیم (البته به همراه توابع InitCommonControls که قبلا عرض شد)

موفق باشید

Hassan2500
یک شنبه 11 تیر 1391, 21:01 عصر
جناب واژدی من تازه برنامه نویسی یاد گرفتم با این دستور 1
regsvr32 "C:\Program Files\Microsoft Visual Studio\VB98\Wizards\RESEDIT.DLL"


چگونه ابزار رو رجیستر کنم طریقه انجامش چگونه است

بعد در ضمن چرا روی <> کلیک میکنم خط داخل HScrollBar به اول و آخرش میپرد و در وسط خودش حرکت نمیکند

محسن واژدی
یک شنبه 11 تیر 1391, 21:40 عصر
چگونه ابزار رو رجیستر کنم طریقه انجامش چگونه است
اگه برنامه وی بی در درایو c نصب است کافیست دستور بالا را در Run ویندوز از نوار استارت کپی و اجرا کنید،


بعد در ضمن چرا روی <> کلیک میکنم خط داخل HScrollBar به اول و آخرش میپرد و در وسط خودش حرکت نمیکند
مقدار SmallChange را کنترل کنید

موفق باشید

Hassan2500
یک شنبه 11 تیر 1391, 21:47 عصر
جناب واژدی من از Mini vb6 استفاده میکنم و وقتی تو Run میخوام اجراش کنم ارور میده

محسن واژدی
یک شنبه 11 تیر 1391, 22:07 عصر
جناب واژدی من از Mini vb6 استفاده میکنم و وقتی تو Run میخوام اجراش کنم ارور میده

این کنترل در نسخه mini-vb6 وجود ندارد، نسخه کامل ویژوال بیسیک نصب کنید همه مواردی که عرض شده دارد

موفق باشید

setroyd
دوشنبه 12 تیر 1391, 01:45 صبح
شما با این کد میتونی کاری کنی چشمک نزنه


Private Declare Function HideCaret Lib "user32" (ByVal hwnd As Long) As Long

Private Sub HScroll1_Change()
HScroll1.SetFocus
HideCaret HScroll1.hwnd
End Sub

Private Sub HScroll1_Scroll()
HScroll1.SetFocus
HideCaret HScroll1.hwnd
End Sub

Hassan2500
دوشنبه 12 تیر 1391, 19:09 عصر
سلام

وقتیکه RightToLeft رو برای HScrollBar قرار میدیم True بعدش روی قسمتهای <> مربوط به HScrollBar کلیک میکنیم خط وسط اش به اول و آخرش میپرد و LargeChange =1 چکار کنم نپره و خط وسط اش عادی حرکت کنه

Hassan2500
دوشنبه 12 تیر 1391, 21:28 عصر
کسی نیست پاسخ بده

محسن واژدی
دوشنبه 12 تیر 1391, 21:49 عصر
سلام
مقدار SmallChange و Max را کنترل کنید، البته به این صورت که می فرمائید میتواند از Max باشد، در صورت امکان سورس را ضمیمه کنید

موفق باشید

Hassan2500
دوشنبه 12 تیر 1391, 22:35 عصر
فقط فایل exe اینطوری میشه

89102

setroyd
سه شنبه 13 تیر 1391, 01:42 صبح
مشکل از استفاده از manifest هست من بدون اون چک کردم دست بود ولی شما میتونی کد نویسیت رو عوض کنی که با manifest هم بشه .

Hassan2500
سه شنبه 13 تیر 1391, 11:18 صبح
ولی اگه manifest رو حذف کنیم شکلش زشت میشود و اینطوری میشه

89122

در صورتی که میخوام اینطوری بشه

89123

کلاً از manifest و چیزای دیگه نیست چون وقتی RightToLeft رو براش True میکنیم و رنگش هم آبی میشه این حالت براش اتفاق می افته از دوستان کسی میدونه راهی رو که اینطوری نشه

محسن واژدی
سه شنبه 13 تیر 1391, 12:10 عصر
ولی اگه manifest رو حذف کنیم شکلش زشت میشود و اینطوری میشه

89122

در صورتی که میخوام اینطوری بشه

89123

کلاً از manifest و چیزای دیگه نیست چون وقتی RightToLeft رو براش True میکنیم و رنگش هم آبی میشه این حالت براش اتفاق می افته از دوستان کسی میدونه راهی رو که اینطوری نشه

حتما باید HScroll1=RTL باشه؟ اگر نه، میتوانید RTL را False و کد زیر را جایگزین کدهای فرم کنید، انشاءا... درسسته
Private Sub Form_Initialize()
Call InitCommonControls
End Sub

Private Sub Form_Load()
HScroll1.Max = (Picture1.Width - Me.ScaleWidth)
HScroll1_Change
End Sub

Private Sub HScroll1_Scroll()
HScroll1_Change
End Sub

Private Sub HScroll1_Change()
'Picture1.Left = -3720 + HScroll1.Value
Picture1.Left = -HScroll1.Value
End Sub


موفق باشید

محسن واژدی
سه شنبه 13 تیر 1391, 17:29 عصر
منظور از این حرفتون چیه (حتما باید HScroll1=RTL باشه؟ اگر نه، میتوانید RTL را False کنید) چگونه HScroll1=RTL کنم RTL چیه چگونه False کنم
سلام علیکم
RTL=Right-To-Left،

کلاً از manifest و چیزای دیگه نیست چون وقتی RightToLeft رو براش True میکنیم ... این حالت براش اتفاق می افته
منظور بنده از جمله پست قبل یعنی اینکه "حتما باید HScroll1 راست به چپ (RTL=RightToLeft) باشد؟ (یعنی HScroll1.RightToLeft=True) اگر لزومی به RightToLeft بودن اسکرول بار نیست خاصیت RightToLeft اسکرول بار را با مراجعه به فرم Properties بر روی False تنظیم کنید و سپس کدی که در پست قبلی ارائه شد را جایگزین کدهای فعلی فرم برنامه تان یعنی Form1 کنید"، که پس از کمپایل (تبدیل برنامه به exe) و جایگزین شدن پوسته ویندوز بجای پوسته کلاسیک (پوسته فعلی برنامه در محیط طراحی) پس از اجرا، مشکلی در عملکرد اسکرول بار پیش نمی آید

موفق باشید

Hassan2500
سه شنبه 13 تیر 1391, 20:05 عصر
جناب واژدی دارم برنامه ای مینویسم که باید HScroll1=RTL اگه زحمت بکشید و برام HScroll1 رو درست کنید ممنون میشم.

setroyd
شنبه 17 تیر 1391, 00:57 صبح
چرا از کامپوننت استفاده نمیکنی !!! راحت تره و این دردسر هارو هم نداره !