home | download | link | about
  home > download > resistor basic calculator

The Most Popular Tags
series resistor, Resistor Basic Calc, parallel resistor, RESISTOR, freeware, Delta to Star Conversion, Turbo Delphi, Resistor Calculator, Resistor basic circuit, Star to Delta Conversion


Google

Your Freeware Download Source!

Resistor Basic Calc V 1.0

Resistor is the simplest electronics component, but its very useful for all electronic circuits.. This software used to calculate value of basic circuit of resistor with series, parallel, and delta / wye configuration. And of course, we use Ohm law's as formula. Download executable file and source files

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, StdCtrls, Buttons, jpeg;

type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
St: TTabSheet;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Label3: TLabel;
RCountEdit: TEdit;
bApplyRes: TButton;
ScrollBox1: TScrollBox;
bClear: TButton;
CalcSeries: TButton;
Edit1: TEdit;
LUnit1: TLabel;
CalcParalel: TButton;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
Button3: TButton;
LRA: TLabel;
Edit2: TEdit;
LUnit2: TLabel;
LRB: TLabel;
LRC: TLabel;
Edit3: TEdit;
LUnit3: TLabel;
TabSheet3: TTabSheet;
Panel4: TPanel;
Panel5: TPanel;
Image1: TImage;
UpDown1: TUpDown;
procedure bApplyResClick(Sender: TObject);
procedure bClearClick(Sender: TObject);
procedure CalcSeriesClick(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
procedure CalcParalelClick(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
RLabels: array[1..20] of TLabel;
RValues: array [1..20] of TEdit;
RUnit: array[1..20] of TLabel;
RCount: integer;
satuan: string;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.bApplyResClick(Sender: TObject);
var
i, j: integer;
begin
//Create components as according to wanted resistor for seriess % parallel
bClearClick(sender);
j:= 0;
RCount:= StrToInt(RCountEdit.Text);
for i := 1 to StrToInt(RCountEdit.Text) do
begin
RLabels[i]:=TLabel.Create(Form1);
RLabels[i].Caption:='R' + IntToStr(i);
RLabels[i].Parent:= ScrollBox1;
RLabels[i].Top:= j + 8;
RLabels[i].Left:= 8;

RValues[i]:= TEdit.Create(Form1);
RValues[i].Text:='0';
RValues[i].Parent:= ScrollBox1;
RValues[i].Top:= j + 8;
RValues[i].Left:= 40;

RUnit[i]:=TLabel.Create(Form1);
RUnit[i].Parent:= ScrollBox1;
RUnit[i].Caption:= satuan;
RUnit[i].Top:= j + 8;
RUnit[i].Left:= RValues[i].Left + RValues[i].Width + 4;
j:= j + 22;
end;
ActiveControl:= RValues[1];
end;

procedure TForm1.bClearClick(Sender: TObject);
var
i: integer;
begin
//Freeing unwanted components
if RCount <> 0 then
begin
for i:=1 to RCount do
begin
RLabels[i].Free;
RValues[i].Free;
RUnit[i].Free;
end;
end;
RCount:= 0;
Edit1.Text:= '';
Edit2.Text:= '';
Edit3.Text:= '';
end;


procedure TForm1.CalcSeriesClick(Sender: TObject);
var
i: integer;
seri: real;
begin
//Calculate series resistor
seri:= 0;
for i:=1 to Rcount do
begin
seri:= seri + StrToFloat(Rvalues[i].Text);
end;
Edit1.Text:= FloatToStr(seri);
end;

procedure TForm1.PageControl1Change(Sender: TObject);
begin
LRA.Caption:= 'Rtotal';
if PageControl1.ActivePageIndex = 1 then
begin
bClearClick(sender);
RadioGroup2.Parent:= Panel2;
Label3.Parent:= Panel2;
RCountEdit.Parent:= Panel2;
UpDown1.Parent:= Panel2;
bApplyRes.Parent:= Panel2;
bClear.Parent:= Panel2;
ScrollBox1.Parent:= Panel2;
LRA.Parent:= Panel2;
Edit1.Parent:= Panel2;
LUnit1.Parent:= Panel2;
end;
if PageControl1.ActivePageIndex = 0 then
begin
bClearClick(sender);
RadioGroup2.Parent:= Panel1;
Label3.Parent:= Panel1;
RCountEdit.Parent:= Panel1;
UpDown1.Parent:= Panel1;
bApplyRes.Parent:= Panel1;
bClear.Parent:= Panel1;
ScrollBox1.Parent:= Panel1;
LRA.Parent:= Panel1;
Edit1.Parent:= Panel1;
LUnit1.Parent:= Panel1;
end;
if PageControl1.ActivePageIndex = 2 then
begin
bClearClick(sender);
RadioGroup2.Parent:= Panel3;
ScrollBox1.Parent:= Panel3;
RadioGroup1Click(sender);
LRA.Parent:= Panel3; //LRA.Caption:= 'RA';
Edit1.Parent:= Panel3;
LUnit1.Parent:= Panel3;
bClear.Parent:= Panel3;
end;
end;

procedure TForm1.CalcParalelClick(Sender: TObject);
var
R: array[1..20] of real;
RT, RMul, RSum: real;
i: integer;
begin
//Calculate parallel resistor
RMul:= 1; RSum:= 0;
for i:= 1 to RCount do
begin
R[i]:= StrToFloat(RValues[i].Text);
RMul:= RMul * R[i];
RSum:= RSum + R[i];
end;
RT:= RMul / RSum;
Edit1.Text:= FloatToStr(RT);
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
var
i, j: integer;
begin
//Create components as according to wanted resistor for delta-star
bClearClick(sender);
j:= 0; Rcount:= 3;
case RadioGroup1.ItemIndex of
0: begin
for i:= 1 to RCount do
begin
RLabels[i]:=TLabel.Create(Form1);
RLabels[i].Caption:='RD' + IntToStr(i);
RLabels[i].Parent:= ScrollBox1;
RLabels[i].Top:= j + 8;
RLabels[i].Left:= 8;

RValues[i]:= TEdit.Create(Form1);
RValues[i].Text:='0';
RValues[i].Parent:= ScrollBox1;
RValues[i].Top:= j + 8;
RValues[i].Left:= 40;

RUnit[i]:=TLabel.Create(Form1);
RUnit[i].Parent:= ScrollBox1;
RUnit[i].Caption:= satuan;
RUnit[i].Top:= j + 8;
RUnit[i].Left:= RValues[i].Left + RValues[i].Width + 4;
j:= j + 22;
end;
LRA.Caption:= 'RY1';
LRB.Caption:= 'RY2';
LRC.Caption:= 'RY3';
ActiveControl:= RValues[1];
end;
1: begin
for i:= 1 to RCount do
begin
RLabels[i]:=TLabel.Create(Form1);
RLabels[i].Caption:='RY' + IntToStr(i);
RLabels[i].Parent:= ScrollBox1;
RLabels[i].Top:= j + 8;
RLabels[i].Left:= 8;

RValues[i]:= TEdit.Create(Form1);
RValues[i].Text:='0';
RValues[i].Parent:= ScrollBox1;
RValues[i].Top:= j + 8;
RValues[i].Left:= 40;

RUnit[i]:=TLabel.Create(Form1);
RUnit[i].Parent:= ScrollBox1;
RUnit[i].Caption:= satuan;
RUnit[i].Top:= j + 8;
RUnit[i].Left:= RValues[i].Left + RValues[i].Width + 4;
j:= j + 22;
end;
LRA.Caption:= 'RD1';
LRB.Caption:= 'RD2';
LRC.Caption:= 'RD3';
ActiveControl:= RValues[1];
end;
end;
end;

procedure TForm1.RadioGroup2Click(Sender: TObject);
var
i: integer;
begin
//Define resistor unit
case RadioGroup2.ItemIndex of
0: satuan:= 'Ohm';
1: satuan:= 'KOhm';
2: satuan:= 'MOhm';
end;
for i:=1 to RCount do
RUnit[i].Caption:= satuan;
LUnit1.Caption:= satuan;
LUnit2.Caption:= satuan;
LUnit3.Caption:= satuan;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
RD1, RD2, RD3, RY1, RY2, RY3: real;
begin
//Calculate star-delta conversion
case RadioGroup1.ItemIndex of
0: begin //delta to wye conversion
RD1:= StrToFloat(RValues[1].Text);
RD2:= StrToFloat(RValues[2].Text);
RD3:= StrToFloat(RValues[3].Text);
RY1:= (RD2*RD3) / (RD1+RD2+RD3);
RY2:= (RD1*RD3) / (RD1+RD2+RD3);
RY3:= (RD1* RD2) / (RD1+RD2+RD3);
Edit1.Text:= FloatToStr(RY1);
Edit2.Text:= FloatToStr(RY2);
Edit3.Text:= FloatToStr(RY3);
end;
1: begin //wye to delta conversion
RY1:= StrToFloat(RValues[1].Text);
RY2:= StrToFloat(RValues[2].Text);
RY3:= StrToFloat(RValues[3].Text);
RD1:= RY2+RY3+ (RY2*RY2 / RY1);
RD2:= RY1+RY3+ (RY1*RY3 / RY2);
RD3:= RY1*RY2+ (RY1*RY2 / RY3);
Edit1.Text:= FloatToStr(RD1);
Edit2.Text:= FloatToStr(RD2);
Edit3.Text:= FloatToStr(RD3);
end;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
PageControl1.ActivePageIndex:= 0;
RadioGroup2Click(sender);
RCountEdit.Text:= '';
Edit1.Text:= '';
end;

end.

 

back to top
home | download | link | about | sitemap | term of agreement | feedback
copyright 2005-2007 plakn.com