الجمعة، 23 أغسطس 2019

الشافعي - دع الأيام تفعل ما تشاء

 

دَعِ الأَيّامَ تَفعَلُ ما تَشاءُ

وَطِب نَفساً إِذا حَكَمَ القَضاءُ

وَلا تَجزَع لِحادِثَةِ اللَيالي

فَما لِحَوادِثِ الدُنيا بَقاءُ

وَكُن رَجُلاً عَلى الأَهوالِ جَلداً

وَشيمَتُكَ السَماحَةُ وَالوَفاءُ

وَإِن كَثُرَت عُيوبُكَ في البَرايا

وَسَرَّكَ أَن يَكونَ لَها غِطاءُ

تَسَتَّر بِالسَخاءِ فَكُلُّ عَيبٍ

يُغَطّيهِ كَما قيلَ السَخاءُ

وَلا تُرِ لِلأَعادي قَطُّ ذُلّاً

فَإِنَّ شَماتَةَ الأَعدا بَلاءُ

وَلا تَرجُ السَماحَةَ مِن بَخيلٍ

فَما في النارِ لِلظَمآنِ ماءُ

وَرِزقُكَ لَيسَ يُنقِصُهُ التَأَنّي

وَلَيسَ يَزيدُ في الرِزقِ العَناءُ

وَلا حُزنٌ يَدومُ وَلا سُرورٌ

وَلا بُؤسٌ عَلَيكَ وَلا رَخاءُ

إِذا ما كُنتَ ذا قَلبٍ قَنوعٍ

فَأَنتَ وَمالِكُ الدُنيا سَواءُ

وَمَن نَزَلَت بِساحَتِهِ المَنايا

فَلا أَرضٌ تَقيهِ وَلا سَماءُ

وَأَرضُ اللَهِ واسِعَةٌ وَلَكِن

إِذا نَزَلَ القَضا ضاقَ الفَضاءُ

دَعِ الأَيّامَ تَغدِرُ كُلَّ حِينٍ

فَما يُغني عَنِ المَوتِ الدَواءُ





الأحد، 11 أغسطس 2019

إجراء تصدير بيانات من جدول إلى الأكسل بلغة الدلفي - Delphi Function Export To Excel File

هذا الإجراء يستخدم لتصدير بيانات من جدول داتابيس إلى ملف أكسل , بلغة الدلفي

function ExportToExcel(oDataSet : TDataSet; sFile : String; pName : String): Boolean;
var
   iCol,iRow : Integer;
   oExcel : TExcelApplication;
   oWorkbook : TExcelWorkbook;
   oSheet : TExcelWorksheet;
   vRowNo : integer;
   vFieldC : integer;
   vVarCol : OleVariant;
   lcid : integer;
begin
lcid := LOCALE_USER_DEFAULT;
result := True;
oExcel := TExcelApplication.Create(Application);
oWorkbook := TExcelWorkbook.Create(Application);
oSheet := TExcelWorksheet.Create(Application);
try
   oExcel.ConnectKind := ckNewInstance;
   oExcel.Visible[lcid] := False;
   oExcel.Connect;
except
   result := False;
   MessageDlg('Excel may not be installed', mtError, [mbOk], 0);
   exit;
end;

oExcel.Visible[lcid] := True;
oExcel.Caption := 'Title Excel Export ';
oExcel.Workbooks.Add(Null, lcid);

oWorkbook.ConnectTo(oExcel.Workbooks[1]);
oSheet.ConnectTo(oWorkbook.Worksheets[1] as _Worksheet);
oSheet.DisplayRightToLeft[lcid] := True;
iRow := 1;
vRowNo := oDataSet.RecordCount+1;
vFieldC := oDataSet.FieldCount;
case vFieldC of   // لتحديد الأعمدة والعمل على تلوينها حسب ما هو مطلوب  //
  1: vVarCol := 'A1';
  2: vVarCol := 'B1';
  3: vVarCol := 'C1';
  4: vVarCol := 'D1';
  5: vVarCol := 'E1';
  6: vVarCol := 'F1';
  7: vVarCol := 'G1';
  8: vVarCol := 'H1';
  9: vVarCol := 'I1';
  10: vVarCol := 'J1';

     //   Add as required //

end;

