PDA

View Full Version : سوال: استفاده ازکامپوننت MaskEdit



amirkazem
جمعه 30 آبان 1393, 15:00 عصر
سلام خدمت اساتیدمحترم.
دریک فرم که به بانک متصل هستش می خواهم دریک قسمت زمان(ساعت)راازکاربردریافت کنم.دوستان پیشنهادکردندکه ازmaskeditاستفاده کنم.ولی ظاهراًبایدازکامپوننت آن هم استفاده کنم.چون درحالت عادی راهی وجودنداره که به فیلدخاصی ربطش بدم.
دوستان محبت کنندبفرماییدازکجاکامپوننت مناسب maskeditرادانلودکنم وکمی هم راهنمایی بفرماییدممنون میشم.
جستجوکردم به نتیجه ی مطلوبی نرسیدم.
بازهم ممنون

یوسف زالی
شنبه 01 آذر 1393, 11:05 صبح
سلام.
برای تاریخ ها خصوصا شمسی باید از کامپوننت های ThirdParty استفاده کنید.
اما بصورت خیلی خیلی ساده از DBEdit می تونید استفاده کنید که توصیه نمی شه.
اگر خواستید کامپوننت بنویسید، راهنمایی می کنم تا به نتیجه ای که می خواهید برسید. مشروط به این که تنبلی نکنید.

amirkazem
شنبه 01 آذر 1393, 17:16 عصر
باسلام ضمن تشکرازمدیرمحترم بخش.
همانطورکه فرمودیدبنده دربرنامه ای که دارم تکمیلش می کنم ازکامپوننت شمسی(Solar Calander)استفاده می کنم.وفعلاًهم جواب میده.ولی برای اینکه کاربران برای واردکردن زمان خاص توسط کاربر.(برنامه ای هستش که دریک قسمت زمان (همان ساعت)راازکاربرمی گیرد.فقط به خاطراین که کاربرفقط بافرمت خاصی ساعت راواردکندمثلاً(10:45)می خواهم ازMask Editاستفاده کنم.
درهرصورت ممنون میشم اگرراهنمایی بفرمایید.درموردنوشتن کامپوننت هم حرفی نیست.فقط موضوع زمان ومهارت کافی دربرنامه نویسی برام مطرح هست.
ازلطف حضرتعالی بسیارممنونم.

یوسف زالی
شنبه 01 آذر 1393, 21:21 عصر
من کامپوننتی رو که می گید ندیدم ولی فرض می کنم که هیچ کنترلی نداره.
شما باید به یوزر یک مسک ادیت با مسک مورد نظرتون نمابش بدید و در رویداد OnChange کنترل های مربوطه رو دوباره انجام بدید، اگر همه چیز خوب بود وارد کامپوننتی که خودتون می دونید کنید.
البته این راه خیلی آبکی می باشد!
کامپوننت مربوطه رو اگر دارید برام بگذارید (دلفی 7 یا دلفی XE6) باهاش کار کنم ببینم چی ازش در میاد.
در غیر اینصورت استارت نوشتن کامپوننت رو بزنید. یا علی!

البته کامپوننت هایی برای این کار موجودند، که رایگان نیستند، با سورس و داکیومنت، یک یک و نیم هزینه دارند، که فکر نمی کنم به درد وسعت کار شما بخوره. البته جسارت نباشه.

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

amirkazem
یک شنبه 02 آذر 1393, 22:55 عصر
نه.بنده هم کامپوننتی پیدانکردم.ضمن اینکه بنده با(XE3)کارمی کنم.فکرکنم یکی ازدوستان داشته باشند.سعی می کنم ازشون بگیرم.

idehrayan
دوشنبه 03 آذر 1393, 13:06 عصر
سلام
با اجازه از اساتید
نمی دونم این روش از نظر برنامه نویسی مشکل داره یا نه ولی روشی که به فکر من رسید اینه که تو خاصیت چنج
maskedit کد زیر رو بنویسید
;dbedit1.text:=medit1.text
اول یک dbedit روی فرم میزاریم و به فیلد مورد نظر متصل میکنیم و بعد مخفیش میکنیم

amirkazem
دوشنبه 03 آذر 1393, 22:59 عصر
باسلام.دوست گرامی idehrayan
روشی که شمافرمودیدراتست کردم.جواب هم داد. مگراین که نظردوستان چیزدیگری باشد.امیدوارم این روش که ساده ترین وسریعترین راه است به کارمون بیاد.البته عرض کردم که تست کردم وجواب هم میده.حتی توی جدول بانک هم مشاهده کردم که تاریخ به صورت(1393/09/03 ) درج شده وبه ظاهرمشکلی هم نداره.
بازهم ممنون.

یوسف زالی
سه شنبه 04 آذر 1393, 00:56 صبح
شما باید به یوزر یک مسک ادیت با مسک مورد نظرتون نمابش بدید و در رویداد OnChange کنترل های مربوطه رو دوباره انجام بدید، اگر همه چیز خوب بود وارد کامپوننتی که خودتون می دونید کنید.
البته این راه خیلی آبکی می باشد!


این راه خیلی آبکی می باشد!

amirkazem
سه شنبه 04 آذر 1393, 22:51 عصر
سلام جناب you-see
میشه لطفاً درمورداین جمله«این راه خیلی آبکی می باشد)بیشترتوضیح بدید.
منظورتون این هست که بعداًدرجستجوهاوگزارشات دچارمشکل میشیم؟یانه چیزدیگری منظورشماست؟
لطفاً بیشترراهنمایی کنید.

یوسف زالی
چهارشنبه 05 آذر 1393, 01:40 صبح
همونطور که در بالاتر هم در پست خودم گفتم، استفاده از کامپوننت دوم بصورت پذیرنده کار درستی از نظر ساختاری نیست.
هر کامپوننت می باید مرتبط باشد با یک فرایند. نه این که برای دریافت اطلاعات از دو کامپوننت استفاده بشه. بعد ها حین آپدیت و گسترش برنامه کافیه یادتون بره...
یک راه بهتر استفاده از کلاس های ران تایم، یا اگر کمی بهتر بلد باشید استفاده از کامپوننت های ترکیبیه که خصوصیات مورد نظر شما رو پیاده کنه.
راه حل غلط نیست، در پست خودم و زیر مطلب خودم گفتم، آبکیه، یعنی این که روش روش اصولی و استانداردی نیست. فقط کار راه بندازه.
فکر نمی کنم در پروژه های عادی استفاده از روش گفته شده مشکلی غیر قابل حل ایجاد کنه، اما روش رو نمی پسندم.
شروع کنید، کامپوننت بنویسید، دو تا مزیت داره، هم خودتون راه می افتید، هم به چیزی که لازم دارید می رسید.

*جیگرم*
چهارشنبه 05 آذر 1393, 02:53 صبح
1- TLMDDBMaskEdit
2- TJvDBMaskEdit