PDA

View Full Version : تعیین فونت InputBox



alizanganeh
سه شنبه 26 اردیبهشت 1391, 00:48 صبح
سلام
چطوری میتونم به inputbox فونت دلخوان رو بدم؟
و چطوری میشه نوشته هاشو راستچین کنم؟
فونت فرم رو تغییر دادم نشد
ممنون

arenaw
سه شنبه 26 اردیبهشت 1391, 01:37 صبح
فنت اینپوت باکس و مسیج باکس فکر کنم برمیگرده به تم ویندوز
این واسه راستچین کردن آبجکت هایی که hwnd داشتع باشن:

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

Private Sub Form_Load()
SetWindowLong Text1.hWnd, -20, GetWindowLong(Me.hWnd, -20) Or &H400000
End Sub

alizanganeh
سه شنبه 26 اردیبهشت 1391, 02:25 صبح
ممنون
این کدی که دادی چطوریه؟
من میخوام متن داخل inputbox راستچین بشه

محسن واژدی
سه شنبه 26 اردیبهشت 1391, 09:25 صبح
سلام
چطوری میتونم به inputbox فونت دلخوان رو بدم؟
و چطوری میشه نوشته هاشو راستچین کنم؟
فونت فرم رو تغییر دادم نشد
ممنون
سلام علیکم
input-box سفارشی موجود در پست زیر را بررسی کنید:
انتخاب فونت inputbox
http://barnamenevis.org/showthread.php?334061-%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8-%D9%81%D9%88%D9%86%D8%AA-inputbox&p=1473741&viewfull=1#post1473741


