ورود

View Full Version : کمبوباکس در stringgrid



delphifan
دوشنبه 24 تیر 1387, 11:13 صبح
با سلام به دوستان عزیز
من چند مشکل در کار با stringgrid دارم که اگر کسی کمک کنه ممنون میشم:
1- چطور میشه فیلدهای عددی رو سه تا سه تا با کاما جدا کرد ؟ تو روخدا نگید که با ongeteditmask چون اگر یکی از اعداد را خالی رد کنید همونطور به صورت خالی نمایش میدها مثلا 12 ,333, 32
که این کلا افتضاح است.
2- اگر بخام یک کامپوننت خاص را بجای tinplaceeditor ان بگذارم چطور میتونم این کار را بکنم میدونید من اومدم topو left مثلا کمبوباکسم رو با cell مورد نظر ست کردم ولی در مواردی که نصف یک سلول نمایش داده میشد مشکل داشت
3- اگر کامپوننتی دارید مشابه xstringgrid که بتونه از editor های مختلف استفاده کنه برام بفرستید ممنون میشم. در موردxstringgrid هم باید بگم تنظیماتش مزخرفه و مثلا سرتیترها رو بد نشون میده
لطفا هر کی جواب منو میدونه حتما جواب بده
ممنون

Hsimple11
دوشنبه 24 تیر 1387, 14:51 عصر
1- چطور میشه فیلدهای عددی رو سه تا سه تا با کاما جدا کرد ؟ تو روخدا نگید که با ongeteditmask چون اگر یکی از اعداد را خالی رد کنید همونطور به صورت خالی نمایش میدها مثلا 12 ,333, 32
که این کلا افتضاح است.

خالی رد کنید یعنی Space؟ آن هم یک کاراکتر به حساب می آید. میتوانید از تابع FormatFloat هم استفاده کنید. در سایت جستجو کنید در مورد جدا کردن ارقام.



2- اگر بخام یک کامپوننت خاص را بجای tinplaceeditor ان بگذارم چطور میتونم این کار را بکنم میدونید من اومدم topو left مثلا کمبوباکسم رو با cell مورد نظر ست کردم ولی در مواردی که نصف یک سلول نمایش داده میشد مشکل داشت

برای چه نوع Edit ای میخواهید؟ بفرمایید میخواهید چکار کنید شاید راه ساده تری بود.



3- اگر کامپوننتی دارید مشابه xstringgrid که بتونه از editor های مختلف استفاده کنه برام بفرستید ممنون میشم. در موردxstringgrid هم باید بگم تنظیماتش مزخرفه و مثلا سرتیترها رو بد نشون میده

از کامپوننتهای سری TMS یا Ehlib استفاده کنید.

SYNDROME
دوشنبه 24 تیر 1387, 20:17 عصر
برای ایجاد Combo می توانید از DBGrid معمولی استفاده کنید و آن را یا به یک Table و یا به ClientDataSet وصل کنید تا نیازی به Table و . . نباشد.
موفق باشید

delphifan
شنبه 29 تیر 1387, 11:14 صبح
ضمن سلام و تشکر از دوستانی که زحمت کشیدند و جواب سوال من رو دادند.
hsimple11 عزیز من formatfloat که در geteditmask یک stringgrid قرار داده بودم. ولی خودتون هم میدونید اگر مثلا بنویسید" 1 و2 " همونطور نشان میدهد من یک کامپوننت طراحی کردم که در اون شما اگر یا space رد کنید خودش اون جای خالی را پاک میکند و دلم میخواست که میتونستم کامپوننت خودم را بجای editor یکی از ستونها ی stringgrid ام بگذارم. که بتونم موقع نوشتن با فرمت عددی از آن استفاده کنم و اما در مورد نمایش سلولهایی که در حال edit نیستند اگر بشه مثل displayformat از dbgrid یک ستون را با فرمت عددی نمایش داد و یا شاید اون موقع از formatfloat بشه استفاده کرد. کلا maskedit خیلی اذیت میکنه. برا همین من از maskedit استفاده نمیکنم. البته توجه دارید که این جدول من موقتی است و در هیچ table ای ذخیره نمیشه و بخاطر همین هم از stringgrid استفاده کردم. Syndrom عزیز شما پیشنهاد داده بودید از Tclientdataset استفاده کنم من تاحالا از این کامپوننت استفاده نکردم راستش برای امتحان یک tclientdataset و یک datasource و یک dbgrid گذاشتم و اونها را به هم وصل کردم و لی نمیدونستم چطور باید داخل گرید مستقیما بنوبسم و اما حالا اومدی و تونستم بنویسم (که امیدوارم شما بتونید به من راهنمایی کنید چطوری) و از displayformat مربوط به dbgrid هم برای نمایش استفاده کردم. برای این که زمان edit هم به صورت seperated عدد بگیرد چاره ای هست؟ و یا چطور میشه یک combo را به هر کدام از کامپوننتهای dbgrid و یا stringgrid وصل کرد . راستی ُhsimple11 عزیز پیشنهاد دو تا کامپوننت راداده بودید که متاسفانه من فقط hblib را شنیده بودم و اون یکی رو اصلا نمیشناختم حتی hblib را هم نتونستم دوانلود کنم .سراغ warez هم رفتم ولی نسخه رایگان ندیدم. میشه اگه زحمتی نبود این کامپوننتها رو برای من هم ارسال کنید یک دنیا ممنون میشم.
آدرس من:mhashemi10098@yahoo.com
بازم از هردوتون ممنونم

