PDA

نسخه کامل مشاهده نسخه کامل : تقویم



tikzahraaran
27-02-2008, 15:01
با سلام
چگونه می توان در دلفی صفه ای ایجاد کرد که تعداد روزهای یک ماه و روز اول آن ماه را بگیرد و جدولی را ایجاد نماید که به تعداد روزهای ماه باشد و روز اول آن ماه هم مشخص شده باشد و درون هر خانه جدول شماره روز و نوع روز مثلا یکشنبه دوشنبه آن را نشان دهد مانند یک تقویم
با تشکر
:40::40::40::40::40::40::40::40::40::40::40::40::4 0::40::40::40::40::40::40::46::11:

tikzahraaran
02-03-2008, 23:38
دوستان عزیز خواهش می کنم در این مورد کمکم کنید
خیلی متشکرم
:40::40::40::40::40::40::40::40::40::40::40::40::4 0::40::40::40::40::40::40::46::11:

mabnarayaneh
08-03-2008, 03:35
دوست عزيز
من يك برنامه‌ي تقويم روميزي نوشته ام. آدرس بده تا يه تصوير برات بفرستم. اگه منظورت همين بود بگو تا راجع بهش توضيح بدم.

tikzahraaran
08-03-2008, 09:06
tikzahraaran@yahoo.com
از کمک شما بسیار متشکرم

romixery
08-03-2008, 09:52
دوست عزيز
من يك برنامه‌ي تقويم روميزي نوشته ام. آدرس بده تا يه تصوير برات بفرستم. اگه منظورت همين بود بگو تا راجع بهش توضيح بدم.
سلام
دوست عزيز ما در اين انجمن كار خصوصي نداريم. لطفا تمامي مسائل رو همينجا مطرح كنيد و از فرستادن Email خودداري كنيد. تا دوستان ديگه هم از اين موضوع استفاده كنن. لطفا عكس رو هم همينجا Upload كنيد.
ممنون
موفق باشيد

mabnarayaneh
08-03-2008, 13:47
ببخشيد رميكس جان، قصد تبادل خصوصي نداشتم. سعي كردم عكس رو همين جا بذارم اما نمي دونم چطوري. دارم تلاش مي‌كنم ببينم سر در مي آرم يا نه...

ممنون مي‌شم اگه راهنمايي كنيد.

tikzahraaran
08-03-2008, 14:05
مبنارایانه عزیز دوستمون راست میگه اگه شما عکس را در این تاپیک قرار بدهی هم همه می توانند از آن استفاده کنند و هم می توان با کمک همدیگه مشکل را حل کرد
از کمک شما و همه متشکرم
در ضمن برای ارسال عکس شما دکمه ارسال پاسخ را بزن صفحه ای که می آید یک آیکون مانند آیکونی که در ورد برای گذاشتن عکس است وجود دارد آن را بزن و عکست را در آن قرار بده
بازهم متشکرم
:40::40::40::40::40::40::40::40::40::40::40::40::4 0::40::40::40::46::11:

mabnarayaneh
08-03-2008, 16:12
اين كار رو مي‌كنم اما چطوري آدرس بدم؟ آدرس تصوير روي هارد خودم رو چطوري http كنم؟

mabnarayaneh
08-03-2008, 16:27
موفق شدم!!!!


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


منظور شما چيزي شبيه به اين تصويره؟

