ورود

View Full Version : استفاده از Indy درون Thread



مهران رسا
پنج شنبه 06 خرداد 1389, 00:31 صبح
سلام؛
به دلیل وقفه ای که در GUI برنامه پیش میاد Threadی نوشتم که قرار هست عملیات مربوط به متد TCPClient.Connect در اون انجام بشه (در واقع کنترل موجود بر روی فرم به کلاس Thread پاس داده میشه). همونطور که میدونید با استفاده از Synchronize عملاً استفاده از Thread هیچ فایده ای نداشته . پس اینجا یک سوال پیش میاد که آیا Indy زیر مجموعه کلاس TControl هست یا نه و آیا عدم استفاده از متدهای Synchronize کننده بعداً برنامه رو دچار مشکل نمیکنه ؟

vcldeveloper
پنج شنبه 06 خرداد 1389, 02:14 صبح
آیا Indy زیر مجموعه کلاس TControl هست
خیر. برای اینکه ببینید جد و آبا یک کلاس به کجا ختم میشه، فقط کافیه در تعریف اون کلاس، روی نام کلاس والد آن کلید Ctrl را نگهدارید، و کلیک کنید، تا به تعریف کلاس والد برسید. همین کار را برای کلاس والد هم تکرار کنید، تا نهایتا به TObject برسید. البته راه های دیگه هم هست، مثل استفاده از Class Diagram دلفی، یا استفاده از Help، و غیره.

کامپوننت ها و کلاس های Indy از کلاس TControl که کلاس پایه همه کنترل ها هست، مشتق نمیشند، بلکه از کلاس TComponent یا کلاس های بالاتر از آن مشتق میشند؛ پس مشکلی از جهت استفاده کردن از آنها در یک Thread غیر از Thread اصلی وجود نداره. اصلا اینها ساخته شدند که به همین شکل (داخل Worker Threadها) استفاده بشند.