PDA

View Full Version : فرمهای فارسی



Ahmad-VB
شنبه 19 دی 1383, 20:15 عصر
سلام
از اینکه موضوع تاپیک یه مقدار مناسب نیست ببخشید راستش هر چی فکر کردم موضوع مناسبی به ذهنم نرسید اما سوال :

چطوری میشه کاری کرد که دکمه های Close , Min , Max فرم درسمت چپ قرار بگیره نه سمت راست .

Behrouz_Rad
یک شنبه 20 دی 1383, 07:56 صبح
سلام.
این کار امکان پذیر نیست.
فرم های Desktop Applications از GUI‌ویندوز استفاده می کنند و در تعاریف استاندارد GUI محل قرارگیری دکمه های کنترلی در سمت راست فرم تعیین شده.
تنها راه ایجاد یک فرم سفارشی است.
موفق باشید.
:wise1:

Ahmad-VB
یک شنبه 20 دی 1383, 20:44 عصر
اما آقا بهروز من یه همچین فرمهایی رو هم در برنامه های فارسی اون قدیما دیده بودم و هم همین الان روی سیستمم یه برنامه دارم که البته عربیه و یه روز که داشتم تو گوگل سرچ می کردم پیداش کردم ولی به هر حال همونیه که من می خوام :

Behrouz_Rad
یک شنبه 20 دی 1383, 21:27 عصر
این فرم سفارشیه مطمئن باشید.
در MSDN مایکروسافت این نکته ذکر شده.
:wise1:

mohsengrisly
یک شنبه 20 دی 1383, 23:49 عصر
ای بابا
اخه ساختن این فرم همچین سخت هم نیست
من چند تایی دارم البته برای نرم افزار خودم طراحی کرده ام
اگه خواستی یه نمونه بدم تازه خیلی هم خوشکله .عروسک
فکر می کنم به جای اینکه دنبال این راه باشید خودتان بسازید بهتره .البته اگر این راه را هم در وی بی پیدا کردید به ما هم بگویید .چون که کار نشد نداره .هیچ وقت
دنبال یه راه بهتر هم هستم جواب داد حتما می گم

Behrouz_Rad
دوشنبه 21 دی 1383, 09:28 صبح
i'm ready for result

Ahmad-VB
دوشنبه 21 دی 1383, 12:16 عصر
این فرم سفارشیه مطمئن باشید.
در MSDN مایکروسافت این نکته ذکر شده.
:wise1:

آقا بهروز منظور از اینکه می گید سفارشیه رو نمی فهمم . من دو تا تصویر از دو تا استایل ویندوز ایکس پی رو براتون گذاشتم تا دیگه این فکر رو نکید اگر بقول شما سفارشی بود با عوض شدن استایل ویندوز نیاید استایل این هم عوض میشد .

:wink:

Ahmad-VB
دوشنبه 21 دی 1383, 12:19 عصر
ای بابا
اخه ساختن این فرم همچین سخت هم نیست
من چند تایی دارم البته برای نرم افزار خودم طراحی کرده ام
اگه خواستی یه نمونه بدم تازه خیلی هم خوشکله .عروسک
فکر می کنم به جای اینکه دنبال این راه باشید خودتان بسازید بهتره .البته اگر این راه را هم در وی بی پیدا کردید به ما هم بگویید .چون که کار نشد نداره .هیچ وقت
دنبال یه راه بهتر هم هستم جواب داد حتما می گم

آقا محسن بدم نمیاد نمونه ای از فرماتون رو ببینم .

حامد مصافی
دوشنبه 21 دی 1383, 13:00 عصر
سلام

جناب Ahmad-VB میشه یه لینکی چیزی از این نرم افزار بذاری تا یه نگاه بهش بندازیم؟

Behrouz_Rad
دوشنبه 21 دی 1383, 13:33 عصر
هر چند که مطمئنم MSDN اشتباه نمی کنه ولی بد نیست که این برنامه رو ببینیم.
:wise1:

R_BABAZADEH
دوشنبه 21 دی 1383, 21:37 عصر
من هم با mohsengrisly موافقم بهترین راه برای فرمهای خاص ساختن انهاست
من هم تمام فرمهامو خودم می سازم تازه اونهارو خیلی هم 3d و با نوارهای متحرک وبا افکتهای مختلف می سازم

R_BABAZADEH
دوشنبه 21 دی 1383, 22:02 عصر
یه نمونه برات دارم که تاحالا روشش رو به هیچ کس نگفته بودم چون خیلی باحال بود :mrgreen:
ولی چون برو بچه های این سایت هم خیلی باحالند براتون می فرستم :mrgreen:

حامد مصافی
دوشنبه 21 دی 1383, 23:37 عصر
ببخشید آقای بابازاده

اینکه نه دکمه های کنترلی داره ، نه Title bar ، نه Control box

:)

Ahmad-VB
سه شنبه 22 دی 1383, 12:43 عصر
دوستان گرامی من فکر می کنم تصاویر گویای همچیز باشه ولی خوب اگه اصرار دارید اینم لینک البته حدود 3 مگ حجمشه :
http://www.arabteam2000-forum.com/index.php?s=fdc499e4181b15ca0b32dea88c9d8daf&showtopic=46834&st=0&#entry227006

