Forum > Arabic
معرفة أدوات النموذج
pascal111:
--- Quote from: nouzi on August 11, 2021, 04:17:28 pm ---قبل تقديم اي ملاحظة ، الاول انشر الكود في أحد المواقع المخصصة إذا كان هذا ممكن لي يتسنى لي مراجعته مراجعته
--- End quote ---
تقريباً الأخ Al-Eid أدرج ملف الكود في مرفقات البوست (المشاركة)
Al-Eid:
--- Quote from: nouzi on August 11, 2021, 04:17:28 pm ---قبل تقديم اي ملاحظة ، الاول انشر الكود في أحد المواقع المخصصة إذا كان هذا ممكن لي يتسنى لي مراجعته مراجعته
--- End quote ---
هذا كود الوحدة التي تحتوي على الدوال
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---unit Unit2; {$mode objfpc}{$H+} interface uses Classes, SysUtils,Forms,Controls, Graphics, Dialogs, StdCtrls; var arrNumbercontrol: array of Integer;function FCountEdit(varform: TWinControl): Boolean ;function FCountEdit2(varform: TWinControl): Boolean ;function FCountLabel(varform: TWinControl): Boolean ;function FCountCombobx(varform: TWinControl): Boolean ;function FCountCombobx2(varform: TWinControl): Boolean ;function FCountButton(varform: TWinControl): Boolean ;implementation // متغير لإستقبال Formfunction FCountEdit(varform: TWinControl): Boolean; var i :Integer ; // i متغير للحلقة ss :TStrings; // متغير للوائح النصية لحفظ رقم الأداة begin ss := TStringList.Create ; for i := 0 to varform.ComponentCount-1 do Begin // هذه الحلقة تقوم بالبحث عن الأدواة edit // وسط أدوات الـفورم if varform.Components[i] is TEdit then Begin // عند وجود أداة من نوع Edit يضيف رقم الترتيب للأداة في لوحة النصوص ss.Add(inttostr(i)); end end; if ss.Count > 0 then Begin; // إذاكان هناك عددالأسطر أكثر من 0 يعني هناك أداة Edit واحدة على الأقل // تحديد طول المصفوفة حسب عدد الأدوات Edit SetLength(arrNumbercontrol,ss.Count) ; for i:= 0 to ss.Count-1 do Begin arrNumbercontrol[i]:= strtoint(ss.Strings[i]); // نضع في خلايا المصفوفة أرقام الترتيبية لأدوات Edit end; ss.Free; Result :=True ; end else Begin ss.Free; Result :=False; end; end; function FCountEdit2(varform: TWinControl): Boolean;var i :Integer ; // i متغير للحلقة ss :TStrings; // متغير للوائح النصية لحفظ رقم الأداة begin ss := TStringList.Create ; for i := 0 to varform.ControlCount-1 do Begin // هذه الحلقة تقوم بالبحث عن الأدواة edit // وسط أدوات الـفورم if varform.Controls[i] is TEdit then Begin // عند وجود أداة من نوع Edit يضيف رقم الترتيب للأداة في لوحة النصوص ss.Add(inttostr(i)); end end; if ss.Count > 0 then Begin; // إذاكان هناك عددالأسطر أكثر من 0 يعني هناك أداة Edit واحدة على الأقل // تحديد طول المصفوفة حسب عدد الأدوات Edit SetLength(arrNumbercontrol,ss.Count) ; for i:= 0 to ss.Count-1 do Begin arrNumbercontrol[i]:= strtoint(ss.Strings[i]); // نضع في خلايا المصفوفة أرقام الترتيبية لأدوات Edit end; ss.Free; Result :=True ; end else Begin ss.Free; Result :=False; end; end; function FCountLabel(varform: TWinControl): Boolean;var i :Integer ; ss :TStrings;begin ss := TStringList.Create ;for i := 0 to varform.ComponentCount-1 do Begin if varform.Components[i] is TLabel then Begin ss.Add(inttostr(i)); endend; if ss.Count > 0 then Begin; SetLength(arrNumbercontrol,ss.Count) ;for i:= 0 to ss.Count-1 doBegin arrNumbercontrol[i]:= strtoint(ss.Strings[i]);end; ss.Free; Result :=True ;endelseBegin ss.Free; Result :=False;end; end; function FCountCombobx(varform: TWinControl): Boolean;var i :Integer ; ss :TStrings;begin ss := TStringList.Create ;for i := 0 to varform.ComponentCount-1 do Begin if varform.Components[i] is TCombobox then Begin ss.Add(inttostr(i)); endend; if ss.Count > 0 then Begin; SetLength(arrNumbercontrol,ss.Count) ;for i:= 0 to ss.Count-1 doBegin arrNumbercontrol[i]:= strtoint(ss.Strings[i]);end; ss.Free; Result :=True ;endelseBegin ss.Free; Result :=False;end; end; function FCountCombobx2(varform: TWinControl): Boolean;var i :Integer ; ss :TStrings;begin ss := TStringList.Create ;for i := 0 to varform.ControlCount -1 do Begin if varform.Controls[i] is TCombobox then Begin ss.Add(inttostr(i)); endend; if ss.Count > 0 then Begin; SetLength(arrNumbercontrol,ss.Count) ;for i:= 0 to ss.Count-1 doBegin arrNumbercontrol[i]:= strtoint(ss.Strings[i]);end; ss.Free; Result :=True ;endelseBegin ss.Free; Result :=False;end; end; function FCountButton(varform: TWinControl): Boolean;var i :Integer ; ss :TStrings;begin ss := TStringList.Create ;for i := 0 to varform.ComponentCount-1 do Begin if varform.Components[i] is TButton then Begin ss.Add(inttostr(i)); endend; if ss.Count > 0 then Begin; SetLength(arrNumbercontrol,ss.Count) ;for i:= 0 to ss.Count-1 doBegin arrNumbercontrol[i]:= strtoint(ss.Strings[i]);end; ss.Free; Result :=True ;endelseBegin ss.Free; Result :=False;end; end; end.
هذا كود أزار لمنداة الدوال
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} --- procedure TForm1.Button3Click(Sender: TObject);var i : integer; // متغير للحلقةbegin if FCountEdit(form1) then // إذا أسترجعت الدالة قيمة True يعني وجود أداة Edit واحدة على الأقل Begin for i := 0 to high(arrNumbercontrol) do // حلقة عدد حلاقتها بعدد edit الموجودة Begin // إطهار رقم الترتيبي للاداة في خاصيتها Text Showmessage(Tedit(form1.Components[arrNumbercontrol[i]]).Name ) ; end end; end; procedure TForm1.Button4Click(Sender: TObject);var i : integer;begin if FCountButton(form1) then Begin for i := 0 to high(arrNumbercontrol) do Begin Showmessage(Tbutton(form1.Components[arrNumbercontrol[i]]).Caption) ; end end;end; procedure TForm1.Button5Click(Sender: TObject);var i : integer;begin if FCountLabel(form1) then Begin for i := 0 to high(arrNumbercontrol) do Begin showmessage(form1.Components[arrNumbercontrol[i]].Name ); end end;end; procedure TForm1.Button6Click(Sender: TObject); var i : integer; begin if FCountCombobx(form1) then Begin for i := 0 to high(arrNumbercontrol) do Begin showmessage(form1.Components[arrNumbercontrol[i]].Name ); end end;end; procedure TForm1.Button8Click(Sender: TObject); var i : integer; begin if FCountEdit2(form1) then Begin for i := 0 to high(arrNumbercontrol) do Begin Showmessage(Tedit(form1.Controls[arrNumbercontrol[i]]).Name) ; end end;end; procedure TForm1.Button9Click(Sender: TObject); var i : integer; begin if FCountCombobx2(form1) then Begin for i := 0 to high(arrNumbercontrol) do Begin showmessage(form1.Components[arrNumbercontrol[i]].Name ); end end;end;
nouzi:
--- Quote ---
تقريباً الأخ Al-Eid أدرج ملف الكود في مرفقات البوست (المشاركة)
--- End quote ---
شكرا لك اعرف ذالك ، لكني الان ادير اغلب اعمالي من المحمول
nouzi:
من وجهة نظري هذه الشفرة سيئة ، مزلت قادر على تحسين الكود لا استطيع ان اضيف أكثر لان حاسوبي معطل الان لكن استطيع توجيه بعض النصائح حول اذا ردت ذالك ،وإذا اطلع الاخ زاهر على الكود وقدم النصح ستكون اكبر محضوض في المنتدى اليوم :D
pascal111:
--- Quote from: nouzi on August 12, 2021, 04:26:26 pm ---
--- Quote ---
تقريباً الأخ Al-Eid أدرج ملف الكود في مرفقات البوست (المشاركة)
--- End quote ---
شكرا لك اعرف ذالك ، لكني الان ادير اغلب اعمالي من المحمول
--- End quote ---
حسناً! لكـ مُطلق الحُريّة
Navigation
[0] Message Index
[#] Next page
[*] Previous page