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

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




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 11

نام تاپيک: کدنویسی روی پروژه های Mdi !

  1. #1
    آخر فروم باز 3Dmajid's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    پشت کامپیوتر
    پست ها
    6,067

    پيش فرض کدنویسی روی پروژه های Mdi !

    من دو تا فرم درست کردم و در فرم دوم یه track bar گذاشتم ... به طوری که کاربر توسط این track bar میتونست width فرم اول رو به اندازه ی خودش تنظیم کنه. خوب این که خیلی راحت کار کرد.

    ولی ....

    امروز همین کار رو کردم با این تفاوت که برای این دو تا فرم یک parent هم تعریف کردم. ولی کد کار نکرد !

    ولی این parent نباشه کار میکنه !

    آیا طرز کد نویسی روی پروژه های mdi تکنیک خاصی داره ؟

    لطفا راهنمایی کنید.

  2. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    من دو تا فرم درست کردم و در فرم دوم یه track bar گذاشتم ... به طوری که کاربر توسط این track bar میتونست width فرم اول رو به اندازه ی خودش تنظیم کنه...
    فرم اول کیه؟ همان فرمی کهtrackbar روی ان قرار دارد؟
    لطفاً کدی که گفته اید کار کرده و کدی که کار نکرده را بگذارید، چوندرست متوجهمنظورتان نشده ام.

  3. #3
    آخر فروم باز 3Dmajid's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    پشت کامپیوتر
    پست ها
    6,067

    پيش فرض

    بهتر توضیح میدم :

    دو تا فرم درست کردم (form1,form2) روی form2 یک trackbar گذاشتم که کاربر میتونست اندازه ی width فرم اول رو تغییر بده. توی این کار از هیچ فرم parent استفاده نکردم و خیلی راحت کار کرد.

    ولی ...

    تو پروژه ی بعدی همین کار رو تکرار کردم با این تفاوت که یک فرم parent هم ساختم و اون دو تا فرم رو بهش نسبت دادم، ولی نشد !

  4. #4
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    متاسفانه گمانم شما از روش های ضد OOP موجود در VB6 در VB9 استفاده کرده اید...
    وجود این قابلیت های برای افرادی که از VB9 آمده اند خوب است ولی برای VB9 مایه ننگ و مسخره است.

    شما باید اشاره گر هر شی را برای دستکاری داشتهخ باشید و اینکه از نام کلاسس آن استفاده کنید اصلا و ابداً صحیح نیست.
    اشاره گر شی در VB در واقع همان متغییری است که کلاسس با آن New شده، شما اگر این متغییر را به هرجا انتقال دهید میتوانید باشی اش هر کاری انجام دهید.

    در form2 شما باید یک متغییر عمومی به form1 داشته باشید.
    یعنی در form2 کد زیر را اضافه کنید

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حالا فقط باید متغییر SubFormHandler را پر کنید، این متغییر را باید جایی مقدار دهی کنید Form1 را New کرده اید و در واقع هم اشاره گر Form1 و هم Form2 را دارید....
    form2handler.SubFormHandler = form1handler


    مثلاً اگر form1 را از داخل form2 میسازید، کدی شبیه این خواهد شد.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و یا اگر form1 و form2 را هر دو در یک جای مشخص میسازید (هرجایی، مثلاً در همان parent) کدی شبیه این نیاز دارید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    درنهایت کلاً انجام همچین کاری صحیح نیست و در نهایت فقط باید فرمهای child شما به فرم والد متصل باشند و خودشان مستقلاً نباید با هم کاری داشته باشند، کاری که انجام میدهید اصلاً مطابق با اصول برنامه نویسی پروژهای متوسط و بزرگ نیست و در برنامه های کوچک هم انجامش منطقی نیست.
    کد نویسی بی قائده و قانون موجب میشود بعد از مدت کدی اسپاگتی مانند داشته باشید و هر چیزی از این سر کد آن سر کد را متاثر کند و در نهایت برنامه نویس اصلی را هم گیج و سردرگم کند، توصعه و اشکال یابی این برنامه هم میتوانید بسیار طاقت فرسا باشد.

  5. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  6. #5
    آخر فروم باز 3Dmajid's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    پشت کامپیوتر
    پست ها
    6,067

    پيش فرض

    از راهنماییتون ممنون. واقعا سطح بالا صحبت میکنید ... سعی میکنم بفهمم چی میگید.

  7. #6
    آخر فروم باز 3Dmajid's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    پشت کامپیوتر
    پست ها
    6,067

    پيش فرض

    اگه بگم چیزی متوجه نشدم چی کار میکنید ؟

  8. #7
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    اگه بگم چیزی متوجه نشدم چی کار میکنید ؟
    چه کار کنم خوبه؟ میخواهید سرم را بکوبونم به مانیتور؟ (البته مانیتور مانیتور که نه! یک چیز ارزان تر که ورشکست نشم!)

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

    بقیه صحبت ها را ول نکنید، نخواستیم، این ها را یکبار دیگر بخوانید.
    در form2 کد زیر را اضافه کنید
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    اگر form1 و form2 را هر دو در یک جای مشخص میسازید (هرجایی، مثلاً در همان parent) کدی شبیه این نیاز دارید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اگر باز متوجه نشدید باید یک نمونه کد-پروژه برایتان آپلود کنم.
    (البته این هفته زمان اپدیت یک برنامه ام است و باید حجم زیادی کد را حاضر کنم... نتیجتاً می افتد برای پنجشنبه، جمعه... )

  9. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  10. #8
    آخر فروم باز 3Dmajid's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    پشت کامپیوتر
    پست ها
    6,067

    پيش فرض

    SubFormHandler چیه ؟

  11. #9
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    SubFormHandler چیه ؟
    یک متغییر، شما اسمش را Gholi بگذارید!
    این متغیر شی form1 را نگه میدارد.

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Form1 و String در واقع مثل یک نقشه مهندسی هستند، که چیدمان قطعات در RAM و وظایف را مشخص میکنند، همواره منفرد هستند، فقط یکی، ولی عملیاتی نیستند.

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

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

    اشیای واقعی ساخته شده از روی یک کلاسس مشخص، میتوانند مستقل عمل کنند، مثل ماشین های پیکان ساخته شده از روی یک نقشه، با وجود نقشه واحد، بعد از ساخت هر کدام میتوانند تحت قابلیتهای نقشه اولیه مستقلاً عمل کنند، یکی در حرکت باشد و یکی در توقف ....


    مجدداً به کدی که چند خط بالاتر نوشته ام نگاه کنید... Form1 واحد است و چیزی برای اجرا ندارد ولی x و y شی حقیقی هستند.

    شما به شی واقعی که وجود دارد میتوانید فرمان دهید و انتظار اطلاعت داشته باشید نه به یک کلاسس یا نقشه غیر واقعی.

    مفاهیم اصلی شی گرایی و وراثت و پلی مورفیزم را به سادگی میتوانید در طبیعت و دنیای غیر برنامه نویسی پیدا کنید، در اصل تفکر پایه این مفاهیم پیشرفته برنامه نویسی یک نوع کپی برداری طبیعت واقعی است.

    (
    VB6 دستورات صحیحی مثل این را قبول داشت...
    Dim x As New Form1
    x.Show
    ولی متاسفانه متاسفانه متاسفانه VB6 که از OOP (شی گرایی) پشتیبانی نمیکرد، دستورات مایه خجالتی مثل Form1.Show را مجاز میدانست، همچنان برنامه نویسان دیگر زبانها VB کارها را مسخره میکنند، به علت وجود دستور افتضاح و صد در صد ضد OOP مثل Form1.Show ....

    از آن بدتر اینکه مایکروسافت دستورات افتضاحی مثل این را برای کمک به VB6 کارها در VB7-8-9 حذف نکرد
    و همچنان این لکه ننگ وجود دارد.

    البته vb7-8-9 به علت وجود دات نت در ذات نمیتوانند از OOP تخطی کنند و دستور اشتباه فوق را هم به کمک کلاسسی در فضای My و با عضو Shared ای انجام میدهند، وگرنه اگر کد را در #C وارد کنید و یا VB را بدون فضای My کامپایل کنید، به مجرد استفاده از کلاسس برای دسترسی به اعضا یش با خطا سینتکسی مواجه خواهید شد و جلوی کامپایل گرفته میشود.
    )
    Last edited by _H2_; 09-11-2008 at 01:55.

  12. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  13. #10
    آخر فروم باز 3Dmajid's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    پشت کامپیوتر
    پست ها
    6,067

    پيش فرض

    از راهنماییتون خیلی ممنون.

    اگه امکان داره در صورتی که وقت کردید یه پروژه ی ساده درست کنید و برام آپلود کنید تا بهتر یاد بگیرم ...

    برای چی کار با فرم های MDI در vb2008 اینقدر متفاوت شده ؟
    یه جورایی میشه گفت نسبت به vb6 سخت تر شده و کسی که از vb6 داره به vb2008 سفر میکنه، گیج میشه.

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

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

User Tag List

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

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