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

نام تاپیک: قراردادن یک یا چند دکمه در هر کدام از رکوردهای DBgird

  1. #1

    قراردادن یک یا چند دکمه در هر کدام از رکوردهای DBgird

    دوستان چطور میشه در Dbgrid واسه هر رکورد یک فیلد اضافه کرد که در هرکدوم از اونها مثلا دکمه ای برای حذف اون رکورد و دیگر اعمال باشه.

  2. #2
    کاربر دائمی آواتار shayan_delphi
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    پست
    274
    سلام
    از Popup Menu استفاده کنید تا با کلیک راست روی هر رکورد بتونید اعمال مورد نظر را انجام بدید

  3. #3
    من میخوام واسه هر رکورد یه فیلد جداگانه داشته باشم و در اون فیلد Button های من نمایش داده بشن (مثلا SpeedButton که هم عکس بگیره و کوچیک و جمع و جور باشه) و کاربر با کلیک روی اونا عمل مورد نظر رو انجام بده.

  4. #4
    می تونید یه ستون اضافی به DBGrid اضافه کنید و یه Button در اون رسم کنید. در OnClick اون Button هم باید کد مربوط به تغییرات در رکورد جاری را بنویسید. فکر کنم قبلا در سایت در مورد نمایش سایر کنترل ها در DBGrid بحث شده.

  5. #5
    آقای کشاورز.
    میشه لطف کنید یک مثال در این مورد برای من بزنید ؟.
    ممنون میشم .

  6. #6
    سلام،
    می بخشید با تاخیر جواب میدم...
    برای DBGrid مورد نظر یک ستون جدید تعریف بکنید مقدار ActionColIndex در کد زیر را بر روی شماره Index اون ستون تنظیم کنید:

    const
    ActionColIndex = 3;
    type
    THackedDBGrid = class(TDBGrid);
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Button := TButton.Create(Self);
    with Button do
    begin
    Parent := self;
    Visible := False;
    Caption := 'Do Action';
    TabStop := True;
    OnClick := GridActionBtnClick;
    end;
    end;
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
    DataCol: Integer; Column: TColumn; State: TGridDrawState);
    var
    GridCurrentRow,
    DbCurrentRow : integer;
    begin
    GridCurrentRow := THackedDBGrid(Sender).Row;
    DbCurrentRow := AdoTable1.RecNo;
    if DataCol = ActionColIndex then
    if GridCurrentRow = DbCurrentRow then
    begin
    with Button do
    begin
    Left := Rect.Left + DBGrid1.Left + 2;
    Top := Rect.Top + DBGrid1.top + 2;
    Height := Rect.Bottom - Rect.Top;
    Width := Rect.Right - Rect.Left;
    Visible := True;
    end;
    end;
    end;
    procedure TForm1.GridActionBtnClick(Sender: TObject);
    begin
    ShowMessage('Button is clicked');
    end;

تاپیک های مشابه

  1. dbgird
    نوشته شده توسط prettynina در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 6
    آخرین پست: جمعه 07 دی 1386, 12:28 عصر
  2. دکمه در dbgird
    نوشته شده توسط رهنورد2 در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 3
    آخرین پست: یک شنبه 23 مهر 1385, 10:20 صبح
  3. تعیین رنگ سطرهای DBGird
    نوشته شده توسط hr_110 در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: دوشنبه 02 آذر 1383, 04:23 صبح
  4. نمایش چند فیلد خاص در DBGird
    نوشته شده توسط یعقوب در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: پنج شنبه 29 مرداد 1383, 14:41 عصر
  5. سوال: درج خودکار تاریخ سیستم در DBGrid
    نوشته شده توسط ali643 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 1
    آخرین پست: سه شنبه 09 دی 1382, 08:14 صبح

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

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