گذاشتن ComboBox در يكي از سلولهاي DBGrid
با سلام
من ميخواهم به جاي يكي از سلولهاي DBGrid يك ComboBox باز شود يعني وقتي كاربر وارد آن سلول ميشود مقدار ComboBox.text برابر مقدار فيلد شود . البته با ComboBox.Create
البته توضيح دهم كه من ميخواهم حتما ComboBox را در داخل رويداد ColEnter ايجاد كنم
ضمن اينكه از PickListا هم نميتوانم استفاده كنم. فقط و فقط بايد در داخل رويداد ذكر شده (در صورت امكان و يا در رويداد ديگري از DBgrid) ايجاد شود.
در ضمن از Ehlib و ... هم نبايد استفاده بشه .
آيا امكان دارد؟
كلي تر بخواهم بگم ميخواهيم يك شئي ويژوال را داخل يكي از سلولهاي گريد بندازيم.(فقط با .Create)
با عرض پوزش جستجو كار نميكرد.
با تشكر
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
سلام
من این کار رو توی StringGrid انجام دادم ...
خوب توی رویداد OnKeyPress بررس میکنم که اگه مثلا Space زده شد ... در سطر و ستون جاری یک Combobox نشون بده یا ایجاد می کنم ... و Text رو هم برابر متن Grid میزارم
همین کارو واسه DbGrid بکن و Text رو برابر Field مورد نظر در Record جاری قرار بده !
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
از پاسختان متشكرم
البته توضيح دهم كه من ميخواهم حتما ComboBox را در داخل رويداد ColEnter ايجاد كنم
ضمن اينكه از PickListا هم نميتوانم استفاده كنم. فقط و فقط بايد دراخل رويداد ذكر شده ايجاد شود.
آيا امكان دارد؟
با تشكر مجدد
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
احتمالا باید بشه !
ولی رویداد ColExit رو هم باید واسش کد بنویسی !
تو کدت رو بنویس اگه مشکل داشتی اینجا بزار شاید تونستیم کمکتون کنیم
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
اين كد را نوشتم اما خطا ميگيرد و كار نمي كند
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
Tcombo:TComboBox;
begin
if (gdFocused in State) then
begin
if (Column.Field.FieldName = 'serial') then
Try
Tcombo.Parent := DBGrid1;
Tcombo := TComboBox.Create(Self);
Tcombo.Text := Column.Field.Value;
Tcombo.Visible := True;
Tcombo.SetFocus
finally
Tcombo.Free;
end;
end;
end;
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
نقل قول:
بر روی ستون مورد نظر در DBGrid کلیک کنید و سپس داخل خاصیت PickList ان مقادیر خورد را وارد کنید .
حالا هر وقت وارد یکی از سلولهای ستون مورد نظر وارد شوید Combobox نمایش داده می شود.
موفق باشید
عرض كردم كه بدون PickList و Ehlib , ...
ممنون
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
سلام
private
{ Private declarations }
ACombo: TComboBox;
...
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (gdSelected in State) then
begin
if (UpperCase(Column.Field.FieldName) = UpperCase('serial')) then
begin
ACombo.Top:= Rect.Top;
ACombo.Left:= Rect.Left;
ACombo.Width:= Rect.Right - Rect.Left;
ACombo.Text := Column.Field.Value;
ACombo.Visible := True;
ACombo.SetFocus
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ACombo:= TComboBox.Create(Self);
ACombo.Parent := DBGrid1;
ACombo.Visible:= False;
end;
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
روش taha خیلی عالیه من هم همین رو پیشنهاد میکنم.
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
با سلام
در روش Taha در واقع يك Combo در سلول نقاشي ميشود ولي بايد حتما ايجاد شود . حالا چرا ؟
اول آنكه من در واقع كامپوننتي كه از ComboBox وراثت گرفته درست كرده ام كه مشخصات خاصي دارد و بايد آنرا در سلول گريد بگذارم.
دوم آنكه مدير عامل ميخواهد حتما يك Object Orented باشد و حتما حتما داخل سلول ايجاد شود نه نقاشي و ...
ممنونم
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
نقل قول:
من ميخواهم به جاي يكي از سلولهاي DBGrid يك ComboBox باز شود يعني وقتي كاربر وارد آن سلول ميشود مقدار ComboBox.text برابر مقدار فيلد شود . البته با ComboBox.Create
البته توضيح دهم كه من ميخواهم حتما ComboBox را در داخل رويداد ColEnter ايجاد كنم
نقل قول:
كلي تر بخواهم بگم ميخواهيم يك شئي ويژوال را داخل يكي از سلولهاي گريد بندازيم.(فقط با .Create)
نقل قول:
اين كد را نوشتم اما خطا ميگيرد و كار نمي كند
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
Tcombo:TComboBox;
begin
if (gdFocused in State) then
begin
if (Column.Field.FieldName = 'serial') then
Try
Tcombo.Parent := DBGrid1;
Tcombo := TComboBox.Create(Self);
Tcombo.Text := Column.Field.Value;
Tcombo.Visible := True;
Tcombo.SetFocus
finally
Tcombo.Free;
end;
end;
end;
نقل قول:
اول آنكه من در واقع كامپوننتي كه از ComboBox وراثت گرفته درست كرده ام كه مشخصات خاصي دارد و بايد آنرا در سلول گريد بگذارم.
دوم آنكه مدير عامل ميخواهد حتما يك Object Orented باشد و حتما حتما داخل سلول ايجاد شود نه نقاشي و ...
دوست عزیز!
نگاهی بکن به پست هایی که کردی. چیزهایی که بر خلاف خواسته وسوال شما مشهودند:
1- گنگ و مبهم بودن سوال
2- تغییر خواسته و سوال
3- اضافه شدن مفروضات و شرایط جدید
...
باید در سوال پرسیدن یادمون باشه:
- دقیق بدونیم چی می خواهیم
- یه کم فکر کنیم، اگه حل نشد ...
- کلمات کلیدی خواستمون رو در بیاریم
- با استفاده از کلمات کلیدی در سایت جستجو کنیم اگه پیدا نشد ...
- عنوان درست برای سوالمون انتخاب کنیم
- اینو بدونیم که دیگران توی ذهن و جلسات ما! نیستن که بدونن توش چی می گذره، چی می خواهیم و ...، و ما فقط با لغات هستش که اونا رو می تونیم مطلع و آگاه کنیم، پس ...
- سوالمون رو دقیق و با تمام فرضیات و شرایط بیان کنیم و اگر نمونه کد، منبع و ... هم داریم بذاریم
- اگه جواب گرفتیم فبه المراد، اگر نگرفتیم ...
- بدونیم که دیگرانی که وقت میذارن و جواب (حتی جوابی که مدنظر ما نیست و یا غلط! ) میدن، به ما دارن لطف می کنند و هیچ بایدی و وظیفه ای در جواب دادنشون نیست.
پی نوشت!
1- اینایی که اون بالا گفتم همشو به خودت برندوری، چون یه سریش کاملا مطالب کلی برای همه ماست.
2- ایضاً اینایی که اون بالا گفتم همشو رو هم به من! برندوری، چون من خیلی بیسوات تر از اونم که ...
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
شما ببخشيد
ذكات علم به آموختنش است
يا حق
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
با سلان
لطفا دوستان مساعدت كرده اينجانب را راهنمايي كنند. آيا اصلا امكان پذير است ؟
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
فهميدم
نمي شه !!!!!!!!!!!.
1 ضمیمه
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
با سلام خدمت دوستان گرامي
من با اين فايلي كه در ضميمه گذاشته ام كار كردم و به خوبي جواب مي دهد.
با تشكر
--------------------------------------------------------------------------------------------
به جاي اينكه سعي كنيد جاي كسي را بگيريد ، تلاش كنيد جاي واقعي خود را بيابيد.
نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid
سلام . چرا وقتی کامپونت های آماده است خودتون رو درگیر کد نویسی می کنید که باعث افزایش خطا و درد سر برنامه بشه .
کامپونت Ehlib Full Version 3.4 نیاز شما رو رفع می کنه
توی سایت در این زمینه جستو کنید