مشروع الكهرباء الغازتعديل

إرسال موضوع جديد   إرسال مساهمة في موضوع

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

مشروع الكهرباء الغازتعديل

مُساهمة  ali1 في 21/2/2018, 3:03 pm

مشروع الكهرباء الغازتعديل حسب بعض الاخوة

المشروع أو البرنامج

ملاحظة
شغل في الدلفي 7 من بولاند
أو...

الكود:

program prjGazElec;

uses
 // Vcl.  أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
Forms,
  untElecGaz in 'untElecGaz.pas' {Form1},
 // Vcl. أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
Themes//,
 // Vcl. أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
//Styles
;

{$R *.res}

begin
  Application.Initialize;
 // Application.MainFormOnTaskbar := True; أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
  http://TStyleManager.TrySetStyle('Cyan Night'); أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

-----------------------

الكود:

unit untElecGaz;

interface

uses
  //Winapi. أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
  Windows,
//  Winapi. أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
  Messages,
//  System. أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
  SysUtils,
//  System. أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
  Variants,
 // System. أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
  Classes,
//  Vcl. أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
  Graphics,
 // Vcl. أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
  Controls,
//  Vcl. أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
  Forms,
//  Vcl. أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
  Dialogs,
//  Vcl. أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
  StdCtrls,
 // Vcl. أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
  Buttons;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Dlk: TLabel;
    btnCalc: TBitBtn;
    Edit2: TEdit;
    BitBtn2: TBitBtn;
    Edit3: TEdit;
    ed2: TEdit;
    ed3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Edit11: TEdit;
    Edit12: TEdit;
    Edit13: TEdit;
    Edit14: TEdit;
    Edit15: TEdit;
    Memo1: TMemo;
    Memo2: TMemo;
    Edit16: TEdit;
    Edit17: TEdit;
    Edit18: TEdit;
    Edit19: TEdit;
    GroupBox1: TGroupBox;
    Label18: TLabel;
    Label19: TLabel;
    d1: TEdit;
    d2: TEdit;
    d5: TEdit;
    d6: TEdit;
    GroupBox2: TGroupBox;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    d3: TEdit;
    d4: TEdit;
    ed1: TEdit;
    ed4: TEdit;
    d8: TEdit;
    d7: TEdit;
    edtJour: TEdit;
    Edit1: TEdit;
    Edit20: TEdit;
    chkbxChoise: TCheckBox;
    EffacerClick: TBitBtn;
    procedure btnCalcClick(Sender: TObject);
    procedure chkbxChoiseClick(Sender: TObject);
    procedure d1Change(Sender: TObject);
    procedure d1KeyPress(Sender: TObject; var Key: Char);
    procedure EffacerClickClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
  private
  public
  end;

type
  TPReel = ^Real;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses
  untCalcGazElec, untCalcGazElecs;

procedure Effacer;
begin
 Form1.d1.Text := '';
 Form1.d2.Text := '';
 Form1.d5.Text := '';
 Form1.d6.Text := '';
 Form1.d1.SetFocus;
end;

procedure TForm1.btnCalcClick(Sender: TObject);
type
  PTFonctionGazElec = ^TFonctionGazElec;
  TFonctionGazElec = function: TCusGaElClass;
  PTGazElecs = ^TGazElec;
  PTGazElecClassic = ^TGazElecClassic;
  PTGaEl = ^TGaEl;

var
  tc1, tc2, tc3, tc4: TPReel;
  gc1, gc2, gc3, gc4: TPReel;
  i: Integer;
  GazElecs: PTGazElecs;
  GazElecClassic: PTGazElecClassic;
  fonGE: PTFonctionGazElec;
  GaEl: PTGaEl;

