أخر الأخبار
دروس باسكال
منذ بضع اعوام

دورة إحترافية باسكال و دلفي تنصيب باسكال على محرر...

تنصيب باسكال على محرر الأكواد  Visual Studio Codeالبرمجة بلعة باسكال اصبحت تعتمد على العديد من ...
اقرأ المزيد
دروس باسكال
منذ بضع اعوام

دورة إحترافية باسكال و دلفي - تنصيب برنامج Pascal ABC.net

دورة إحترافية باسكال و دلفي - تنصيب برنامج Pascal ABC.netلغة باسكال لغة باسكال هي لغة برمجة صُممت...
اقرأ المزيد
مذكرت تخرج
منذ بضع اعوام

مذكرة تخرج تسيير مكتبة للجامعة

التخرج ثمرة جهد سنين من التعليم و التمهين ع...
اقرأ المزيد
نسخ الدلفي
منذ بضع اعوام

نسخة دلفي 7 -- Delphi7_Lite_Full_Edition_7.3.4.3_Build_20110801

دائما مع نسخ الدلفي هذه المرة النسخة التي يبحث عنها الجميع نسخة دلفي 7 Delphi7_Li...
اقرأ المزيد
نسخ الدلفي
منذ بضع اعوام

نسخة دلفي xe 8 ---- XE8 version update 1

دائما مع النسخ المتقدمة من الدلفي لشركة اومبركاديرو و هذه المرو مع النسخة XE8 version u...
اقرأ المزيد
نسخ الدلفي
منذ بضع اعوام

نسخة دلفي XE 7

دائما مع نسخ دلفي و هذه المرة مع النسخة  XE7 تم إنشاء لغة برمجة دلفي قوية تعتم...
اقرأ المزيد
نسخ الدلفي
منذ بضع اعوام

نسخة دلفي XE6 ---- XE6 version update 1

دائما مع نسخ دلفي من شركة Embracadero   هذه المرة مع نسخة دلفي XE6  ال...
اقرأ المزيد
نسخ الدلفي
منذ بضع اعوام

نسخة حديثة للدلفي Embarcadero Delphi 10.2.3 v25.0.29899.2631 Lite 14.4

تم إنشاء لغة برمجة دلفي قوية تعتمد على Object Pascal. ضوابط دلفي VCL ويندوز 10 و FMX ممكن...
اقرأ المزيد
دروس قواعد البيانات
منذ بضع اعوام

الدرس الخامس و العشرون -SQL Server 2014- إستدعاء إجراء مخزن...

إستدعاء إجراء مخزن من SQL Server الى الدلفي عن مكونات ADO و نخص بذلك المكون الموجود في الحزم...
اقرأ المزيد

دروس حيل و أفكار في الدلفي - الجزء الأول






السلام عليكم ورحمة الله و بركاته اخواني اخواتي متابعي مدونة مينا سوفت للبرمجة
عدنا بعد غياب طويل نوعا ما بحلة جديدة للمدونة اضافة الى مجموعة دروس جديدة من بينها دروس حيل و أفكار في الدلفي
أمور قد تظهر للعيان انها بسيطة و لكن هي جد مهمة للمبرمجين خاصة بالنسبة للمكونات
نبدأ على بركة الله مع الجزء الأول

  لا يقبل سوى الأعدادEDIT1- جعل الــ    

