نمایش نتایج 1 تا 17 از 17

نام تاپیک: گذاشتن ComboBox در يكي از سلولهاي DBGrid

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1384
    محل زندگی
    مشهد مقدس
    پست
    89

    گذاشتن ComboBox در يكي از سلولهاي DBGrid

    با سلام
    من ميخواهم به جاي يكي از سلولهاي DBGrid يك ComboBox باز شود يعني وقتي كاربر وارد آن سلول ميشود مقدار ComboBox.text برابر مقدار فيلد شود . البته با ComboBox.Create

    البته توضيح دهم كه من ميخواهم حتما ComboBox را در داخل رويداد ColEnter ايجاد كنم
    ضمن اينكه از PickListا هم نميتوانم استفاده كنم. فقط و فقط بايد در داخل رويداد ذكر شده (در صورت امكان و يا در رويداد ديگري از DBgrid) ايجاد شود.
    در ضمن از Ehlib و ... هم نبايد استفاده بشه .
    آيا امكان دارد؟
    كلي تر بخواهم بگم ميخواهيم يك شئي ويژوال را داخل يكي از سلولهاي گريد بندازيم.(فقط با .Create)

    با عرض پوزش جستجو كار نميكرد.

    با تشكر
    آخرین ویرایش به وسیله بهمن بهار : سه شنبه 07 خرداد 1387 در 15:44 عصر دلیل: اصلاح توضيحات

  2. #2

    نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid

    سلام
    من این کار رو توی StringGrid انجام دادم ...
    خوب توی رویداد OnKeyPress بررس میکنم که اگه مثلا Space زده شد ... در سطر و ستون جاری یک Combobox نشون بده یا ایجاد می کنم ... و Text رو هم برابر متن Grid میزارم
    همین کارو واسه DbGrid بکن و Text رو برابر Field مورد نظر در Record جاری قرار بده !
    خواستن ، توانتستن است !!!

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1384
    محل زندگی
    مشهد مقدس
    پست
    89

    نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid

    از پاسختان متشكرم
    البته توضيح دهم كه من ميخواهم حتما ComboBox را در داخل رويداد ColEnter ايجاد كنم
    ضمن اينكه از PickListا هم نميتوانم استفاده كنم. فقط و فقط بايد دراخل رويداد ذكر شده ايجاد شود.
    آيا امكان دارد؟
    با تشكر مجدد

  4. #4

    نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid

    احتمالا باید بشه !
    ولی رویداد ColExit رو هم باید واسش کد بنویسی !
    تو کدت رو بنویس اگه مشکل داشتی اینجا بزار شاید تونستیم کمکتون کنیم
    خواستن ، توانتستن است !!!

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1384
    محل زندگی
    مشهد مقدس
    پست
    89

    نقل قول: گذاشتن 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;

  6. #6
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814

    با سلام

    بر روی ستون مورد نظر در DBGrid کلیک کنید و سپس داخل خاصیت PickList ان مقادیر خورد را وارد کنید .
    حالا هر وقت وارد یکی از سلولهای ستون مورد نظر وارد شوید Combobox نمایش داده می شود.
    موفق باشید

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1384
    محل زندگی
    مشهد مقدس
    پست
    89

    نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid

    بر روی ستون مورد نظر در DBGrid کلیک کنید و سپس داخل خاصیت PickList ان مقادیر خورد را وارد کنید .
    حالا هر وقت وارد یکی از سلولهای ستون مورد نظر وارد شوید Combobox نمایش داده می شود.
    موفق باشید
    عرض كردم كه بدون PickList و Ehlib , ...
    ممنون

  8. #8
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    54

    نقل قول: گذاشتن 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;


  9. #9
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814

    با سلام

    نقل قول نوشته شده توسط بهمن بهار مشاهده تاپیک
    عرض كردم كه بدون PickList و Ehlib , ...
    ممنون
    برای چه نمی خواهید از این روش استفاده کنید؟
    آیا مشکلی را برای شما ایجاد می کند؟
    موفق باشید

  10. #10
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Cave
    پست
    550

    نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid

    روش taha خیلی عالیه من هم همین رو پیشنهاد میکنم.

  11. #11
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1384
    محل زندگی
    مشهد مقدس
    پست
    89

    نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid

    با سلام
    در روش Taha در واقع يك Combo در سلول نقاشي ميشود ولي بايد حتما ايجاد شود . حالا چرا ؟
    اول آنكه من در واقع كامپوننتي كه از ComboBox وراثت گرفته درست كرده ام كه مشخصات خاصي دارد و بايد آنرا در سلول گريد بگذارم.
    دوم آنكه مدير عامل ميخواهد حتما يك Object Orented باشد و حتما حتما داخل سلول ايجاد شود نه نقاشي و ...

    ممنونم

  12. #12
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    54

    نقل قول: گذاشتن 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. یه کم فکر کنیم، اگه حل نشد ...
    3. کلمات کلیدی خواستمون رو در بیاریم
    4. با استفاده از کلمات کلیدی در سایت جستجو کنیم اگه پیدا نشد ...
    5. عنوان درست برای سوالمون انتخاب کنیم
    6. اینو بدونیم که دیگران توی ذهن و جلسات ما! نیستن که بدونن توش چی می گذره، چی می خواهیم و ...، و ما فقط با لغات هستش که اونا رو می تونیم مطلع و آگاه کنیم، پس ...
    7. سوالمون رو دقیق و با تمام فرضیات و شرایط بیان کنیم و اگر نمونه کد، منبع و ... هم داریم بذاریم
    8. اگه جواب گرفتیم فبه المراد، اگر نگرفتیم ...
    9. بدونیم که دیگرانی که وقت میذارن و جواب (حتی جوابی که مدنظر ما نیست و یا غلط! ) میدن، به ما دارن لطف می کنند و هیچ بایدی و وظیفه ای در جواب دادنشون نیست.




    پی نوشت!
    1- اینایی که اون بالا گفتم همشو به خودت برندوری، چون یه سریش کاملا مطالب کلی برای همه ماست.
    2- ایضاً اینایی که اون بالا گفتم همشو رو هم به من! برندوری، چون من خیلی بیسوات تر از اونم که ...
    آخرین ویرایش به وسیله taha : پنج شنبه 09 خرداد 1387 در 12:04 عصر

  13. #13
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1384
    محل زندگی
    مشهد مقدس
    پست
    89

    نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid

    شما ببخشيد
    ذكات علم به آموختنش است
    يا حق

  14. #14
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1384
    محل زندگی
    مشهد مقدس
    پست
    89

    نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid

    با سلان
    لطفا دوستان مساعدت كرده اينجانب را راهنمايي كنند. آيا اصلا امكان پذير است ؟

  15. #15
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1384
    محل زندگی
    مشهد مقدس
    پست
    89

    نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid

    فهميدم
    نمي شه !!!!!!!!!!!.

  16. #16

    نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid

    با سلام خدمت دوستان گرامي
    من با اين فايلي كه در ضميمه گذاشته ام كار كردم و به خوبي جواب مي دهد.
    با تشكر
    --------------------------------------------------------------------------------------------
    به جاي اينكه سعي كنيد جاي كسي را بگيريد ، تلاش كنيد جاي واقعي خود را بيابيد.
    فایل های ضمیمه فایل های ضمیمه

  17. #17

    نقل قول: گذاشتن ComboBox در يكي از سلولهاي DBGrid

    سلام . چرا وقتی کامپونت های آماده است خودتون رو درگیر کد نویسی می کنید که باعث افزایش خطا و درد سر برنامه بشه .
    کامپونت Ehlib Full Version 3.4 نیاز شما رو رفع می کنه
    توی سایت در این زمینه جستو کنید

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •