تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 4 1234 آخرآخر
نمايش نتايج 1 به 10 از 35

نام تاپيک: ويژوال بيسيك و سبك نمايش كنترل هاي ويندوز اكس پي

  1. #1
    پروفشنال majid_kntu's Avatar
    تاريخ عضويت
    Jun 2006
    پست ها
    781

    1 ويژوال بيسيك و سبك نمايش كنترل هاي ويندوز اكس پي

    از اولين باري كه با VB6 آشنا شدم با شكل ظاهري كنترل هاي آن مشكل داشتم تا اينكه بعد ها با زير و رو كردن MSDN راه حلي براي رفع اين مشكل پيدا كردم: "استفاده از اعلانيه وابستگي ها"
    تا اينكه چند تا از بچه هاي دانشگاه ازم پرسيدن چرا VB6 مثل VB.NET نگارش 2005 خود به خود از نگارش جديد كنترل ها استفاده نمي كنه . بعد از صحبت و تبادل نظر به اين فكر افتادم اين مقاله رو بنويسم تا علاقه مندان وي بي بخونن .
    به عكس هاي زير نگاه كنين:



    يكي تصوير يه برنامه با اعلانيه است و اونيكي تصوير همون برنامه بدون اعلانيه.
    اگه دوست داريد برنامه هاتون باسبك اكس پي يا هر Theme ديگه اي كه در اكس پي قابل نصبه اجرا بشه مراحل زير رو انجام بدين
    1-Start up Object پروژتون رو به Sub Main تغيير بديد.
    2- يه مدول به برنامتون اضافه كنين و كد زير رو توش وارد كنيد:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در كد بالا فرض براين است كه شي آغازين قبلي شما Form1بوده است.
    3- پروژه خود را كامپايل كنيد.
    4- مثال ضميمه را از لينك زير دريافت كنيد و فايل Project1.exe.manifest را از آن كپي كرده در كنار برنامه كامپايل شده خود قرار دهيد و سپس نام آنرا تغيير دهيد و به جاي Project1 نام برنامه خود را تايپ كنيد.

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اين تغير نام خيلي مهم است چراكه اكس پي هنگام اجراي يك برنامه در پوشه آن بدنبال اعلانيه آن خواهد گشت تا بدين ترتيب وابستگي هاي برنامه را به همراه نگارش آنها شناسايي كند .اين پروسه در راستاي پياده سازي پروژه اسمبلي هاي پهلو به پهلو انجام مي گيرد كه بحث در باره آن در اين مقوله نمي گنجد.

    البته اين رو هم بگم نتيجه كار رو تو محيط IDE وي بي نمي تونيد ببينيد كه البته اين هم راه داره.كافيه يه اعلانيه براي vb6.exe تو پوشه محل نصب قرار بديد البته اين به معني عدم نياز برنامه هاي نوشته شده توسط اون به اعلانيه نيست.

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

    این کار ممکن است عواقب ناخواسته ای درپی داشته باشد مثلا برای یک دکمه رادیویی که در یک قاب قرار گرفته باشد(به مثال پیوست شده رجوع کنید)
    سی پلاس پلاس دارای امکاناتی است که به کمک آنها می توان اعلانیه را در فایل اجرایی قرار داد تا به این ترتیب هر کجا که فایل اجرایی قرار گرفت اعلانیه به همراه آن باشد که این مزایای خاص خود را دارد.
    بعد از کمی تحقیق و تفحص متوجه شدم در وی بی هم می توان اعلانیه را مثل زبان سی پلاس پلاس به صورت ماخذ به فایل اجرایی پیوست کردبدلیل پیچیده بودن مراحل کار روش اونو شرح نمیدم .

    براي اينكه اعلانيه برنامه هميشه همراه برنامه تون باشه بهتره اونو به شكل resource به برنامه پيوست كنيد.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by majid_kntu; 29-02-2008 at 12:12.

  2. #2
    پروفشنال navid_mansour's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    جایی که عاشقاش زنده ان....
    پست ها
    614

    پيش فرض

    چرا برای microsoft comon contorls 6 جواب نمیده این کد؟

  3. #3
    پروفشنال majid_kntu's Avatar
    تاريخ عضويت
    Jun 2006
    پست ها
    781

    1 فرق بين comctl32.ocx , mscomctl.ocx

    من حدس ميزنم منظور شما كنترل هايي مثل TabStrip يا نگارش هاي پيشرفته تر كنترل هايي مثل Progressbar باشد.همانطور كه در كد مثال نوشته ام تابع API ي مربوطه از Comctl32 فراخواني ميشود و براي تعريف وابستگي به Microsoft windows common controls 6 sp4 (كه احيانا منظور شماست) بايد كل قطعه كد مربوط به Intialize كنترل ها را تغيير داد.در مثال ضميمه ما فقط به اكس پي ميگوييم كه از نگارش 6 فايل comctl32.ocx استفاده كند و درباره mscomctl.ocx چيزي اعلان نكرده ايم.

  4. #4
    پروفشنال navid_mansour's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    جایی که عاشقاش زنده ان....
    پست ها
    614

    پيش فرض

    میشه بیشتر توضیح بدی؟؟؟؟

  5. #5
    پروفشنال shahabmusic's Avatar
    تاريخ عضويت
    May 2006
    محل سكونت
    New Zealand-Auckland
    پست ها
    687

    پيش فرض

    اگه اينطوري برنامه رو بنويسم بعد توي ويندوز 98 اجرا مي شه؟؟؟

  6. #6
    پروفشنال navid_mansour's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    جایی که عاشقاش زنده ان....
    پست ها
    614

    پيش فرض

    فکر نکنم,هر ویندوزی با سبک خودش اجرا میشه

  7. #7
    پروفشنال majid_kntu's Avatar
    تاريخ عضويت
    Jun 2006
    پست ها
    781

    1 توضيح

    حدست درسته!هر نگارشي از ويندوز با سبك خودش برنامه را اجرا مي كند . مثلا Vista يا 98.
    اين را هم بگويم كه در محيط ويندوز خيلي چيزها هستند كه از آنچه به نظر مي رسند پيچيده ترند.مثلا ممكن است اين شبه پيش بياد كه روش بالا درمورد هر كنترلي كه در ويندوز مي بينيد جواب بدهد.
    ولي حقيقتش اينه كه ما مي تونيم حتي يك سبك مخصوص خودمون رو طراحي كنيم وبا روشي مشابه برنامه رو وادار كنيم از Texture هايي كه براش تعريف كرديم استفاده كنه كه البته راستش رو بخواهيد هنوز خودم امتحانش نكردم.
    بعدش اينرو هم اضافه كنم كه اگر Intialize رو مثل مثال بدرستي انجام داده باشيد هيچ مشكل سيستماتيكي براي برنامه ايجاد نميشه.
    پس هيچ نگراني درباره اجرا مثلا در 98 نداشته باشيد. البته انتظار ديدن سبك اكس ژي رو تو 98 نداشته باشيد.

  8. #8
    پروفشنال navid_mansour's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    جایی که عاشقاش زنده ان....
    پست ها
    614

    پيش فرض

    برای microsft common controls 6 توضیح ندادی؟میشه لطف کنی؟

  9. #9
    پروفشنال majid_kntu's Avatar
    تاريخ عضويت
    Jun 2006
    پست ها
    781

    پيش فرض

    ببين اين روش فقط قادره كنترل هايي رو كه در comctl32 هستند رو تغيير بده و براي هر كنترل ديگه اي كه در اين فايل نباشه اين روش بي تاثيره .
    واضح تر بگم
    تو IDE وي بي كليد تركيبي Ctrl+T رو بزن
    Microsoft Windows Common Controls 5 رو انتخاب كن .
    در قسمت Location آدرسي مثل آدرس زير ميبيني
    c:\windows\system32\comctl32.ocx
    در واقع وي بي به طور پيش فرض از نگارش 5 اين فايل استفاده مي كنه.
    به خاطر خصلت نسل اكس پي در يك ويندوز هر دو نگارش 5 و 6 اين فايل وجود داره و برنامه ها انتخاب مي كنن كه از كدوم نسخه استفاده كنن.
    همانطور كه گفتم برنامه هاي كامپايل شده با وي بي 6 به طور پيش فرض از نگارش 5 استفاده مي كنن.
    در اين مثال هم ما اونو وادار مي كنيم تا از نگارش 6 فايل comctl32 استفاده كنه .
    بنابراين من منظور شما از Microsoft Common Controls 6 رو متوجه نمي شم!!!!
    اگه مي شه يكي از كنترل هايي كه به نظر شما اين مثال در مورد اون جواب نميده رو نام ببريد.به ياد داشته باشيد كه كنترلي رو كه مي خواهيد مثال بزنيد بايد تو فايل comctl32.ocx باشه...

  10. #10
    اگه نباشه جاش خالی می مونه Blue Rose's Avatar
    تاريخ عضويت
    May 2005
    محل سكونت
    http://AhwazSoft.ir
    پست ها
    201

    پيش فرض

    سلام
    قبلا توضیح داده شده بود

صفحه 1 از 4 1234 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •