المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
السلام عليكم ورحمة الله
اخواني هنا سؤال حول الدورة وبلأخص درس رقم اثنين...
اولاّ
ما مهمت هذا الكود form2.ShowModal; ؟
وما الفرق بينه وبين form2.visible:= true; ؟
ثانيا...
وجهتني مشكلة مع form2.ShowModal; وهي انها تغلق البرنامج الى النفذة الثانية... يعني لا استطيع الرجوع الى فورم 1 الّى اذا اغلقت فورم 2... وللعلم هذه المشكلة لا تظهر عندي اذا استخدمد ال form2.visible := true; والله تعلى اعلم... يعني كيف احل هذه المشكلة بارك الله لكم ؟
بلإضافة الى سؤال بجانب الموضوع...
وهو متى سيأتي ال HomeWork الثاني ومتى سيأتي حل ال HomeWork الأول ...
نعم ... بارك الله بكم مرة اخرى.
المشاركات : 452
المواضيع 69
:
: 0
الإنتساب : Feb 2008
بسم الله الرحمن الرحيم
Form.ShowModal : هي
دالة موجودة في وحدة
Forms لاستدعاء و إظهار نافذة مشروع، دون السماح للرجوع لنافتها الأساسية بالنقر خارجها.
PHP كود :
function TCustomForm.ShowModal: Integer;
var
WindowList: Pointer;
SaveFocusCount: Integer;
SaveCursor: TCursor;
SaveCount: Integer;
ActiveWindow: HWnd;
begin
CancelDrag;
if Visible or not Enabled or (fsModal in FFormState) or
(FormStyle = fsMDIChild) then
raise EInvalidOperation.Create(SCannotShowModal);
if GetCapture <> 0 then SendMessage(GetCapture, WM_CANCELMODE, 0, 0);
ReleaseCapture;
Application.ModalStarted;
try
Include(FFormState, fsModal);
ActiveWindow := GetActiveWindow;
SaveFocusCount := FocusCount;
Screen.FSaveFocusedList.Insert(0, Screen.FFocusedForm);
Screen.FFocusedForm := Self;
SaveCursor := Screen.Cursor;
Screen.Cursor := crDefault;
SaveCount := Screen.FCursorCount;
WindowList := DisableTaskWindows(0);
try
Show;
try
SendMessage(Handle, CM_ACTIVATE, 0, 0);
ModalResult := 0;
repeat
Application.HandleMessage;
if Application.FTerminate then ModalResult := mrCancel else
if ModalResult <> 0 then CloseModal;
until ModalResult <> 0;
Result := ModalResult;
SendMessage(Handle, CM_DEACTIVATE, 0, 0);
if GetActiveWindow <> Handle then ActiveWindow := 0;
finally
Hide;
end;
finally
if Screen.FCursorCount = SaveCount then
Screen.Cursor := SaveCursor
else Screen.Cursor := crDefault;
EnableTaskWindows(WindowList);
if Screen.FSaveFocusedList.Count > 0 then
begin
Screen.FFocusedForm := Screen.FSaveFocusedList.First;
Screen.FSaveFocusedList.Remove(Screen.FFocusedForm);
end else Screen.FFocusedForm := nil;
if ActiveWindow <> 0 then SetActiveWindow(ActiveWindow);
FocusCount := SaveFocusCount;
Exclude(FFormState, fsModal);
end;
finally
Application.ModalFinished;
end;
end;
Form.Show : هي
إجرائية إظهار نافذة دون تحديدات النقر السابقة الذكر.
PHP كود :
procedure TCustomForm.Show;
begin
Visible := True;
BringToFront;
end;
Visible := True : هي إعطاء
خاصية Visible قيمة
Boolean إما
True أو
False يمكننا استعمالها لإظهار نافذة كانت مخفية مسبقا.
الغرض من استعمال ShowModal : هو عدم السماح بالرجوع إلى النافذة التي استدعيت منها
بالنقر خارجها إلا بإغلاقها، يعني إذا أردت أن لا تختفي نوافذ معينة من مشروعك وراء النوافذ التي استدعيت منها استعمل ShowModal.
بالتوفيق إن شاء الله
المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
نعم بارك الله فيك اخي على الإجابة...
يعني معليش سامحني فأنا كثير السؤال والله المستعان
المشاركات : 452
المواضيع 69
:
: 0
الإنتساب : Feb 2008
إقتباس :يعني معليش سامحني فأنا كثير السؤال والله المستعان
كل سؤال
مفيد و
غير مكرر سنحاول الاجابة عليه اخي العزيز بقلب رحب

حتى لو تأخرنا قيلا في و ضع الاجابة - مشاغل الحياة
بالفائدة ان شاء الله
المشاركات : 429
المواضيع 28
:
: 0
الإنتساب : May 2008
strelitzia كتب :كل سؤال مفيد و غير مكرر سنحاول الاجابة عليه اخي العزيز بقلب رحب
حتى لو تأخرنا قيلا في و ضع الاجابة - مشاغل الحياة
بالفائدة ان شاء الله
بارك الله فيك أخينا ، و جزاك الله ألف خير .