PDA

View Full Version : نمایش پنل WAIT.. در زمان هنگ شدن برنامه



Mask
جمعه 30 بهمن 1388, 13:23 عصر
با سلام
در برنامه نیاز به اسکن شبکه دارم.
چون این اسکن یه زمانی رو به خود اختصاص میده برنامه همون لحظه به اندازه 5-6 ثانیه هنگ می کنه و اسکن تموم که شد یرنامه در حالت عادی قرار می گیره.
من مشکل با هنگ شدن برنامه ندارم . فقط می خام تا داره این اسکن تموم میشه یه پنل که روش نوشتم Wait... نمایش داده بشه.
اما مشکل اینجاست چون برنامه میره تو حالت هنگ پنل من درست نمایش داده نمیشه .
با کد زیر یه مقدار بهتر شد و یکم پنل نمایش داده شد اما کافی نیست و من می خام کامل پنل نمایش داده بشه.

Panel1.Visible:=True;
Application.ProcessMessages;
ScanNetworkResources(RESOURCETYPE_DISK, RESOURCEDISPLAYTYPE_SERVER, f_main.suiComboBox1.Items);
Panel1.Visible:=False;
به نظرم باید از thered استفاده کرد. اما نمی خام خودم درگیر ترد کنم.
دوستان راهی در نظر دارن.
ممنون.

Unique
جمعه 30 بهمن 1388, 15:49 عصر
سلام

بهترین کار اینه که شما اسکن را توی یک thread انجام بدی ! اما اگه نمیخوای این کارا بکنی فکرکنم اگه توی رویداد onenter پنل اسکن را انجام بدی ! panel حتما visible شده باشه ! اما برای اینکه رویداد Onenter را فعال کنی این کار را بکن :


panel1.visible := true;
panel1.setfocus();

اگه نشد بازم میشه از timer استفاده کرد !
ولی عزیز من شما با استفاده از thread حتی میتونی جلو hang برنامه را هم بگیری !

mrbm_2007
جمعه 30 بهمن 1388, 20:57 عصر
فکر کنم اگه بعد از visable کردن panel ،فرم برنامه رو refresh کنی مشکل برطرف بشه!