begin

 d3.Text := SousGazElec(StrToInt(d1.Text),StrToInt(d2.Text));
 d7.Text := SousGazElec(StrToInt(d5.Text),StrToInt(d6.Text));
 if(StrToInt(d3.Text) > 0)and(StrToInt(d7.Text) > 0)then begin
 ed1.Text := FormatFloat('0.00',MulGazElecCoef(StrToFloat(d3.Text),StrToFloat(d4.Text)));
 ed4.Text := FormatFloat('0.00',MulGazElecCoef(StrToFloat(d7.Text),StrToFloat(d8.Text)));
 new(tc1); new(tc2); new(tc3); new(tc4);
 new(gc1); new(gc2); new(gc3); new(gc4);

 if chkbxChoise.Checked then
 begin
 new(GazElecs);
 GazElecs^ := TGazElec.Create;
 try
 with GazElecs^ do
 begin
  Elec(StrToFloat(ed1.Text), tc1^, tc2^, tc3^, tc4^);
  Edit2.Text := FloatToStr(CalcTraElec(tc1^, tc2^));
  Edit3.Text := FloatToStr(CalcTraElec(tc3^, tc4^));
  Gaz(StrToFloat(ed4.Text), gc1^, gc2^, gc3^, gc4^);
  ed2.Text := FloatToStr(CalcTraGaz(gc1^,gc2^));
  ed3.Text := FloatToStr(CalcTraGaz(gc3^,gc4^));
 end;
  finally GazElecs^.Free; end;
    dispose(GazElecs);
 end else
 begin
  new(GazElecClassic);
  GazElecClassic^ := TGazElecClassic.Create;
  try
 with GazElecClassic^ do
 begin
  Elec(StrToFloat(ed1.Text), tc1^, tc2^, tc3^);
  Edit2.Text := FormatFloat('0.00',StrToFloat(Edit4.Text)+
  CalcTraElec(tc1^, tc2^)+CalcTraElec(tc3^, 0));
  Edit3.Text := '0'; Edit4.Text := '0';
  Gaz(StrToFloat(ed4.Text), gc1^, gc2^, gc3^);
  ed2.Text := FormatFloat('0.00',StrToFloat(Edit5.Text)+
  CalcTraGaz(gc1^,gc2^)+CalcTraGaz(gc3^,0));
  ed3.Text := '0'; Edit5.Text := '0';
 end;
  finally GazElecClassic^.Free; end;
    dispose(GazElecClassic); end;
  dispose(tc4); dispose(tc3); dispose(tc2); dispose(tc1);
  dispose(gc4); dispose(gc3); dispose(gc2); dispose(gc1);

 new(fonGE);
 new(GaEl);
 fonGE^ := FonctionGazElecClass;
 GaEl^ := fonGE^.Create;
 try
 with GaEl^ do begin
  with Memo1.Lines do begin
  Clear;