Hsimple11
شنبه 29 تیر 1387, 16:00 عصر
خودتون هم میدونید اگر مثلا بنویسید" 1 و2 " همونطور نشان میدهد من یک کامپوننت طراحی کردم که در اون شما اگر یا space رد کنید خودش اون جای خالی را پاک میکند و دلم میخواست که میتونستم کامپوننت خودم را بجای editor یکی از ستونها ی stringgrid ام بگذارم. که بتونم موقع نوشتن با فرمت عددی از آن استفاده کنم و اما در مورد نمایش سلولهایی که در حال edit نیستند اگر بشه مثل displayformat از dbgrid یک ستون را با فرمت عددی نمایش داد و یا شاید اون موقع از formatfloat بشه استفاده کرد. کلا maskedit خیلی اذیت میکنه. برا همین من از maskedit استفاده نمیکنم. البته توجه دارید که این جدول من موقتی است و در هیچ table ای ذخیره نمیشه و بخاطر همین هم از stringgrid استفاده کردم. Syndrom عزیز شما پیشنهاد داده بودید از Tclientdataset استفاده کنم من تاحالا از این کامپوننت استفاده نکردم راستش برای امتحان یک tclientdataset و یک datasource و یک dbgrid گذاشتم و اونها را به هم وصل کردم و لی نمیدونستم چطور باید داخل گرید مستقیما بنوبسم و اما حالا اومدی و تونستم بنویسم (که امیدوارم شما بتونید به من راهنمایی کنید چطوری) و از displayformat مربوط به dbgrid هم برای نمایش استفاده کردم. برای این که زمان edit هم به صورت seperated عدد بگیرد چاره ای هست؟ و یا چطور میشه یک combo را به هر کدام از کامپوننتهای dbgrid و یا stringgrid وصل کرد . راستی ُhsimple11 عزیز پیشنهاد دو تا کامپوننت راداده بودید که متاسفانه من فقط hblib را شنیده بودم و اون یکی رو اصلا نمیشناختم حتی hblib را هم نتونستم دوانلود کنم .سراغ warez هم رفتم ولی نسخه رایگان ندیدم. میشه اگه زحمتی نبود این کامپوننتها رو برای من هم ارسال کنید یک دنیا ممنون میشم.

در مورد اینکه Space را حذف کنید میتوانید از یک حلقه ساده و یک شرط کمک بگیرید که Length رشته را بگیرد و آنها را حذف کند. در هنگام Edit منظورتان ورود اطلاعات است؟ در مورد DB هم بهتر است به گفته دوستم از همان DBGrid استفاده کنید و خاصیت EditMask فیلد مربوطه را به دلخواه تغییر دهید (برای زمان ویرایش )MaskEdit چه مشکلی دارد؟! راجع به Combo برای هر رکورد در DBGrid ، هر Column یک خاصیت بنام PickList دارد که میتوانید آیتمهای مورد نظر را در آن وارد کنید و سپس فیلد شما حالت کمبو برای هر رکورد میگیرد. در مورد سری TMS هم فکر کنم در CD های بازار موجود باشد. متاسفانه حجم زیادی دارد و نمیتوانم آن را ارسال کنم.
موفق باشید...

SYNDROME
شنبه 29 تیر 1387, 19:05 عصر
می توانید به جای حذف Space ها اصلاً اجازه زدن Space به کاربر ندهید.
در رویداد OnKeyPress زمانی که کاربر Space را زدن مقدار Key:=#0 قرار دهید.
موفق باشید

delphifan
سه شنبه 01 مرداد 1387, 08:31 صبح
[quote=delphifan;558020]با سلام و تشکر ار دوستان عزیز
اقا یعنی این کامپوننتها رو تو بازار رضا می فروشند؟ می تونید آدرس یک مغازه را به من بدید؟
بازم ممنون:تشویق:

delphifan
چهارشنبه 02 مرداد 1387, 15:44 عصر
دوستان از هر دوی شما خیلی ممنونم
از TclientDataset استفاده کردم و به این وسیله میتونم از dbgrid استفاده کنم. راستش تا حالا با عرض شرمندگی تموم، اصلا نمی دونستم این کامپوننت وجود داره!! و فقط از StringGrid استفاده میکردم. بازم ممنون. حالا باید سعی کنم کامپوننتهایی رو که گفتید پیدا کنم(hlib)
یک جا برای فروش گذاشته بود. که 30000 تومن بود خیلی گرون بود. اگه جای دیگه سراغ دارید ممنون میشم بهم بگید. بازم ممنون :تشویق:

Hsimple11
چهارشنبه 02 مرداد 1387, 18:04 عصر
دوست عزیز این چه سوالی است! ما نه یک شهریم نه من محل زندگی شما را می شناسم.
ولی در CD های کامپوننت سایت Delphi-Magic وجود دارد. میتوانید سفارش دهید.

delphifan
شنبه 02 شهریور 1387, 14:16 عصر
دوستان عزیز از لطف شما باز هم ممنون و سپاسگذارم. من طبق توصیه شما از TclientDataSet استفاده کردم و خاصیت Displayformat فیلد عددی خودم را "0," گذاشتم خوب این را قبلا هم در موارد Readonly استفاده میکردم ولی اینجا که می خواهم ویرایش کنم. مشکل اینه که مثلا وقتی از عدد 123و456 عدد 3 را حذف می کنم error میدهد که عدد مورد نظر ازنوع float نیست چون این عدد 456,12 را انگار با کاما میشناسد.
یک سوال دیگه اینکه چه کار کنم در حال edit هم سه تا سه تا جداکند
بازم ممنون

SYNDROME
شنبه 02 شهریور 1387, 20:18 عصر
زمانی که در DisplayFormat وارد می کنید ##,# در EditFormat هم وارد کنید ###.
موفق باشید