-  نضع مكون TEdit في فورم (Form) -  نذهب بعدها إلى الأحداث (Event) وبالخصوص إلى "OnKeyPress" -  نضغط مرتين على الحدث من الجهة اليمنى ونكتب الكود (Code) التالي بعد Begin مباشرة
كود:
begin
if not (Key in ['0'..'9', #8]) then
  begin
    Key := #0;
    Beep;
  end;
end;

  لا يقبل سوى الرموز و الحروفEDIT2- الأن العكس نجعل الــ    
كود:
begin
if  (Key in ['0'..'9', #8]) then
  begin
    Key := #0;
    Beep;
  end;
end;

 وجعله  لا يقبل سوى الأعدادEDIT3- الأن توسيط الكتابة في     
كود
;(procedure TForm1.Button13Click(Sender: TObject)
var
  ;Style: LongInt
begin

;(Style := GetWindowLong(Edit1.Handle, GWL_STYLE
;(SetWindowLong(Edit1.Handle, GWL_STYLE, Style or ES_NUMBER
;Edit1.Invalidate
;end
ES_NUMBER    : الأرقام فقط
ES_CENTER : وسط
ES_RIGHT : يمين
4- طريقة اغلاق البرنامج تلقائيا بعد ادخال كلمة المرور 3 مرات خطأ
الكود



var
NumTry: Byte = 0;

procedure TForm1.Button1Click(Sender: T******);
begin
if Edit1.**** + Edit2.**** = 'ab' then
Form2.Show
else
begin
Inc(NumTry);
if NumTry > 3 then
ShowMessage(IntToStr(NumTry));
end;
end;



5- تغيير لون       ProgressBar     إلى اللون الأحمر
الكود
procedure TForm1.FormCreate(Sender: TObject);
begin
ProgressBar1. =ProgressBar1.Max;
PostMessage(ProgressBar1.Handle,PBM_SETBARCOLOR,0,clRed);
end;
end. 



6- تحديد رقمين بعد الفاصلة
procedure TForm1.Button1Click(Sender: TObject);
begin
edit2.Text := FormatFloat('0.00',strtocurr( edit1.Text));
end;
end.

7- ترتيب الأرقام من الأصغر إلى الأكبر في  listbox


procedure TForm1.Button1Click(Sender: TObject);
var
 i, n : integer;
     begin
     if listbox1.Count<2 then
     Exit;
     for i:=1 to listbox1.Count-1 do
    for n:=0 to i-1 do
     if StrToFloat(listbox1.Items[i])< StrToFloat(listbox1.Items[n]) then
     begin
    listbox1.Items.Move(i,n);
    Break;
    end;
 end;
end.

8- تحريك  label من اليمين إلى اليسار

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Left:=Label1.Left-20; //20 est la vitesse de rotation de label
if Label1.Left<=-Label1.Width then
Label1.Left:=Form1.ClientWidth-Label1.Width;
end; 
9- كتابة في label عموديا
 procedure TForm1.Button1Click(Sender: TObject);
Var
 St:String;
i:Integer;
begin
St:='startimes'; //Texte à écrire verticalement
Label1.Caption:=''; //Efface le contenu du label
for i:=1 to Length(St) do
Label1.Caption:=Label1.Caption+St[i]+#13;
end;
end.


 10- تعيين مسار قاعدة البيانات
  
procedure TForm1.FormCreate(Sender: TObject);
begin
table1.Active := false;
table1.TableName := extractfilepath(application.ExeName) + 'tadjou.db';
table1.Active := true;
end;
end;
end.

11 - زيادة شهر على التاريخ

procedure TForm1.Button1Click(Sender: TObject);
var
A1,M1,J1 : Word;
begin
DecodeDate(DateTimePicker1.date,A1,M1,J1 );
M1:=M1+1;
Label1.Caption := DateToStr(EncodeDate(A1,M1,J1));
end;
end.
end;
end.


12- الكتابة في label بسطرين
 procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:='minasoft'+#13#10+'minasoft';
end;
end.

 -13  أول الحروف    *  majuscule في
 edit   *

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.SelStart = 0) or (Text[Edit1.SelStart] = ' ') then
if Key in ['a'..'z'] then
Key := UpCase(Key);
end

14- لحساب النسبه المئويه


procedure TForm1.Button1Click(Sender: TObject);

var
 a:real;
  b:real;
  c:real;
begin
If (Edit1.Text = '') Or (Edit2.Text = '') Then
Messagedlg('Please Enter Numbers',mterror,[mbok],0)
else
Try
a:=strtofloat(edit1.Text );
b:=strtofloat(edit2.Text );
c:=100/b;
Edit3.Text :=  floattostr(a*c) + '%';
except
Messagedlg('Please Enter Numbers',mterror,[mbok],0);
end;







قد يعجبك ايضا
تعليقات
تعليقات Bloggerتعليقات Disqus



حجم الخط
+
16
-
تباعد السطور
+
2
-