//FormatFloat('0'+DecimalSeparator+'00',12);//Delphi7 . or , or
//FormatFloat('0'+FormatSettings.DecimalSeparator+'00',12);//Delphi 10.2 . or , or
  Montant := StrToFloat(Edit2.Text);
  TAUX := StrToFloat(Edit9.Text);
  Add(FormatFloat('0.00',TVA1));
  Montant := StrToFloat(Edit3.Text);
  TAUX := StrToFloat(Edit10.Text);
  Add(FormatFloat('0.00',TVA1));
  Montant := StrToFloat(Edit4.Text);
  TAUX := StrToFloat(Edit11.Text);
  Add(FormatFloat('0.00',TVA1));
  Montant := StrToFloat(ed2.Text);
  TAUX := StrToFloat(Edit12.Text);
  Add(FormatFloat('0.00',TVA1));
  Montant := StrToFloat(ed3.Text);
  TAUX := StrToFloat(Edit13.Text);
  Add(FormatFloat('0.00',TVA1));
  Montant := StrToFloat(Edit5.Text);
  TAUX := StrToFloat(Edit14.Text);
  Add(FormatFloat('0.00',TVA1));
  end;

  with Memo2.Lines do
  begin
  Clear;
  Montant := StrToFloat(Edit2.Text);
  TVA := StrToFloat(Memo1.Lines.Strings[0]);
  Add(FormatFloat('0.00',Totg));
  Montant := StrToFloat(Edit3.Text);
  TVA := StrToFloat(Memo1.Lines.Strings[1]);
  Add(FormatFloat('0.00',Totg));
  Montant := StrToFloat(Edit4.Text);
  TVA := StrToFloat(Memo1.Lines.Strings[2]);
  Add(FormatFloat('0.00',Totg));
  Montant := StrToFloat(ed2.Text);
  TVA := StrToFloat(Memo1.Lines.Strings[3]);
  Add(FormatFloat('0.00',Totg));
  Montant := StrToFloat(ed3.Text);
  TVA := StrToFloat(Memo1.Lines.Strings[4]);
  Add(FormatFloat('0.00',Totg));
  Montant := StrToFloat(Edit5.Text);
  TVA := StrToFloat(Memo1.Lines.Strings[5]);
  Add(FormatFloat('0.00',Totg));
  Add(Edit6.Text); Add(Edit7.Text); Add(Edit8.Text);
  end;

  Edit16.Text := '0'; Edit17.Text := '0';
  with Memo1.Lines do for i := 0 to count-1 do
  Value := Value+StrToFloat(Strings[i]);
  Edit16.Text := FormatFloat('0.00',Value);
  with Memo2.Lines do for i := 0 to count-1 do
  Value := Value+StrToFloat(Strings[i]);
  Edit17.Text := FormatFloat('0.00',Value); //('0,00',Value)
  end;
    finally GaEl^.Free; end;
    dispose(GaEl); dispose(fonGE);

  Edit15.Text := FormatFloat('0.00',StrToFloat(Edit2.Text)+StrToFloat(Edit3.Text)+
  StrToFloat(Edit4.Text)+StrToFloat(ed2.Text)+StrToFloat(ed3.Text)+StrToFloat(Edit5.Text)+
  StrToFloat(Edit6.Text)+StrToFloat(Edit7.Text)+StrToFloat(Edit8.Text));
  Edit19.Text := FormatFloat('0.00',StrToFloat(Edit17.Text)+StrToFloat(Edit18.Text));
  Label17.Caption := FormatFloat('0.00',StrToFloat(Edit19.Text)/StrToInt(edtJour.Text));

  Edit20.Text := FormatFloat('0.00',StrToFloat(Edit17.Text)-StrToFloat(Edit1.Text));

  if StrToFloat(edit15.Text)+StrToFloat(edit16.Text)<>StrToFloat(edit17.Text)
  then ShowMessage('Error');
  end else Effacer;
  btncalc.Enabled := false;

end;

procedure TForm1.chkbxChoiseClick(Sender: TObject);
begin
if chkbxChoise.Checked then
begin
  chkbxChoise.Caption := 'Calcule Nouveau';
 edit4.Text := '78'+{FormatSettings.}DecimalSeparator+'66';
 edit5.Text := '85'+{FormatSettings.}DecimalSeparator+'50';
 Edit7.Text := '150';
 Edit8.Text := '679'+{FormatSettings.}DecimalSeparator+'19';
 Edit10.Text := '0'+{FormatSettings.}DecimalSeparator+'19';
 Edit13.Text := '0'+{FormatSettings.}DecimalSeparator+'19';
 end else
 begin
  chkbxChoise.Caption := 'Calcule Ancien';
 edit4.Text := '131'+{FormatSettings.}DecimalSeparator+'10';
 edit5.Text := '85'+{FormatSettings.}DecimalSeparator+'50';
 Edit7.Text := '75';
 Edit8.Text := '600';
 Edit10.Text := '0';
 Edit13.Text := '0';
 end;
end;

procedure TForm1.d1Change(Sender: TObject);
begin
 if(d1.Text <> '')and(d2.Text <> '')and(d5.Text <> '')and
 (d6.Text <> '')then btnCalc.Enabled := true
  else btnCalc.Enabled := false;
end;

