PDA

View Full Version : غیرفعال کردن رویداد ADOTable1BeforePost



ali_abbasi22145
چهارشنبه 23 آبان 1386, 12:08 عصر
سلام
من دستورات پایین را در رویداد ADOTable1BeforePost جدول نوشتم و وقتی هرچیز را ذخیره می کنم این پیغام می آید.
حال می خواهم وقتی پرینت می گیرم No_print:=No_print+1 می کنم و No_print یکی از فیلدهای آن جدول ADOTable1 است و این بار رویداد ADOTable1BeforePost فعال نشود و این پیغام را ندهد:do you want save to record



procedure TMainForm.ADOTable1BeforePost(DataSet: TDataSet);
var
Confirm_Save_Record:String;
begin
Confirm_Save_Record:=Trim(MainForm.Memo1.Lines.Str ings[8]);

if MainForm.ADOTable1.Modified then
begin // for ADOTable1.Modified
if ( Confirm_Save_Record = 'with_confirm_save' ) then

If Application.MessageBox('' do you want save to record?,'Warring',MB_YESNO)= IDNO then
begin
MainForm.ADOTable1.Cancel;
Abort ;
end
else
begin
MainForm.ADOTable1.Edit;
MainForm.ADOTable1.FieldByName('last_modified').As DateTime:=Now ;
end

else
begin
MainForm.ADOTable1.Edit;
MainForm.ADOTable1.FieldByName('last_modified').As DateTime:=Now ;
end;


end;// for ADOTable1.Modified

end;

ghabil
چهارشنبه 23 آبان 1386, 13:08 عصر
خب یک فلگ در سطح کلاس بزار مثلا DoBeforePost از نوع boolean بعد اول تابع بزار


if not DoBeforePost then Exit


حالا هر موقع که نخواستی این کد اجرا بشه مقدارش رو false کن هرموقع خواستی اجرا بشه True از اون قشنگتر هم میتونی پراپرتیش بکنی توی روال Getش شرایط رو چک کنی...

ali_abbasi22145
چهارشنبه 23 آبان 1386, 16:08 عصر
سلام
من با متغییرهای در " سطح کلاس " کار نکردم ولی با یک فلاگ مشکل را حل کردم.
حال می خواهم وقتی که از DBComboBox چیزی را انتخاب می کنم قبل از انتخاب یکی از آیتمهای
بازهم ADOTable1BeforePost غیرفعال کنم و بعداز انتخاب آیتم ADOTable1BeforePost فعال شود.
به عبارت دیگر رویدادهای فعال بودن (قبل انتخاب کردن) DBComboBox و فعال نبودن (بعد انتخاب کردن) DBComboBox چیست تا کد نوشته شده خود را در ان بنویسم؟

dkhatibi
پنج شنبه 24 آبان 1386, 06:03 صبح
می تونی از همون روش آقای کوشا استفاده کنید یک متغیز عمومی تعریف کنید و در رویداد OnClick سی مقدار متن قبلب با فعلی را مقایسه کنی در صورتی که تغییر کرده بود DoBeforePost را True کنید.

ali_abbasi22145
پنج شنبه 24 آبان 1386, 10:46 صبح
سلام
1-مشکلم الان فقط می خواهم رویدادهای فعال بودن (قبل انتخاب کردن) DBComboBox و فعال نبودن (بعد انتخاب کردن) DBComboBox چیست تا کد نوشته شده خود را در ان بنویسم؟

2->>خب یک فلگ در سطح کلاس بزار مثلا DoBeforePost از نوع boolean بعد اول تابع بزار

>>کد:
>> if not DoBeforePost then Exitحالا هر موقع که نخواستی این کد اجرا بشه مقدارش رو false کن هرموقع خواستی >>اجرا بشه True از اون قشنگتر هم میتونی پراپرتیش بکنی توی روال Getش شرایط رو چک کنی...

اگر لطف کنید با یک مثال دلفی چیزی که فرمودید اینجا بگذارید بینهایت متشکر می شوم.

ali_abbasi22145
شنبه 26 آبان 1386, 08:55 صبح
سلام
کسی نبود که مشکلم را حل کند

ali_abbasi22145
سه شنبه 29 آبان 1386, 10:09 صبح
سلام
خودم حل کردم اینهم کدش:
procedure TMainForm.Select_card_format_comboClick(Sender: TObject);
begin
MainForm.no_save_Label.Caption := 'True';
MainForm.ADOTable1.Edit;
MainForm.ADOTable1.Post;
MainForm.no_save_Label.Caption := 'False';
end;