كيفية حساب العمر عن طريق ادخال السنة فقط - Anter2010 - 06-12-2014
السلام عليكم ورحمة الله وبركاته
واجهتني هذه النقطة في عملية تحويل العمر عن طريق ادخال سنة الميلاد في edit فقط فتعطيني العمر
في edit2
PHP كود : function Years(PastDate,CurrentDate:TDate):integer; var PastMonth,PastDay,PastYear,CurrentYear,CurrentMonth,CurrentDay:word; begin DecodeDate(PastDate,PastYear,PastMonth,PastDay); DecodeDate(CurrentDate,CurrentYear,CurrentMonth,CurrentDay); if (PastYear=CurrentYear) and (PastMonth=CurrentMonth) and (PastDay=CurrentDay) then Result:=0 else begin Result:=CurrentYear-PastYear; if (PastMonth>CurrentMonth) then Dec(Result) else begin if PastMonth=CurrentMonth then if (PastDay>CurrentDay) then Dec(Result); end; end; end;
procedure TForm1.dtp1Change(Sender: TObject); begin Edt3.Text := IntToStr(YearsBetween(dtp1.Date,now)); end;
procedure TForm1.btn1Click(Sender: TObject); begin Edt2.Text:=Format(' %d ', [Years(StrToDate('03/06/1978'),Date)]); end;
end.
محاولة تغير التاريخ كمل ب EDIT1.TEXT
كيفية حساب العمر عن طريق ادخال السنة فقط - Anter2010 - 06-12-2014
PHP كود : procedure TForm1.edt1Change(Sender: TObject); var date1, date2: TDate; begin date1 := StrTofloat(Edt1.Text); date2 := Now; Edt2.Text:= FloatToStr(YearsBetween(date2, date1)); end;
end.
ولاهذا عمل
كيفية حساب العمر عن طريق ادخال السنة فقط - bassem_43 - 06-12-2014
الخطا بسيط يا اخي اسم الدالة هو Years وليس YearsBetween غير الكود ليصبح
PHP كود : function Years(PastDate,CurrentDate:TDate):integer; var PastMonth,PastDay,PastYear,CurrentYear,CurrentMonth,CurrentDay:word; begin DecodeDate(PastDate,PastYear,PastMonth,PastDay); DecodeDate(CurrentDate,CurrentYear,CurrentMonth,CurrentDay); if (PastYear=CurrentYear) and (PastMonth=CurrentMonth) and (PastDay=CurrentDay) then Result:=0 else begin Result:=CurrentYear-PastYear; if (PastMonth>CurrentMonth) then Dec(Result) else begin if PastMonth=CurrentMonth then if (PastDay>CurrentDay) then Dec(Result); end; end;
end; procedure TForm1.edt1Change(Sender: TObject); var date1, date2: TDate; begin date1 := StrTofloat(Edt1.Text); date2 := Now; Edt2.Text:= FloatToStr(Years(date2, date1)); end;
end.
كيفية حساب العمر عن طريق ادخال السنة فقط - Anter2010 - 07-12-2014
السلام عليكم شكرا اخي لكن المشكل ليس بالدالة yearsbetween
و الدالة years
PHP كود : procedure TForm1.edt1Change(Sender: TObject); var date1, date2: TDate; begin date1 := StrTofloat(Edt1.Text); date2 := Now; Edt2.Text:= FloatToStr(YearsBetween(date2, date1)); end;
end.
في هذه الدالة عند ادخال السنة فقط يعطيني عمر غير صحيح اظن المشكلة في تحويل الادخال في edit1
كيفية حساب العمر عن طريق ادخال السنة فقط - bassem_43 - 07-12-2014
اهلا اخي عنتر
بما ان الدالة YearsBetween تحسب الفارق بين تاريخين فسيكون date1 يحتوي على تاريخ وليس رقم كما فعلت انت ادن :
date1 := StrToDate(Edt1.Text); ليكون الكود كما يلي :
PHP كود : procedure TForm1.edt1Change(Sender: TObject); var date1, date2: TDate; begin date1 := StrToDate(Edt1.Text); date2 := Now; Edt2.Text:= FloatToStr(YearsBetween(date2, date1)); end;
end.
والله اعلم
كيفية حساب العمر عن طريق ادخال السنة فقط - FaLcon_DZ - 07-12-2014
اخي انا لدي خلل في برنامجي الصغير حاولت حل المشكلة ولم استطع وبالتالي ان يستنتج البرنامج التسنة من الجهاز وليس من خلال المتغير الذي اعطيته له انا مضبوط .شاهد الكود كيف اقوم بتغيير مكان 2014 بدالة تستنتج السنة من النظام ليعمل في كل زمان .
وما هي الكائنات التي اضيفها للبرنامج مثل date او غيرها .. وشكرا .
PHP كود : unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls;
type TForm1 = class(TForm) lbl1: TLabel; lbl2: TLabel; edt1: TEdit; edt2: TEdit; btn1: TButton; btn2: TButton; lblAnswer: TLabel; procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject); begin
lblAnswer.Caption:= 'Hello Mr.'+edt1.Text +',Your were born in '+edt2.Text+',your Age is :'+ IntToStr(2014 - StrToInt(edt2.Text)); end;
procedure TForm1.btn2Click(Sender: TObject); begin edt1.Text:=''; edt2.Text:=''; lblAnswer.Caption:='' end;
end.
كيفية حساب العمر عن طريق ادخال السنة فقط - محمد عبد العزيز - 08-12-2014
السلام عليكم
المشكلة في ادخال المعلومات فانت لاتتحقق من المدخل
اما تستخدم حدث أخر غير OnChange او تتحقق من البيانات المدخة تاريخ Valid Date
كيفية حساب العمر عن طريق ادخال السنة فقط - bassem_43 - 08-12-2014
FaLcon_DZ كتب :اخي انا لدي خلل في برنامجي الصغير حاولت حل المشكلة ولم استطع وبالتالي ان يستنتج البرنامج التسنة من الجهاز وليس من خلال المتغير الذي اعطيته له انا مضبوط .شاهد الكود كيف اقوم بتغيير مكان 2014 بدالة تستنتج السنة من النظام ليعمل في كل زمان .
وما هي الكائنات التي اضيفها للبرنامج مثل date او غيرها .. وشكرا .
PHP كود : unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls;
type TForm1 = class(TForm) lbl1: TLabel; lbl2: TLabel; edt1: TEdit; edt2: TEdit; btn1: TButton; btn2: TButton; lblAnswer: TLabel; procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject); begin
lblAnswer.Caption:= 'Hello Mr.'+edt1.Text +',Your were born in '+edt2.Text+',your Age is :'+ IntToStr(2014 - StrToInt(edt2.Text)); end;
procedure TForm1.btn2Click(Sender: TObject); begin edt1.Text:=''; edt2.Text:=''; lblAnswer.Caption:='' end;
end.
السلام عليكم
اولا ان اردت مسح ما بوجد في edit.text يمكنك ايضا استعمال :
للحصول على تاريخ اليوم يوجد دالة now) dateToStr) واستعمالها يكون هكدا :
PHP كود : edit1.text:=DateToStr(now);
التاريح ياخد من الجهاز لدى تاكد من صحته اولا .
للاستزادة ابحث في المنتدى بوجد العديد من المواضيح حول دلك
http://delphi4arab.net/forum/showthread.php?tid=11037&highlight=%C7%E1%CA%C7%D1%ED%CE
او
http://delphi4arab.net/forum/search.php?searchid=753889
كيفية حساب العمر عن طريق ادخال السنة فقط - Anter2010 - 10-12-2014
السلام عليكم ورحمة الله وبركاته
ان شاء الله قد توصلت الى الحل
PHP كود : procedure TForm1.edt1Change(Sender: TObject); var year,month,day:word; begin if edt1.Text <> '' then begin DecodeDate(date, Year, Month, Day); Edt2.Text:= IntToStr((year) - StrToInt(edt1.Text)) end else edt2.Clear; end;
end.
|