PDA

View Full Version : مبتدی: سئوال در باره DBgrid



DavoodDavoodDavood
پنج شنبه 21 آذر 1392, 14:24 عصر
سلام ، یه بانک کوچیک داریم (توی SQL) میخام بگم که اگه روی DGgrid کلیک شد(1) یا دبل کلیک شد(2) یا با کلیدهای جهت بالا(3) پایین(4) شدیم ، دیتاشو توی چنتا label بنویسه ، راهی هست که این 4تا کار رو باهم چک کنم ؟ الان به این صورت نوشتم که :

procedure TForm1.DBGrid1CellClick(Column: TColumn);
دستور 1
دستور 2
دستور 3
procedure TForm1.DBGrid1DblClick(Sender: TObject);
دستور 1
دستور 2
دستور 3
procedure TForm1.DBGrid1EditButtonClick(Sender: TObject);
دستور 1
دستور 2
دستور 3
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
دستور 1
دستور 2
دستور 3
اینجوری هم کارم راه می افته ولی خیلی بی ریخته ، طول برنامه هم الکی زیاد میشه ، ضمنا" دستوراتی که باید انجام بشه توی هر 4 فرخوانی مثل همه

hadisalahi2
پنج شنبه 21 آذر 1392, 15:41 عصر
یک پروسیجر بنویس با همون پارامتر Sender و بعد به همه این رویداد ها نسبت بده
احتیاجی نیست ، برای هر رویداد یک تیکه کد رو کپی پیست کنی

SayeyeZohor
جمعه 22 آذر 1392, 23:00 عصر
پیرو سخنان hadisalahi2 خان

procedure TForm1.newProc(Sender: TObject);
Begin
دستور 1
دستور 2
دستور 3
End;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
newProc(nil);
end;

procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
newProc(nil);
end;

procedure TForm1.DBGrid1EditButtonClick(Sender: TObject);
begin
newProc(nil);
end;

procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
begin
newProc(nil);
end;

یوسف زالی
جمعه 22 آذر 1392, 23:24 عصر
سلام. نیازی به همه این رویدادها نیست. این طوری باید برای ارسال مسیج هم رویداد کال شه. کافیه در رویداد OnAfterScroll دیتاست مربوطه کدتون رو بنویسید.
تحت هر شرایطی اگر ردیف فعال تغییر کنه رویداد کال می شه.

DavoodDavoodDavood
شنبه 23 آذر 1392, 18:03 عصر
ممنون بابت پاسخ عزیزان ... دمتون گرم ... جوونی رو از مرگ نجات دادید !! :بوس: