نمایش نتایج 1 تا 18 از 18

نام تاپیک: API کارها-آقای‌عریضی-OpenDialogBox

  1. #1
    کاربر تازه وارد آواتار MBeigy
    تاریخ عضویت
    فروردین 1382
    پست
    79

    API کارها-آقای‌عریضی-OpenDialogBox

    سلام به همه دوستان
    من می‌خواستم Open Dialig Box رو به یه طریقی بصورت فارسی داشته باشم. حالا یا ocx براش بنویسم یا با استفاده از API هایی مثل SetWindowsHookEx و غیره .
    در نوشتن ocx نمی‌دونم چطور میشه امکان نشون دادن تمام فایلها و پوشه ها رو با آیکون های خودشون به پنجره اضافه کرد. :roll:
    برای استفاده از API هم از روش آقای عریضی در فارسی کردن MessageBox ها استفاده کردم
    http://www.saeidazish.com/FMsgBox.zip
    ولی در مورد DataType تعریف شده برای Open Dialog Box ایراد می‌گیره. :?
    لطفا اگه چیزی می‌دونید کمک کنید. خیلی فوریه. :cry:

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    سلام
    حقیقتش من منظورتو از Data type رو دقیقا متوجه نشدم. اگه ممکنه دقیقتر بگید از کدوم DataType ایراد میگیره.
    اگه منظورتون از فارسی کردن رو هم واضح تر بگید ممنون میشم. :oops:

  3. #3
    کاربر تازه وارد آواتار MBeigy
    تاریخ عضویت
    فروردین 1382
    پست
    79
    سلام
    من می‌خواهم در برنامه خودم وقتی Open رو از منو انتخاب کردی و پنجره Open باز شد Lable ها و Command Button های روی پنجره فارسی باشند. به همین خاطر هم گفتم که می‌خواستم ocx بنویسم که نشد. البته نگید که از Drivelistbox,Dirlistbox,Filelistbox استفاده کنم چون این یه پروژه درسیه که باید دقیقا مثل Open در Office 2000 باشه. :cry:
    اما فکر کنم همین روش استفاده از Hook راحت تر باشه. (هر چند که خودم هنوز نفهمیدم به طور دقیق چکار می‌کنه :? :roll: )

  4. #4
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    برای استفاده از Hook در CommonDialog ها روشهای مخصوصی وجود داره و لزومی نداره که شما از روش MessageBox استفاده کنید.
    همچنین برای تغییر متن روی Label ها و Button ها هم پیغامهای مخصوص وجود داره.
    در همین زمینه من قبلا یک ocx در همین سایت گذاشته ام که میتونید از اون استفاده کنید. (عنوان اون تقریبا این هست: یک Ocx برای تعریف OpenFile و SaveFile دلخواه).

  5. #5
    کاربر تازه وارد آواتار MBeigy
    تاریخ عضویت
    فروردین 1382
    پست
    79
    با عرض سلام
    من اون برنامه رو پیدا کردم اما هیچکدام از لینک های مقاله ها و برنامه ها جواب نمیده. شما میتونی و محبت کنی اون رو به این آدرس بفرستی.
    md_beigy@yahoo.com
    ممنون از لطفت. :wink:

  6. #6
    کاربر تازه وارد آواتار MBeigy
    تاریخ عضویت
    فروردین 1382
    پست
    79
    سلام
    آقا ممنون از اینکه لطف کردید و اون رو فرستادید (خیلی جالب بود) اما همونطور که اشاره کرده بودم این یه پروژه درسیه و لذا من باید خودم بفهمم که چکار کردم. منظورم اینه که نمیتونم یه ocx بدون سورس تو برنامه داشته باشم. البته اون چیزی که شما درست کردید خیلی بیشتر از اونچه که من در نظرم بود انجام میده ولی تا خودم ننویسم فایده‌ای نداره. :roll:
    میشه لطف کنی و در مورد روش کاری که من میخوام انجام بدم و توابعی که باید استفاده کنم یه توضیحی بدی.یا قطعه کدی بفرستی.(داره دیر میشه :wink: )
    باز هم ممنون

  7. #7
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    یک قطعه کد براتون فرستادم.
    البته این کد فقط جگونگی کار رو نشون میده و امکانات اون فقط در حد همون تغییر متن روی کنترلهاست.
    موفق باشید.

  8. #8
    کاربر تازه وارد آواتار MBeigy
    تاریخ عضویت
    فروردین 1382
    پست
    79
    سلام
    آقای عریضی بسیار لطف کردید. فقط یه مشکلی هست.(البته مشکل زیاده ولی این یکی فعلا مهمه :wink: ) چرا این دیالوگ ها در هر ویندوزی شکل استاندارد ویندوز 98 هستن؟ منظورم اینه که آیا نوع comdlg32.dll که در ویندوزهای مختلف هست باعث تغییر common dialog ها نمیشه؟ یا اینکه باید برای تغیییر اون constnt دیگه ای رو انتخاب کرد؟ لطفا راهنمایی کنید.
    باز هم خیلی خیلی ممنون.

  9. #9
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    :P :P

  10. #10
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    راهشو پیدا کردم. این Structure جدید رو جایگزین قبلی کن
    Public Type OPENFILENAME
    nStructSize As Long
    hWndOwner As Long
    hInstance As Long
    sFilter As String
    sCustomFilter As String
    nMaxCustFilter As Long
    nFilterIndex As Long
    sFile As String
    nMaxFile As Long
    sFileTitle As String
    nMaxTitle As Long
    sInitialDir As String
    sDialogTitle As String
    flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    sDefFileExt As String
    nCustData As Long
    fnHook As Long
    sTemplateName As String

    'new Win2000 / WinXP members
    pvReserved As Long
    dwReserved As Long
    FlagsEx As Long
    End Type

  11. #11
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    این کد هم یه اشکال داره. تو 98 کار نمیکنه. برای حل اون به این لینک یه سر بزن:
    http://www.mvps.org/vbnet/index.html...dlghookadv.htm

  12. #12
    کاربر تازه وارد آواتار MBeigy
    تاریخ عضویت
    فروردین 1382
    پست
    79
    سلام
    عباس جان من این صفحه و چند لینک مرتبط را یکبار مطالعه کردم اما برای حل مشکل در 98 چیز جدیدی ندیدم. حقیقتش نتونستم دقیق بخونم چون یه مقدار گرفتار بودم. اما اون چیزی که گفته شده بود رو شما در برنامه ای که لطف کردی و فرستادی لحاظ کرده بودی تنها کاری که من کردم این بود که مقدار OSInfo.dwMajorVersion رو بجای 5 برای 4 چک کردم که برای WIN Me هم عمل کنه. و اتفاقا درست هم بود.
    یعنی اگه با 2 چک کنم Open Dialog برای 98 هم بصورت 2000 باز میشه؟ (چون من 98 ندارم نتونستم امتحان کنم) .
    یه مطلب دیگه اینکه حالا ID های اون دکمه های کناری سمت چپ مثل My Computer و MyDocument (که فکر کنم از نوع toolbar باشند) رو از کجا گیر بیارم تا فارسیشون کنم؟
    باز هم از زحمتی که کشیدی بینهایت ممنون. 8) 8) 8)

  13. #13
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    اون عدد 5 ورژن ویندوزه. ورژن ویندوز از 2000 به بعد از 5 به بالاست.
    سایز Structure مربوط به OpenFile در ویندوز 2000 به بعد به اندازه 12 بایت بزرگتر شده. بنابراین اگر برنامه در ویندوز پایین تر از 2000 اجرا بشه باید nStructSize رو 12 تا از سایزش کم کنی.
    بنابراین اگر شما 5 را به 4 تغییر بدی دیگه تو ویندوز 98 کار نمیکنه.
    احتمالا ورژن Me هم 5 به بالاست که برنامه توش کار میکنه.
    در مورد ایکونهای Toolbar هم باید بگم که بعید میدونم به این سادگیها بشه متنش رو تغییر داد.
    (غیر عملی نیست. ولی دردسر داره). ضمن اینکه نام این آیکونها همون اسمیه که تو ویندوز دارن و فکر نمیکنم تغییر اونا ضرورتی داشته باشه.

  14. #14
    کاربر تازه وارد آواتار MBeigy
    تاریخ عضویت
    فروردین 1382
    پست
    79
    سلام عباس جان
    من هم متوجه شدم که اون ورژن ویندوزه. اتفاقا وقتی که 5 هست در Me درست کار نمی کنه اما وقتی که 4 میشه درست عمل میکنه. یعنی ورژن Me باید بین 4 و 5 باشه و به اون 12 بایت اضافی هم نیاز داره. :wink: مطلب دیگه اینکه یعنی شما هم تایید می کنی که اون دکمه های سمت چپ در Open Dialog های 2000 مثل History و ... از نوع toolbar هستن و بنابراین من دیگه بیخیالشون بشم؟ :cry:
    ممنون از محبتت.

  15. #15
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    خب اگه ورژن Me بین 4 و 5 هست باید حواست باشه که با 98 قاطی نشه. بنابراین در تابع Version باید dwMinorVersion را هم کنترل کنی. جدول ورژنها رو اگر نمیدونی از MSDN میشه پیدا کرد.
    در مورد Toolbar هم بله. قطعا Toolbar هست.

  16. #16
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    این هم جدول ورژنها:

  17. #17
    کاربر تازه وارد آواتار MBeigy
    تاریخ عضویت
    فروردین 1382
    پست
    79
    آقا دست شما درد نکنه . بسیار ممنون. :P
    یه سوال دیگه هم با نام ”بدست آوردن مسیر دایرکتوری ویندوز “ مینویسم. اگه ممکنه یه نگاهی به اون هم بینداز. :oops:

  18. #18
    کاربر دائمی آواتار شاپرک
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    ناکجاآباد
    پست
    1,157
    پروزه انجام شد؟
    ما هم میتونیم ازش استفاده کنیم ؟
    ممنون

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •