delphi4arab منتديات دلفي للعرب
الخروج من Function او Procedure عندما يتحقق شرط ما - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : الخروج من Function او Procedure عندما يتحقق شرط ما (/showthread.php?tid=3037)



الخروج من Function او Procedure عندما يتحقق شرط ما - abdelmalek - 27-04-2011

السلام عليكم ورحمة الله وبركاته

كيف يمكنني الخروج من Function او Procedure عندما يتحقق شرط ما؟؟!
لتوضيح أكثر :
عندي هاته الدالة :

PHP كود :
Function TestVide:Boolean;
Begin
Result
:=True;

  If 
Edit1.text = ''then
     Begin
       ShowMessage
('edit1 vide');
       
Result:=False;
     
End;
    
  If 
Edit2.text = ''then
     Begin
       ShowMessage
('edit2 vide');
       
Result:=False;
     
End;
    
  If 
Edit3.text = ''then
     Begin
       ShowMessage
('edit3 vide');
       
Result:=False;
     
End;

end; 

عندا تحقق الشرط الاول يظهر المساج تم يتم الخروج من Function وان لم يتحقق يتابع وهكذا
حاولت استخدام الامر Exit ولكن لم يجدي نفعا.

PHP كود :
Function TestVide:Boolean;
Begin
Result
:=True;

  If 
Edit1.text = ''then
     Begin
       ShowMessage
('edit1 vide');
       
Result:=False;
       Exit;
     
End;
    
  If 
Edit2.text = ''then
     Begin
       ShowMessage
('edit2 vide');
       
Result:=False;
       Exit;
     
End;
    
  If 
Edit3.text = ''then
     Begin
       ShowMessage
('edit3 vide');
       
Result:=False;
       Exit;
     
End;

end; 
في امان الله


الخروج من Function او Procedure عندما يتحقق شرط ما - Agmcz - 27-04-2011

السلام عليكم

انا مبتدأ وأردت أن أساعد لكن دالة تعمل عادي والله أعلم والأمر exit يعمل

كود :
Function TestVide(a, b, c: string):Boolean; Begin Result:=True; If a = '' then Begin ShowMessage('edit1 vide'); Result:=False; Exit; End; If b = '' then Begin ShowMessage('edit2 vide'); Result:=False; Exit; End; If c = '' then Begin ShowMessage('edit3 vide'); Result:=False; Exit; End; end; procedure TForm1.Button1Click(Sender: TObject); begin TestVide(Edit1.Text, Edit2.Text, Edit3.Text); end;



الخروج من Function او Procedure عندما يتحقق شرط ما - abdelmalek - 27-04-2011

وعليكم السلام ورحمة الله وبركاته

إقتباس :انا مبتدأ وأردت أن أساعد لكن دالة تعمل عادي والله أعلم والأمر exit يعمل
نحن نتقبل الـHelp من ايي شخص كان بارك الله فيك اخي الكريم rami .
لكن المشكلة لم تنحل بعد.
للمزيد من التوضيح :
عندا تنفيذ الدالة تمر على الشرط الاول إذ كان متحقق تظهر الميسج وتخرج وإن لم يكن كدالك تنتقل الى الشرط الثاني إن اكان متحقق تظهر الميسج وتخرج وإن لم يكن كدالك تمر الى الشرط الثالث و هكذا ...
بارك الله فيكم وشكرا لكم .



الخروج من Function او Procedure عندما يتحقق شرط ما - seiffo - 27-04-2011

السلام عليكم
لقد تحققت من الدالة وهي تعمل عادي اخي عبد المالك مع العلم انني استخدم delphi 2010


الخروج من Function او Procedure عندما يتحقق شرط ما - kachwahed - 27-04-2011

وعليكم السلام ورحمة الله وبركاته
PHP كود :
function testvide:boolean;
begin
  result
:=true;
  if 
edit1.text = ''then
     begin
       showmessage
('edit1 vide');
       
result:=false;
       exit;
     
end

  
else if edit2.text = ''then
     begin
       showmessage
('edit2 vide');
       
result:=false;
       exit;
     
end

  
else if edit3.text = ''then
     begin
       showmessage
('edit3 vide');
       
result:=false;
       exit;
     
end;
end; 
بالتوفيق عبد المالك.



الخروج من Function او Procedure عندما يتحقق شرط ما - abdelmalek - 27-04-2011

بارك الله فيك إستاذي كش وحد
في الكود الذي دكرته انت يمكننا نزع الامر exit (ليست له فائدة على ما اضن) .
هل هذا صحيح ؟



الخروج من Function او Procedure عندما يتحقق شرط ما - mohfa - 27-04-2011

اخي عبد المالك ولمادا لاتكون بطريقة بسيطة :
PHP كود :
Procedure IsVide(Const AControl:TEdit;Msg:String);
Var
IsVide:Boolean;
begin
IsVide
:=False;//---- False for default
IsVide:=Trim(AControl.text)='';
if 
IsVide then
begin
ShowMessage
( Format('%s %s ',[AControl.Name,MSG]));
//ShowMessage(AControl.Name+' '+MSG);
exit;
end;
end;
Procedure IsAllVide; // All Edits
begin
isVide
(Form1.edit1,'is Vide');
IsVide(Form1.edit2,'is Vide');
IsVide(Form1.edit3,'is Vide');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
IsAllVide
;
end; 

والسلام عليكم


الخروج من Function او Procedure عندما يتحقق شرط ما - abdelmalek - 27-04-2011

بارك الله فيك اخي mohfa على هاته الطريقة المميزة ولكن لا تفيذ في حالتنا هاته

1- يجب ان تكون function ترجع قيمة boolean

2-
إقتباس :للمزيد من التوضيح :
عندا تنفيذ الدالة تمر على الشرط الاول إذ كان متحقق تظهر الميسج وتخرج وإن لم يكن كدالك تنتقل الى الشرط الثاني إن اكان متحقق تظهر الميسج وتخرج وإن لم يكن كدالك تمر الى الشرط الثالث و هكذا ...
بارك الله فيك على التواصل(طريقتك تحتوي على أفكار مميزة سوف نستثميرها في المستقبل ههههه)
بالتوفيق للجميع



الخروج من Function او Procedure عندما يتحقق شرط ما - mohfa - 27-04-2011

إقتباس :
1- يجب ان تكون function ترجع قيمة boolean

يمكن تحويلها ل Function بكل سهولة .

PHP كود :
Function IsVide(Const AControl:TEdit;Msg:String):Boolean;
begin
Result
:=False;//---- False for default
Result:=Trim(AControl.text)='';
if 
Result then
begin
ShowMessage
( Format('%s %s ',[AControl.Name,MSG]));
//ShowMessage(AControl.Name+' '+MSG);
exit;
end;
end; 

انت و خبرتك .

والسلام عليكم ورحمة الله وبركاته