AlilG
08-03-2008, 16:40
دوست عزيز
من يك برنامه‌ي تقويم روميزي نوشته ام. آدرس بده تا يه تصوير برات بفرستم. اگه منظورت همين بود بگو تا راجع بهش توضيح بدم.
برنامت رو در اختیار ما نمیذاری؟ :(

mabnarayaneh
09-03-2008, 01:03
براي اين كه چنين تقويمي بسازيم، لازم است كار را به دو بخش تقسيم كنيم:
يكي بخش هسته و ديگري بخش پوسته
بخش هسته وظيفه دارد محاسبات مربوط به روزهاي ماه را انجام دهد؛ اين كه هر روز چند شنبه است و چندم ماه است و آيا تعطيل است يا خير
بخش پوسته نيز وظيفه دارد تا تقويم بدست آمده را به شكل مناسبي روي صفحه نمايش دهد.
( اين كه چرا كار را به دو بخش تقسيم كرديم در انتها بيشتر مشخص خواهد شد)

ابتدا به سراغ بخش هسته مي‌رويم.
در اين بخش، يك آرايه تعريف مي‌كنيم كه هر خانه از آن، مشخص‌كننده‌ي يك روز از روزهاي ماه است.

اين آرايه بايد چند خانه داشته باشد؟
اگر تقويم شمسي طراحي مي‌كنيد، پاسخ 31 است. زيرا هر ماه شمسي حداكثر 31 روز دارد.
اگر ماه مورد نظر كم‌تر از 31 روز داشته باشد،‌طبيعي است كه خانه‌هاي انتهايي آرايه خالي خواهد ماند.

اين آرايه از چه نوعي بايد باشد؟
در نگاه اول به نظر مي‌رسد كه آرايه بايد از نوع عددي باشد و تاريخ آن روز را نگه دارد يا اين كه از نوع رشته‌اي باشد تا مشخص كند كه هر روز از ماه، چند شنبه است. اما من اين پاسخ را پيشنهاد مي‌كنم:
آرايه را از نوع ركورد انتخاب كنيد.
مي‌دانيد كه ركورد يك نوع داده‌ي مركب است. كافي است ركوردي تعريف كنيد كه شامل بخش‌هاي زير باشد:
يك نوع عددي كه نشان دهد آن روز، چندم ماه است (فرض كنيم اسم آن curr_date باشد)
يك نوع عددي كه نشان دهد آن روز چندشنبه است (فرض كنيم اسم آن day_of_week باشد)
يك نوع بولين كه مشخص كند آن روز تعطيل است يا خير (فرض كنيم اسم آن isclosed باشد)
يك نوع بولين اضافي كه نشان مي‌دهد آيا آن روز جزو ماه جاري است يا خير (فرض كنيم اسم آن isincurr_month باشد).

اميدوارم تا اينجا واضح گفته باشم.
حالا ببينيم كه اين آرايه رو چه طوري بايد مقداردهي كنيم.
شما گفتيد كه كاربر خودش مشخص مي كند كه هر ماه چند روزه است و روز اول ماه چندشنبه است.
بسيار خوب، براي پر كردن آرايه از يك حلقه استفاده مي‌كنيم و 1 تا 31 را درون بخش‌هاي curr_date آرايه قرار مي‌دهيم. فعلا كاري نداريم كه اين ماه چند روزه است...
براي پر كردن بخش‌هاي day_of_week نيز ابتدا بايد روزهاي هفته را شماره‌گذاري كنيم. مثلا شنبه = 0 و يكشنبه = 1 و دوشنبه = 2 و ...
حالا در بخش day_of_week در اولين خانه، مقداري كه معادل اولين روز ماه است را قرار مي‌دهيم. مثلا اگر كاربر بگويد كه اولين روز ماه، سه شنبه است، در بخش day_of-week از اولين خانه، عدد 3 را قرار مي‌دهيم. براي خانه‌هاي بعدي آرايه نيز اين عدد را به ترتيب افزايش مي‌دهيم و هر بار كه از شش گذشتيم، در خانه‌ي بعدي از صفر شروع مي‌كنيم.
در بخش isclosed نيز تكليف مشخص است. براي همه‌ي خانه‌ها false است مگر خانه‌هايي كه بخش day_of_week آن‌ها برابر با شش (يعني جمعه) باشد. كه در اين خانه‌ها بايد مقدار true گذاشت.
و اما بخش آخر كه isincurr_month است. در اين بخش نيز همه‌ي خانه‌ها true خواهند بود مگر خانه‌هايي كه از روزهاي ماه جاري بزرگ‌تر باشند. مثلا اگر كاربر بگويد كه ماه جاري 29 روزه است، در بخش isincurr_month در خانه‌هاي 30 و 31 مقدار false قرار خواهد گرفت.

حالا آرايه اي در اختيار داريم كه با نگاه كردن به هر خانه از آن، مي‌توانيم بفهميم كه آن خانه، چندمين روز ماه است، چندشنبه است و آيا تعطيل است يا خير.

بخش هسته به پايان رسيد. نوبت به بخش پوسته مي‌رسد كه بايد اين آرايه را تحويل بگيرد و تقويم را روي صفحه نمايش دهد. انتخاب نحوه‌ي نمايش به خود شما بستگي دارد. مي توانيد از 31 button استفاده كنيد يا از 31 groupbox استفاده كنيد يا از 31 rectangle استفاده كنيد يا ...
اگر مي‌خواهيد دردسر كمتري داشته باشيد، توصيه مي‌كنم از groupbox استفاده كنيد. طوري كه هر groupbox شامل 3 برچسب يا label باشد. يكي نشان ميدهد كه آن خانه، چندشنبه است. ديگري نشان مي‌دهد كه آن خانه چندم ماه است و آخري نيز مشخص مي‌كند كه آن تاريخ آيا تعطيل است يا خير.

نوع بولين اضافي اين جا به درد مي‌خورد. هنگام رسم groupbox ها براي هر خانه‌ي آرايه، لازم است مقدار isin_curr_month براي آن خانه را بررسي كنيد. اگر مقدار آن true باشد، بايد groupbox نمايش داده شود و اگر مقدار آن false باشد، groupbox مربوطه بايد مخفي شود و نمايش نيابد.

و اما اين كه بخش هسته و پوسته را از هم جدا كرديم اين جا به درد مي‌خورد. به اين ترتيب، نحوه‌ي نمايش كاملا قابل انعطاف خواهد بود و ديگر براي تغيير نمايش تقويم، مجبور نيستيم كل تقويم را از ابتدا محاسبه كنيم.

شايد اين نوشته ها كمي مبهم به نظر برسد اما واقعا كد كردن اين ها خيلي آسان است. اگر در كد نويسي مشكلي داشتيد بگوييد تا اگر اطلاعات به درد بخوري داشتم كمكتان كنم.

mabnarayaneh
09-03-2008, 01:06
برنامت رو در اختیار ما نمیذاری؟ :(

اين برنامه با وجود امكانات نسبتا خوبي كه داره متاسفانه هنوز تكميل نشده. در ضمن چون يك كار مشتركه فعلا اجازه ندارم اون رو پخش كنم. اميدوارم بتونم در آينده‌ي نزديك يك نسخه‌ي نمايشي رو در اختيار دوستان بذارم. اما اگر اطلاعاتي راجع به نحوه‌ي ساختنش خواستين بفرمايين تا تقديم كنم.

tikzahraaran
09-03-2008, 22:04
مبنا رایانه عزیز سلام
از راهنمایی که کردی متشکرم
با این توضیحاتی که دادی دارم به یه جاهایی می رسم که اگه کامل بشه در اختیار دوستان می ذارم

:40::40::40::40::40::40::40::40::40:[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]