12-05-2013, 12:32 PM
عبد الهادي كتب :لكن استاذنا الفاضل ، الدالة وان لم تكن دالة تسريع بحتة فهي في معني تنقيص الانتظار، وهذا نوع من التسريع الجزئي
أم تصوري لكلامكم خاطيء فالرجاء التصحيح؟
ولكن خالص الشكر
إقتباس :عند استعمالك لل ProcessMessages فأنت تجبر الكونترول على التحول للقيادة اليدوية[COLOR="Red"]ماذا يعني هذا ؟.. (لن يتم انتظار وصول الرسائل الى الكونترول حتى يتم الانتقال الى الدورة n+1 )
يعني أن الزمن الفاصل بين كل MSG يرسله الوينداوز و ال MSG التالي يساوي بالتقريب صفر (على حسب Loop )
ألق نظرة على ProcessMessage من الوحدة Forms.pas [/COLOR]
PHP كود :
function TApplication.ProcessMessage(var Msg: TMsg): Boolean;
var
Handled: Boolean;
begin
Result := False;
if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then
begin
Result := True;
if Msg.Message <> WM_QUIT then
begin
Handled := False;
if Assigned(FOnMessage) then FOnMessage(Msg, Handled);
if not IsHintMsg(Msg) and not Handled and not IsMDIMsg(Msg) and
not IsKeyMsg(Msg) and not IsDlgMsg(Msg) then
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end
else
FTerminate := True;
end;
end;