procedure TForm1.d1KeyPress(Sender: TObject; var Key: Char);
begin
 if not(key in ['0'..'9',#8]) then key := #0;
end;

procedure TForm1.EffacerClickClick(Sender: TObject);
begin
  Effacer;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Application.Terminate;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

//--- GroupBox1 -----------------------------------//
 Form1.GroupBox1.Caption := 'RELEVE DE COMPTEUR';
  Form1.Label18.Caption := 'Index Nouveau';
  Form1.Label19.Caption := 'Index Ancien';
  Form1.d1.Text := ''; // Index Nouveau  Elec
  Form1.d2.Text := ''; // Index Ancien  Elec
  Form1.d5.Text := ''; // Index Nouveau Gaz
  Form1.d6.Text := ''; // Index Ancien Gaz

//--- GroupBox2 -----------------------------------//
 Form1.GroupBox2.Caption := '';
  Form1.Label20.Caption := 'Différance';
  Form1.Label21.Caption := 'COEF';
  Form1.Label22.Caption := '(kwh/THERMIE)';
  Form1.Label23.Caption := 'CONSOMMATION';
  // Index Nouveau - Index Ancien = Différance
  Form1.d3.Text := '';      // Différance
  Form1.d4.Text := '1';    // COEF Elec
  Form1.ed1.Text := '';
  Form1.d7.Text := '';    // Différance
  Form1.d8.Text := '9'+{FormatSettings.}DecimalSeparator+'02'; // COEF Gaz
  Form1.ed4.Text := '';
  // 0.00 or 0,00

 Form1.Label1.Caption := 'CONSOMMATION HORS TVA (DA)';
 Form1.Label2.Caption := 'T.V.A';
 Form1.Label3.Caption := 'ELEC 54 M';

 //--------  TAUX% -----------------//
// أوقفت هذا من أجل أن يعمل في الدلفي7 أو 5 واذا كانت من الدلفي delphi xe فما فوق
 Form1.Edit9.Text := '0'+{FormatSettings.}DecimalSeparator+'09';
 Form1.Edit10.Text := '0'+{FormatSettings.}DecimalSeparator+'09';
 Form1.Edit11.Text := '0'+{FormatSettings.}DecimalSeparator+'09';
 Form1.Edit12.Text := '0'+{FormatSettings.}DecimalSeparator+'09';
 Form1.Edit13.Text := '0'+{FormatSettings.}DecimalSeparator+'09';
 Form1.Edit14.Text := '0'+{FormatSettings.}DecimalSeparator+'09';
 //--------  TAUX -----------------//

  Form1.btnCalc.Caption := 'Calc';
  Form1.EffacerClick.Caption := 'Effacer';
  Form1.BitBtn2.Caption := '&Fermer';

  form1.Edit1.Text := '0';
  form1.Edit2.Text := '';
  form1.Edit3.Text := '';

  form1.Edit4.Text := '78'+{FormatSettings.}DecimalSeparator+'66';  // Primes Fixes Elec
  form1.Edit5.Text := '85'+{FormatSettings.}DecimalSeparator+'50';  // Primes Fixes Gaz
  form1.Edit6.Text := '100';    // DRIOT FIXE
  form1.Edit7.Text := '150';    // TAXE HABITATION
  form1.Edit8.Text := '679'+{FormatSettings.}DecimalSeparator+'19'; // Soutien Etat
  form1.Edit18.Text := '162';  // Droit de timbre
  form1.edtJour.Text := '90';  // Le montant de votre consommation moyenne d'énergie par jour :

  form1.Edit15.Text := '';
  form1.Edit16.Text := '';
  form1.Edit17.Text := '';
  form1.Edit19.Text := '';
  form1.Edit20.Text := '';
end;

end.


--------------------------------

الكود:

unit untCalcGazElec;

interface

uses
  untCalcGazElecs, SysUtils;

type
  TGazElecClassic = class
  procedure Elec(tc0: real; var tc1, tc2, tc3: real); overload;
  procedure Gaz(gcs: real; var gc1, gc2, gc3: real); overload;
  function CalcTraElec(tco, tco1: real): real; virtual;
  function CalcTraGaz(gco, gco1: real): real; virtual;
  end;

  TGazElec = class(TGazElecClassic)
  procedure Elec(tc0: real; var tc1, tc2, tc3, tc4: real); overload;
  procedure Gaz(gcs: real; var gc1, gc2, gc3, gc4: real); overload;
  function CalcTraElec(tco, tco1: real): real; override;
  function CalcTraGaz(gco, gco1: real): real; override;
  end;

  TCusGaEl = class(TGaEl)
  private
  fTAUX: Real;
  fMontant: Real;
  fTVA: Real;
  fVale: Real;
  protected
  procedure SetGazEle1(const Vale: Real); override;
  procedure SetGazEle2(const Vale: Real); override;
  procedure SetGazEle3(const Vale: Real); override;
  procedure SetGazEle4(const Vale: Real); override;
  function GetGazEle1: real; override;
  function GetGazEle2: real; override;
  function GetGazEle3: real; override;
  function GetGazEle4: real; override;
  public
  function TVA1: real; override;
  function Totg: Real; override;
  end;
  TCusGaElClass = class of TCusGaEl;
  function FonctionGazElecClass: TCusGaElClass;

  function SousGazElec(InNouveau, InAncien: Integer): string;
  function MulGazElecCoef(Difference, COEF: Real): real;
 
implementation

function SousGazElec(InNouveau, InAncien: Integer): string;
begin
 Result := IntToStr(InNouveau-InAncien);
end;

function MulGazElecCoef(Difference, COEF: Real): real;
begin
 Result := Difference*COEF;
end;

{ TGazElec }

function TGazElec.CalcTraElec(tco, tco1: real): real;
const
  PremierTranchePrix = 1.7787;
  DeuxiemeTranchePrix = 4.1789;
  TroisiemeTranchePrix = 4.8120;
  QuatriemeTranchePrix = 5.4796;
begin
 if tco+tco1 <= 250 then
  Result := tco*PremierTranchePrix+tco1*DeuxiemeTranchePrix
 else Result := tco*TroisiemeTranchePrix+tco1*QuatriemeTranchePrix;
end;

function TGazElec.CalcTraGaz(gco, gco1: real): real;
const
  PremierTranchePrix = 0.1682;
  DeuxiemeTranchePrix = 0.3245;
  TroisiemeTranchePrix = 0.4025;
  QuatriemeTranchePrix = 0.4599;
begin
 if gco+gco1 <= 2500 then
  Result := gco*PremierTranchePrix+gco1*DeuxiemeTranchePrix
 else Result := gco*TroisiemeTranchePrix+gco1*QuatriemeTranchePrix
end;

procedure TGazElec.Elec(tc0: real; var tc1, tc2, tc3, tc4: real);
const
  tcom1 = 125; tcom3 = 750;
procedure test1;
begin
  tc1 := tcom1;
  tc2 := tc0 - tc1;
end;

procedure test2;
begin
  tc3 := tc2 - tc1;
  tc2 := tc1;
end;

procedure test3;
begin
  tc4 := tc3 - tcom3;
  tc3 := tcom3;
end;

begin
  tc1 := 0; tc2 := 0;
  tc3 := 0; tc4 := 0;
  if tc0 > tcom1 then
  begin
  test1;
  if tc2 > tc1 then
  begin
    test2;
    if tc3 > tcom3 then
    begin
    test3;
    end;
  end;
  end else tc1 := tc0;
end;

procedure TGazElec.Gaz(gcs: real; var gc1, gc2, gc3, gc4: real);
const
 gcom1 = 1125; gcom2 = 1375; gcom3 = 5000;
begin
  gc1 := 0; gc2 := 0;
  gc3 := 0; gc4 := 0;
  if gcs > gcom1 then
  begin
  gc1 := gcom1;
  gc2 := gcs - gc1;
  if gc2 > gcom2 then
  begin
    gc3 := gc2 - gcom2;
    gc2 := gcom2;
    if gc3 > gcom3 then
    begin
      gc4 := gc3 - gcom3;
      gc3 := gcom3;
    end;
  end;
  end else gc1 := gcs;
end;

{ TGazElecClassic }

function TGazElecClassic.CalcTraElec(tco, tco1: real): real;
const
  PremierTranchePrix = 1.779;
  DeuxiemeTranchePrix = 4.179;
  TroisiemeTranchePrix = 4.8120;
begin
 if tco1 > 0 then
  Result := tco*PremierTranchePrix+tco1*DeuxiemeTranchePrix
 else Result := tco*DeuxiemeTranchePrix;
end;

function TGazElecClassic.CalcTraGaz(gco, gco1: real): real;
const
  PremierTranchePrix = 0.168;
  DeuxiemeTranchePrix = 0.324;
  TroisiemeTranchePrix = 0.402;
begin
  if gco1 > 0 then
  Result := gco*PremierTranchePrix+gco1*DeuxiemeTranchePrix
  else Result := gco*DeuxiemeTranchePrix;
end;

procedure TGazElecClassic.Elec(tc0: real; var tc1, tc2, tc3: real);
const
  tcom1 = 125; tcom = 875;
begin
  tc1 := 0; tc2 := 0;
  tc3 := 0;
  if tc0 > tcom1 then
  begin
  tc1 := tcom1;
  tc2 := tc0 - tc1;
  if tc2 > tcom then
  begin
    tc3 := tc2-tcom;
    tc2 := tc1+tcom;
  end; {}
  end else tc1 := tc0;
end;

procedure TGazElecClassic.Gaz(gcs: real; var gc1, gc2, gc3: real);
const
 gcom1 = 1125; gcom2 = 8875;
begin
  gc1 := 0; gc2 := 0;
  gc3 := 0;
  if gcs > gcom1 then
  begin
  gc1 := gcom1;
  gc2 := gcs - gc1;
  if gc2 > gcom2 then
  begin
    gc3 := gc2-gcom2;
    gc2 := gc1+gcom2;
  end;{}
  end else gc1 := gcs;
end;

{ TCusGaEl }

function TCusGaEl.GetGazEle1: real;
begin
  Result := fTAUX;
end;

function TCusGaEl.GetGazEle2: real;
begin
  Result := fMontant;
end;

function TCusGaEl.GetGazEle3: real;
begin
  Result := fTVA;
end;

function TCusGaEl.GetGazEle4: real;
begin
  Result := fVale;
end;

procedure TCusGaEl.SetGazEle1(const Vale: Real);
begin
  inherited;
  fTAUX := Vale;
end;

procedure TCusGaEl.SetGazEle2(const Vale: Real);
begin
  inherited;
  if Vale > 0 then
    fMontant := Vale
    else fMontant := 0;
end;

procedure TCusGaEl.SetGazEle3(const Vale: Real);
begin
  inherited;
  fTVA := Vale;
end;

procedure TCusGaEl.SetGazEle4(const Vale: Real);
begin
  inherited;
  fVale := Vale;
end;

function TCusGaEl.Totg: Real;
begin
  Result := fMontant+fVale;
end;

function TCusGaEl.TVA1: real;
begin
  Result := fMontant*fTAUX;
end;

function FonctionGazElecClass: TCusGaElClass;
begin
  Result := TCusGaEl;
end;


end.


----------------------------

الكود:

unit untCalcGazElecs;

interface

type
 TGaEl = class
  protected
  procedure SetGazEle1(const Vale: Real); virtual; abstract;
  procedure SetGazEle2(const Vale: Real); virtual; abstract;
  procedure SetGazEle3(const Vale: Real); virtual; abstract;
  procedure SetGazEle4(const Vale: Real); virtual; abstract;
  function GetGazEle1: real; virtual; abstract;
  function GetGazEle2: real; virtual; abstract;
  function GetGazEle3: real; virtual; abstract;
  function GetGazEle4: real; virtual; abstract;
  public
  function TVA1: real; virtual; abstract;
  function Totg: Real; virtual; abstract;
  property TAUX: real read GetGazEle1 write SetGazEle1;
  property Montant: real read GetGazEle2 write SetGazEle2;
  property TVA: real read GetGazEle3 write SetGazEle3;
  property Value: real read GetGazEle4 write SetGazEle4;
 end;
 
implementation

end.

_________________

ali1
مبرمج مجتهد

عدد المساهمات : 857
تاريخ التسجيل : 29/07/2013

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

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


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