PDA

View Full Version : چطور رويداد On CalcField را غيرفعال كنم؟



ali_abbasi22145
یک شنبه 29 اردیبهشت 1387, 10:28 صبح
سلام
در برنامه من در 20% موارد احتياج به كدهاي On CalcField كه خودم نوشتم دارم و حال چطور در 80% بقييه موارد رويداد On CalcField را غيرفعال كنم؟

SYNDROME
یک شنبه 29 اردیبهشت 1387, 12:10 عصر
می توانی اینجوری عمل کنی.


ADOQuery1.OnCalcFields := nil;

و یا از یک متغیر استفاده کنید و با False و True کردن آن عمل فوق را انجام دهید.
موفق باشید

ali_abbasi22145
یک شنبه 29 اردیبهشت 1387, 15:06 عصر
مرسي
اما مي خواهم كه برنامه كه اجرا مي شود رويداد On CalcField را غيرفعال كنم و در OnCreat فرم اصلي برنامه نوشتم و كار نكرد آيا در جاي ديگر بايد بنويسم؟

DataMaster
یک شنبه 29 اردیبهشت 1387, 19:53 عصر
فکر کنم خصوصیت AutoCalc یا همچین چیزی باید داشته باشه

SYNDROME
یک شنبه 29 اردیبهشت 1387, 20:56 عصر
مرسي
اما مي خواهم كه برنامه كه اجرا مي شود رويداد On CalcField را غيرفعال كنم و در OnCreat فرم اصلي برنامه نوشتم و كار نكرد آيا در جاي ديگر بايد بنويسم؟
اول در همان محیط طراحی تابع را قطع کنید و هر زمان که لازم داشتید آن را متصل کنید.
موفق باشید

ali_abbasi22145
دوشنبه 30 اردیبهشت 1387, 09:21 صبح
اول در همان محیط طراحی تابع را قطع کنید و هر زمان که لازم داشتید آن را متصل کنید.
موفق باشید
سلام
خوب متوجه نمي شوم. اگر امكان دارد يك مثال دلفي اينجا آپلود كنيد.

m-khorsandi
دوشنبه 30 اردیبهشت 1387, 09:51 صبح
ساده‌تر از اين نميشه!

تو محيط دلفی روی تب Event مربوط به كامپوننت برو،
رويداد OnCalcField پيدا و مقدارش رو پاك كن،
هر جایی اين رويداد رو لازم ديدی در جای مناسب بهش مقدار بده تا به موقع اجرا بشه :



ADODataSet.OnCalcField := PrcOnCalcField

ali_abbasi22145
دوشنبه 30 اردیبهشت 1387, 11:43 صبح
سلام
با تشكر از دوستان
جناب خرسندي عزيز من تا انجايي كه گفتي مي دانم و در رويداد OnCalcField هم گفتم كه يكسري دستورات نوشتم، شايد خوب مشكلم بيان نكردم!
خودم در رويداد OnCreat فرم اصلي برنامه كد زير را نوشتم و مشكل بكل حل شد:

If( Trim(MainForm.Memo1.Lines.Strings[9])= '0' ) then
MainForm.ADOTable1.OnCalcFields := nil
else
MainForm.ADOTable1.OnCalcFields := MainForm.ADOTable1CalcFields;