ممنون
این کدی که دادی چطوریه؟
من میخوام متن داخل inputbox راستچین بشه
برای inputbox میتوانید از لینک بالا استفاده کنید، این کد اشیاء را RTL میکند منتها مشکلاتی نیز وجود دارد از جمله عدم پشتیبانی کامل از زبان فارسی، البته اشیائی مانند textbox خاصیت rtl را دارند و برای فعال کردن این خاصیت باید فایل VBAME.DLL را در system32 خود داشته باشید، و اگه از win7 استفاده میکنید علاوه بر این فایل باید از Hotfix استفاده کنید که میتوانید در تاپیک زیر بیابید:
مشکل با راست به چپ در ویندوز 7 (http://barnamenevis.org/showthread.php?174912-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-%D8%B1%D8%A7%D8%B3%D8%AA-%D8%A8%D9%87-%DA%86%D9%BE-%D8%AF%D8%B1-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-7)

برای RTL-LTR کردن اشیائی که این خاصیت را ندارند میتوانید از نمونه پست زیر استفاده کنید:
http://barnamenevis.org/showthread.php?291478-Right-To-Left-%DA%A9%D8%B1%D8%AF%D9%86-ListBox&p=1283962&viewfull=1#post1283962

موفق باشید

ASedJavad
سه شنبه 26 اردیبهشت 1391, 13:54 عصر
و چطوری میشه نوشته هاشو راستچین کنم؟




سلام
میخوای نوشته هات راستچین بشه یا رایت تو لفت؟
مواردی که دوستان گفتن، اینپوت باکست رو رایت تو لفت میکنه که به نظرم راه بهتری هم هست مثل استفاده از کاراکتر ChrW(8207) در انتهای متنت
ولی اگه میخوای متنت راست چین بشه فکر کنم بهتر اینه که خودت یه inputBox طراحی کنی.

alizanganeh
سه شنبه 26 اردیبهشت 1391, 18:56 عصر
سلام
میخوای نوشته هات راستچین بشه یا رایت تو لفت؟
مواردی که دوستان گفتن، اینپوت باکست رو رایت تو لفت میکنه که به نظرم راه بهتری هم هست مثل استفاده از کاراکتر ChrW(8207) در انتهای متنت
ولی اگه میخوای متنت راست چین بشه فکر کنم بهتر اینه که خودت یه inputBox طراحی کنی.


نه اینطوری بدرد نمیخره
چون شاید من 100تا اینپوت باکس بخوام
همه رو که نمیشه طراحی کنم
اون کارهایی هم که گفتن یکم سخت و وقت گیره
راه دیگه ای نداره؟
حد اقل فونت متن داخلش رو عوض کنم خوبه
ممنون

محسن واژدی
سه شنبه 26 اردیبهشت 1391, 19:19 عصر
نه اینطوری بدرد نمیخره
چون شاید من 100تا اینپوت باکس بخوام
همه رو که نمیشه طراحی کنم
اون کارهایی هم که گفتن یکم سخت و وقت گیره
راه دیگه ای نداره؟
حد اقل فونت متن داخلش رو عوض کنم خوبه
ممنون
input-box شبیه سازی شده پست قبل را بررسی کردین؟!!!
امکان تغیر فونت اشیاء نیز در آن وجود داشت

alizanganeh
سه شنبه 26 اردیبهشت 1391, 19:28 عصر
input-box شبیه سازی شده پست قبل را بررسی کردین؟!!!
امکان تغیر فونت اشیاء نیز در آن وجود داشت



نه اونم خوب نیست
چون توی اونم اومده یک فرم طراحی کرده به شکل اینپوت باکس و توی یک فرم دیگه ، با کلیک روی یک دکمه ، اون فرم رو فراخوانی کرده که اینطوری بدرد نمیخوره
چون اگر من 50 تا اینپوتباکس در فرم های مختلف نیاز داشته باشم خیلی خیلی بد و سخت میشه و کنترل برنامه از دست میره و سنگین میشه

راه دیگه اگر هست بگید لطفا

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

میبخشید، منظورتان را متوجه نشدم، چگونه برنامه سنگین میشود؟؟!!!! :متفکر: چرا که فقط بایستی همین یک فرم+مادول کد همراهش را به برنامه اضافه کنید نه برای هر 50 فرم برنامه تان، این فرم را مجزا کپی کنید،
همانطور که عرض کردم برای استفاده از این نمونه کافیست فرم طراحی شده+مادول همراهش را به برنامه تان اضافه کنید (هیچ تغییری لازم نیست در کد برنامه بدین)، و در ادامه هم مانند دفعات قبل که InputBox وی بی را فراخوانی میکردید این کد را فراخوانی کنید، به عبارت بهتر اگر پس از افزودن این سورس به پروژه مجددا دستور InputBox را بنویسیم فرم سفارشی ما بجای فرم InputBox وی بی گشوده خواهد شد:


Private Sub Command1_Click()
MsgBox InputBox("Please enter your name:", "UName", "NAME")
End Sub


موفق باشید

alizanganeh
سه شنبه 26 اردیبهشت 1391, 20:00 عصر
میبخشید، منظورتان را متوجه نشدم، چگونه برنامه سنگین میشود؟؟!!!! :متفکر: چرا که فقط بایستی همین یک فرم+مادول کد همراهش را به برنامه اضافه کنید نه برای هر 50 فرم برنامه تان، این فرم را مجزا کپی کنید،
همانطور که عرض کردم برای استفاده از این نمونه کافیست فرم طراحی شده+مادول همراهش را به برنامه تان اضافه کنید (هیچ تغییری لازم نیست در کد برنامه بدین)، و در ادامه هم مانند دفعات قبل که InputBox وی بی را فراخوانی میکردید این کد را فراخوانی کنید، به عبارت بهتر اگر پس از افزودن این سورس به پروژه مجددا دستور InputBox را بنویسیم فرم سفارشی ما بجای فرم InputBox وی بی گشوده خواهد شد:


Private Sub Command1_Click()
MsgBox InputBox("Please enter your name:", "UName", "NAME")
End Sub


موفق باشید




درسته
خوبه
ولی یک مشکل
اینکه این مثل msgbox عمل میکنه و چیزی که من دیدم این بود که مقداری رو نمیشه ازش گرفت
یعنی نمیشه مساوی یک متغیری قرارش داد
اینو چه کنم ؟
ممنون

محسن واژدی
سه شنبه 26 اردیبهشت 1391, 20:05 عصر
این مثل msgbox عمل میکنه و چیزی که من دیدم این بود که مقداری رو نمیشه ازش گرفت
یعنی نمیشه مساوی یک متغیری قرارش داد
حق با شماست، مشکل کوچکی در تابع وجود داشت برطرف شد، دوباره ضمیمه پست را دانلود کنید

موفق باشید

alizanganeh
سه شنبه 26 اردیبهشت 1391, 22:07 عصر
حق با شماست، مشکل کوچکی در تابع وجود داشت برطرف شد، دوباره ضمیمه پست را دانلود کنید

موفق باشید



ممنون
مشکل فونتش درست شد و میشه برابر یک متغیر یا یک textbox قرار داد
ولی مشکل اینه که همچنان مقدار خروجی inputbox رو بجای اینکه بریزه توی textbox که برابرش قرار گرفته ، با یک msgbox نمایش میده
چه کنیم؟

alizanganeh
چهارشنبه 27 اردیبهشت 1391, 09:02 صبح
کسی نبود جواب مارو بده؟
محسن جان نیستی ؟

محسن واژدی
چهارشنبه 27 اردیبهشت 1391, 10:01 صبح
مشکل اینه که همچنان مقدار خروجی inputbox رو بجای اینکه بریزه توی textbox که برابرش قرار گرفته ، با یک msgbox نمایش میده

بررسی کردم مشکلی نبود، (البته میبخشید توضیحات زیر مبتدیانه است):
نمونه دستوری که برای استفاده از تابع در پست های قبلی قرار دادم خود در یک MsgBox قرار داشت که صرفا برای بیان عملکرد تابع بود، بطور معمول برای نمایش دادن خروجی در Text-Box نام textbox را جایگزین MsgBox میکنیم:

Private Sub Command1_Click()
Text1 = InputBox("Please enter your name:", "UName", "NAME", "Tahoma")
End Sub


موفق باشید

alizanganeh
چهارشنبه 27 اردیبهشت 1391, 10:24 صبح
بررسی کردم مشکلی نبود، (البته میبخشید توضیحات زیر مبتدیانه است):
نمونه دستوری که برای استفاده از تابع در پست های قبلی قرار دادم خود در یک MsgBox قرار داشت که صرفا برای بیان عملکرد تابع بود، بطور معمول برای نمایش دادن خروجی در Text-Box نام textbox را جایگزین MsgBox میکنیم:

Private Sub Command1_Click()
Text1 = InputBox("Please enter your name:", "UName", "NAME", "Tahoma")
End Sub


موفق باشید




ااااااا ببخشید
اصلا حواسم نبود و کل اون خط رو مساوی تکس بکس قرار میدادم
ممنون