View Full Version : سوال: کنترل خارج شدن از داخل While
khorsandreza
دوشنبه 19 مرداد 1388, 13:07 عصر
سلام
من یک جدول با N تا رکورد دارم داخل دستورات زیر را در رویداد کلید قرار دادم حال میخواهم با فشردن کلید دیکر عملیات قطع شود
While Not MainQ.Eof Do
Begin
..
.
.
.
.
MainQ.Next;
End
shervin farzin
دوشنبه 19 مرداد 1388, 13:46 عصر
سلام
يه متغيير سراسري از نوع Boolean در نظر بگيريد، اين متغيير قرار تعيين كنه كه حلقه ادامه پيدا
ميكنه يا نه. در ابتداي كار مقدار اون رو True قرار بديد، بعد روي دكمه دوم كه باعث خرئج از حلقه
ميشه كدي بنويسيد كه مقدار اين متغيير رو به False تغيير بده. در انتها كد حلقه شما به شكل زير
تغيير پيدا ميكنه :
while Some_Condition do
begin
...
...
...
Application.ProcessMessages;
if not Boolean_Variable then Break;
end;
موفق باشيد.
khorsandreza
دوشنبه 19 مرداد 1388, 16:43 عصر
سلام
يه متغيير سراسري از نوع Boolean در نظر بگيريد، اين متغيير قرار تعيين كنه كه حلقه ادامه پيدا
ميكنه يا نه. در ابتداي كار مقدار اون رو True قرار بديد، بعد روي دكمه دوم كه باعث خرئج از حلقه
ميشه كدي بنويسيد كه مقدار اين متغيير رو به False تغيير بده. در انتها كد حلقه شما به شكل زير
تغيير پيدا ميكنه :
while Some_Condition do
begin
...
...
...
Application.ProcessMessages;
if not Boolean_Variable then Break;
end;
موفق باشيد.
ممنون از لطفتان که پاسخ دادید
مشکل اصلی اینه وقتی تو حلقه While قرار مگیره اجازه نمی ده از کلید استفاده بکند و اگر و سیستم بطور کامل قفل میشه
ببنید واضح تر عرض کنم وقتی تو هر حلقه ای چه For /While/repeat هستی بتونی کار دیگه ای هم انجام بدی
khorsandreza
دوشنبه 19 مرداد 1388, 17:28 عصر
ضمن تشکر مجدد shervin farzin
مشکل من تقریبا حل شد میخواستم بدانم این دستور برای جی هست و چکار انجام میدهد
Application.ProcessMessages
اگه بخواهیم شکل مکان نما از حالت ساعت شنی خارج شود چکار باید کرد من Cursor := crArrow; دستور مینویسم ولی هیج اتفاقی حاصل نمیشود همان ساعت شنی ظاهر میگردد
vcldeveloper
سه شنبه 20 مرداد 1388, 00:20 صبح
میخواستم بدانم این دستور برای جی هست و چکار انجام میدهد
به برنامه این فرصت را میده که پیام هایی که در صف پیام های برنامه منتظر هستند را پردازش کنه. از جمله این پیام ها پیام های مربوط به رسم کنترل ها بر روی فرم یا کلیک کردن بر روی کنترل هستند.
اگه بخواهیم شکل مکان نما از حالت ساعت شنی خارج شود چکار باید کرد من Cursor := crArrow; دستور مینویسم ولی هیج اتفاقی حاصل نمیشود همان ساعت شنی ظاهر میگردد
کد حلقه را داخل یک بلوک try..finally بنویسید، در ابتدای ورود به بلوک (قبل از ورود به حلقه) مکان نما را تبدیل به ساعت شنی کنید، و در بخش finally بلوک مکان نما را به حالت عادی برگردانید.
khorsandreza
سه شنبه 20 مرداد 1388, 01:22 صبح
آقای کشاورز سلام
منظورتان کد حلقه را داخل Try .. Finally من به هر دو شکل نوشتم جواب نداد
Cursor := crHourGlass;
try
While Not MainQ.Eof Do
Begin
...
...
...
MainQ.Next;
End;
finally
Cursor := crArrow;
end;
دستور دوم بشکل زیر
Cursor := crHourGlass;
While Not MainQ.Eof do
Try
....
...
...
MainQ.Next;
Finally
Cursor := crArrow;
End;
شکل کلی دستورت رویداد من
Procedure TConvertAcc2SqlForm.InstallPersnalData;
var
i,r:integer;
PChild: TPishraftForm;
Begin
PChild := TPishraftForm.Create(Application);
PChild.PBar.Max := MainQ.RecordCount;
_CancelWork := True;
PChild.SetFocus;
Cursor := crHourGlass;
While Not MainQ.Eof do
Begin
Try
inc(I) ;
PChild.Label3.Caption := IntToStr(I);
PChild.PBar.StepIt;
SP_IN300.Close;
SP_IN300.Prepare;
SP_IN300.Params[1].AsString := MainQcesr.AsString;
SP_IN300.Params[2].AsString := MainQserl.AsString;
SP_IN300.ExecProc;
SP_IN300.UnPrepare;
MainQ.Next;
Application.ProcessMessages;
if Not _CancelWork Then Break;
Finally
Cursor := crArrow;
End;
End;
End;
khorsandreza
یک شنبه 25 مرداد 1388, 00:45 صبح
اقای کشاورز سلام
در صورت امکان به پست شماره 6# نگاه کنید و بفرمائید اشکال کار کجاست؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.