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

نام تاپیک: حلقه رو دی بی گرید (هنگام حذف داده، ارسال، چاپ ..)

  1. #1

    حلقه رو دی بی گرید (هنگام حذف داده، ارسال، چاپ ..)

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


    procedure LoopActionOnDBGrid(DBGrid: TDBGrid; Action: TNotifyEvent; Sender: TObject = nil; ExtraLoopCondition: boolean = true);
    var
    i: integer;
    Loop: boolean;
    DS: TDataSet;
    OldEnableState: boolean;
    begin
    if not Assigned(Action) then
    Exit;

    if not Assigned(DBGrid) then
    Exit;

    if not Assigned(DBGrid.DataSource) then
    Exit;

    if not Assigned(DBGrid.DataSource.DataSet) then
    Exit;

    DS := DBGrid.DataSource.DataSet;

    if DS.RecordCount = 0 then
    Exit;

    if not Assigned(Sender) then
    Sender := DBGrid;

    OldEnableState := not DS.ControlsDisabled;
    DS.DisableControls;

    Loop := (DBGrid.SelectedRows.Count > 0) and ExtraLoopCondition;

    for i := 0 to integer(Loop) * (DBGrid.SelectedRows.Count -1) do
    begin
    if Loop then
    DS.Bookmark := DBGrid.SelectedRows[i];

    Action(Sender);
    end;

    if OldEnableState then
    DS.EnableControls;
    end;


    روش کار به این صورته:
    یک متد تعریف می کنید که کاری که می خواهید بصورت حلقه (یا حتی تکی) انجام بشه، مثل حذف یا ... در اون متد می نویسید.
    بعد در دکمه پروسیجر بالا رو کال می کنید.

    مثال:

    procedure TForm1.Proc(Sender: TObject);
    begin
    ShowMessage(ADOTable1SSN.AsString);
    // or delete data from current row
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    LoopActionOnDBGrid(DBGrid1, Proc);
    end;




    پارامترهای اضافی هم گویای خودش هست.
    حالات مولتی سکلت، و غیر مولتی سکلت، انتخاب نشده و انتخاب شده رو هم می فهمه.
    آخرین ویرایش به وسیله یوسف زالی : سه شنبه 09 مهر 1392 در 23:42 عصر
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

  2. #2

    نقل قول: حلقه رو دی بی گرید (هنگام حذف داده، ارسال، چاپ ..)

    پست اسپم :

    50 60 تا بازدید، چقدر دلگرمی!
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

  3. #3
    کاربر دائمی آواتار persia_hrn
    تاریخ عضویت
    آذر 1390
    محل زندگی
    شیراز
    پست
    145

    نقل قول: حلقه رو دی بی گرید (هنگام حذف داده، ارسال، چاپ ..)

    داداش یوسف جواهری به خدا
    به نظر میاد کسایی که میان توی این فروم بیشتر دنبال جواب سوال های خودشونن تا کسب اطلاعات جدید ، البته مثل شما هم اساتیدی هستن که گنجینه ی اطلاعاتشون رو به اشتراک میذارن .
    شما همیشه کارت درست داداش .
    اگه شما ها نبودید باید رو میزدیم به اجنبی ها ، خدا حفظتون کنه .

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

  1. تغییر رنگ ردیف های خاصی از دیتا گرید هنگام نمایش
    نوشته شده توسط tthenry14plus در بخش C#‎‎
    پاسخ: 3
    آخرین پست: دوشنبه 20 اسفند 1386, 01:05 صبح
  2. خطا هنگام حذف از gridview
    نوشته شده توسط maxpayn2 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: چهارشنبه 03 مرداد 1386, 12:31 عصر
  3. مشکل خواندن یک مقدار از گریدویو هنگام حذف
    نوشته شده توسط hamhik در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: چهارشنبه 29 فروردین 1386, 18:24 عصر
  4. ایجاد پیغام هنگام حذف رکورد
    نوشته شده توسط bps20590 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 2
    آخرین پست: یک شنبه 27 اسفند 1385, 07:44 صبح
  5. پیغام خطا در هنگام حذف رکورد در SQL
    نوشته شده توسط داوود در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 3
    آخرین پست: چهارشنبه 23 آذر 1384, 08:26 صبح

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

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