for iCol := 1 to oDataSet.FieldCount do
 begin
  oSheet.Cells.Item[iRow,iCol] := oDataSet.Fields[iCol-1].DisplayLabel;
 end;
oDataSet.First;
while NOT oDataSet.Eof do
begin
   Inc(iRow);
   for iCol := 1 to oDataSet.FieldCount do
   begin
   oSheet.Cells.Item[iRow,iCol] := oDataSet.Fields[iCol-1].AsString;
   end;
oDataSet.Next;
end;
oSheet.Name := pName;   // Change the wprksheet name.  //
                       //   Change Color and font to Title of page //
oSheet.Range['A1',vVarCol].EntireRow.Font.Color := clNavy;
oSheet.Range['A1',vVarCol].EntireRow.Font.Size := 12;
oSheet.Range['A1',vVarCol].EntireRow.Font.Bold := True;
oSheet.Range['A1',vVarCol].EntireRow.Font.Name := 'Arabic Transparent';
oSheet.Range['A1',vVarCol].Interior.ColorIndex := 15;
oSheet.Range['A1',vVarCol].Interior.Pattern := xlSolid;

                      //  Change the font properties of a row. //
oSheet.Range['A2','A'+IntToStr(vRowNo)].EntireRow.Font.Color := clBlack;
oSheet.Range['A2','A'+IntToStr(vRowNo)].EntireRow.Font.Size := 12;
oSheet.Range['A2','A'+IntToStr(vRowNo)].EntireRow.Font.Name := 'Arabic Transparent';
oSheet.Columns.AutoFit;
Sleep(10);

if FileExists(sFile) then DeleteFile(sFile);
oSheet.SaveAs(sFile);
oSheet.Disconnect;
oSheet.Free;
oWorkbook.Disconnect;
oWorkbook.Free;
oExcel.Quit;
oExcel.Disconnect;
oExcel.Free;
end;

الجافا : انسياب التحكم

إن البرنامج الذي يتألف من لائحة من العبارات المتتابعة مفيد بما أنه يتم تنفيذ العبارات بالترتيب الذي تم كتابتها فيه. لكن القدرة على التحكم بالترتيب الذي يتم فيه تنفيذ العبارات : أي أن تختبر الشروط وتنفيذ عبارات مختلفة بالاعتماد على نتائج الاختبارات - يضيف قيمة كبيرة إلى طقم الأدوات البرمجية.

العبارات والكتل :
إن العبارات الأساسية هي عبارات التعابير وعبارات التصريح التي رأيت الكثير منها ، عبارات التعابير مثل ++i أو استدعاءات المناهج هي تعابير مع فاصلة منقوطة في النهاية. تنتهي الفاصلة المنقوطة العبارة. وبالفعل فإن الفاصلة المنقوطة بحد ذاتها هي عبارة لا تنفيذ شيء - عبارة فارغة. ولا يمكن أن تصبح جميع التعابير عبارات ، بما أنه ، على سبيل المثال لا يوجد معنى لوجود تعبير مثل x <= y لوحده كعبارة. يمكن تحويل الأنواع التالية من التعابير فقط إلى عبارات بإضافة فاصلة منقوطة :

  • تعابير الاسناد : تلك التي تحتوي على = أو أحد أنواع العوامل =op.
  • النماذج السابقة أو اللاحقة من ++ و -- .
  • استدعاءات المناهج (سواء كانت تعيد قيمة أم لا).
  • تعابير إنشاء الكائنات - تلك التي تستخدم new لإنشاء كائن.




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

تصريح عبارات تصريح الفئة المحلية عن فئة داخلية محلية يمكن أن تستخدم ضمن الكتلة التي تم فيها التصريح عنها.

بالإضافة إلى عبارات التعبير المذكورة ، فإن العديد من الأنواع الأخرى من العبارات ، مثل العباراتين if و for ، تؤثر على انسياب التحكم عبر البرنامج.

تجمع القوسان الحاصرتان {and} العبارات ضمن الكتلة ، ويمكن استخدام الكتلة في أي مكان تستخدم فيه عبارة واحدة بما أن الكتلة هي عبارة ، ولو أنها عبارة مركبة.

? What about Visual basic

Visual basic is hardly even a good idea to use at all today, so the best language of your code modern alternatives Like C#, PHP, Python,...