سلام.
اول لازمه یکم توضیح بدم:
بنده یک کامپوننتی نوشتم مشتق شده از گرید که خاصیت های افزوده شده ای داره.
خواهش می کنم اگر قراره بگید فلان داستان رو نصب کن، آتیش رو دوباره کشف نکن، چرخ ما پنچر شده و اینها، اصلا جواب ندید بهتره.
یکی از خاصیت های اضافه شده قابلیت ذخیره و بازیابی نحوه ی نمایش فیلدها و تعداد اونها و عرض اونها و ... هست.
یکی دیگه داشتن استاتوس Aggregation هست.
لازمه که هربار که دیتاست متصل به گرید Refresh می شه (مثلا در ADO می تونه Close-Open یا Requery باشه) با رفرش شدنش گرید هم اطلاعات رو بازنشانی کنه.
گرید در Protected خودش یک شی DataLink داره که اخبار مربوط به دیتاست رو دریافت می کنه.
با جایگزینی و کنترل این شی می تونیم بفهمیم که دیتاست متصل به گرید چی شد.
اما مشکلات:
1-با هر بار رفرش شدن، بیش از یک بار دیتالینک کال می شه. مثلا با Close-Open شدن ADO سه بار لود انجام می شه که دوبارش غیر ضروری هست.
2-فرض بگیرید که خود باز و بسته شدن دیتاست به کرات انجام شه، ما تنها آخرینش رو لازم داریم. آخرین رو می تونیم مثلا از آخرین رفرش + یک چهارم ثانیه بفهمیم. چه راهی جز تایمر برای این کار سراغ دارید؟ استفاده از Thread رو درون یک کامپوننت چگونه می بینید؟
ممنونم.