آقا بابا زاده مسپله اصلا خوش قبافه بودن فرم نیست . این کار برای برنامه های ساده حسابداری به درد میخوره که به شکل و قبافه خیلی نیاز نداره فقط اگه به این شکل باشه حرفه ای تر دیده میشه .

binyaz2003
سه شنبه 22 دی 1383, 14:07 عصر
*-- Define extended Windows styles
#DEFINE GWL_EXSTYLE -20
#DEFINE WS_EX_LAYOUTRTL 0x400000
#DEFINE WS_EX_NOINHERITLAYOUT 0x100000
*-- Define the Get window long API
DECLARE INTEGER GetWindowLong IN user32;
INTEGER hWnd, INTEGER nIndex
*-- Define the Set window long API
DECLARE INTEGER SetWindowLong IN user32;
INTEGER hWnd, INTEGER nIndex, INTEGER dwNewLong
*-- Get this form's current style.
OldLong = GetWindowLong(ThisForm.HWnd, GWL_EXSTYLE)
*-- Set the window extended style RTL non-inheritable.
SetWindowLong(ThisForm.HWnd,GWL_EXSTYLE,;
BITOR(OldLong,WS_EX_LAYOUTRTL,WS_EX_NOINHERITLAYOU T))

خودتون زحمت تبدیلشو بکشین :sunglass:

حامد مصافی
سه شنبه 22 دی 1383, 20:03 عصر
سلام
خیلی ممنون جنابbinyaz2003
واقعاً عالیه

دوستان اینم تبدیل


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

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

Ahmad-VB
چهارشنبه 23 دی 1383, 23:24 عصر
جناب بی نیاز واقعا ممنون . خیلی عالی بود . آقا بهروز باز بگو MSDN گفته نمیشه :wink:

binyaz2003
پنج شنبه 24 دی 1383, 22:52 عصر
:oops:

Ahmad-VB
جمعه 25 دی 1383, 09:51 صبح
آقا ببخشید من یه مشکل دارم وقتی از این کد استفاده می کنم و فرم رو در حال اجرا تغییر سایز می دم یه مقدار اوضاع بهم می ریزه و کوشه ای از تصویر زیر فرم می افته روی فرم . شما هم این مشکل رو دارید ؟ :گیج:

H_r_m
جمعه 25 دی 1383, 11:10 صبح
آقا ببخشید من یه مشکل دارم وقتی از این کد استفاده می کنم و فرم رو در حال اجرا تغییر سایز می دم یه مقدار اوضاع بهم می ریزه و کوشه ای از تصویر زیر فرم می افته روی فرم . شما هم این مشکل رو دارید ؟ :گیج:
سلام
اگه منظوزتون سمت راست فرمه برا منم همینطوره :(

R_BABAZADEH
جمعه 25 دی 1383, 11:24 صبح
دوستان در روشی که من استفاده می کنم که در بالا یه نمونه براتون قرار دادم تمام شکل فرم رو خودتون درست می کنید و نیازی به کدهای بلند نیست فقط یک کد api برای تغییر جا نیاز دارید که در این مثال اورده شده
تمامی کارها بر روی فرم به سلیقه شما بر می گردد و یکی دو تا بر نامه گرافیک :موفق:

M-Gheibi
شنبه 26 دی 1383, 09:18 صبح
آقای binyaz2003 و آقای BlackDal ممنون
ولی من هم همین مشکل رو دارم:

آقا ببخشید من یه مشکل دارم وقتی از این کد استفاده می کنم و فرم رو در حال اجرا تغییر سایز می دم یه مقدار اوضاع بهم می ریزه و کوشه ای از تصویر زیر فرم می افته روی فرم . شما هم این مشکل رو دارید ؟

vbprogramer
شنبه 26 دی 1383, 10:06 صبح
از تمام دوستانی زحمت کشیده اند ممنون
مخصوصا جناب بینیاز و blackdal

:flower: :thnx:

حامد مصافی
شنبه 26 دی 1383, 15:50 عصر
سلام دوستان
خب منم این مشکل رو دارم :mad: :mad: :mad: :mad:
تازه فقط این نیست من با خیلی از توابع API دیگه که روی استیل فرم تاثیر میذاره مشکل دارم
مثلاً اگه شما فرمتون رو Transparrt کنین اونوقت سرعت اجرای برنامه پایین می آد

نمی دونم دوستان دیگه با سایر زیان ها هم همین مشکل رو دارن یا فقط مال ما وی بی کار هاست :گیج:

binyaz2003
دوشنبه 28 دی 1383, 13:47 عصر
سلام
ما تو vfp این مشکل رو نداریم

Ahmad-VB
دوشنبه 28 دی 1383, 14:00 عصر
یک راه حل به ذهنم رسید اگر یک PictureBox رو طوری روی فرم قرار بدیم که تمام اون رو بگیره میشه از شر این مشکل خلاص شد بعدشم رویداد Resize فرم رو طوری تنظنم می کنیم که PictureBox همیشه به اندازه فرم باشه :wink: