دلفي تعليم
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

هل هذه الطريقة سليمة من الناحية المنطقية و البرمجية

اذهب الى الأسفل

هل هذه الطريقة سليمة من الناحية المنطقية و البرمجية Empty هل هذه الطريقة سليمة من الناحية المنطقية و البرمجية

مُساهمة  djelal 13/5/2019, 4:15 pm



السلام عليكم، مرحبا بالجميع.

هل هذه الطريقة سليمة من الناحية المنطقية و البرمجية
وبماذا تنصحون
وفي الاخير تقبلوا شكري الجزيل

الكود:

nit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Unit2,DateUtils;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    DateTimePicker1: TDateTimePicker;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  end;

  TEnterEmployee = class(Tds)
  private
  fDateE: TDate;
  procedure SetLDate(ALDate: TDate); override;
  function GetLDate: TDate; override;
  end;

  TSortieEmployee = class(Tds)
  private
  fDateS: TDate;
  procedure SetLDate(ALDate: TDate); override;
  function GetLDate: TDate; override;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 d1: Tds;
begin
 d1:= TEnterEmployee.Create;
 try
  d1.NameFirst := Edit1.Text;
  d1.NameLast := Edit2.Text;
  d1.LDate := DateTimePicker1.Date;
  //
  Label1.Caption := d1.NameFirst;
  Label2.Caption := d1.NameLast;
  Label3.Caption := DateToStr(d1.LDate);
 finally
  d1.Free
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 d1: Tds;
begin
 d1:= TSortieEmployee.Create;
 try
  d1.NameFirst := Label1.Caption;
  d1.NameLast := Label2.Caption;
  d1.LDate := StrToDate(Label3.Caption);
  //
  Edit1.Text := d1.NameFirst;
  Edit2.Text := d1.NameLast;
  DateTimePicker1.Date := d1.LDate;
 finally
  d1.Free
 end;
end;

function TEnterEmployee.GetLDate: TDate;
begin
  Result := fDateE
end;

procedure TEnterEmployee.SetLDate(ALDate: TDate);
begin
 if YearOf(Now)-YearOf(ALDate)>17 then
  fDateE := ALDate;
end;

function TSortieEmployee.GetLDate: TDate;
begin
  Result := fDateS
end;

procedure TSortieEmployee.SetLDate(ALDate: TDate);
begin
  fDateS := ALDate
end;

end.
-----------

الكود:

unit Unit2;

interface
uses Controls;
type
  Tds = class
  protected
  fNameFirst,fNameLast: string;
  procedure SetLDate(ALDate: TDate); virtual; abstract;
  function GetLDate: TDate; virtual; abstract;
  public
  property NameFirst: string read fNameFirst write fNameFirst;
  property NameLast: string read fNameLast write fNameLast;
  property LDate: TDate read GetLDate write SetLDate;
  end;
implementation
end.



djelal
مبرمج مجتهد

عدد المساهمات : 157
تاريخ التسجيل : 29/04/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى