BorlandDelphi7を使用してPascalプログラミングを行っています。複雑な数学関数のかなり基本的な(そして無料の)ソースコードライブラリをダウンロードしましたが、残念ながら、使用例はありませんでした。私はPascalのクラスにあまり詳しくないので、始めるにはその使用法の簡単な例を1つだけ必要だと思います。
何でもかまいません。2つの数字を足し合わせた例でも始められます。これが私が試したことです(私が知っている非常に足の不自由な人)。私の問題は、クラスコンストラクターの使い方がわからないことだと思います。
uses ComplexMath in 'complexmath.pas'
var z1,z2,z3 : TComplexNumber;
begin
z1.R:=1.0; z1.I:=2.0;
z2.R:=3.0; z2.I:=-1.0;
z3 := TComplexMath.Add(z1,z2);
end.
TComplexMathの完全なソースコードは、http://delphi.about.com/library/weekly/aa070103a.htmから入手できます。また、以下のソースコードの部分的なリストを切り取って貼り付けました(このコードは、切り取られたことを明示的に示した場合を除いて、完全なファイルであることに注意してください)。
TComplexMathの部分的なソースコードリストは次のとおりです。
unit ComplexMath;
interface
uses Windows, SysUtils, Classes, Controls, Math;
type
TComplexNumber = record
R : single;
I : single;
end;
TComplexMath = class(TComponent)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner : TComponent); override;
function Add(C1, C2 : TComplexNumber) : TComplexNumber; overload;
{ Returns the complex sum of C1 and C2 }
function Add(C1, C2, C3 : TComplexNumber) : TComplexNumber; overload;
{ Returns the complex sum of C1 and C2 and C3 }
... and a bunch more like this ...
implementation
procedure Register;
begin
RegisterComponents('delphi.about.com', [TComplexMath]);
end;
constructor TComplexMath.Create(AOwner : TComponent);
begin
inherited Create(AOwner);
end;
function TComplexMath.Add(C1, C2 : TComplexNumber) : TComplexNumber;
begin
Result.R := C1.R + C2.R;
Result.I := C1.I + C2.I;
end;
... and a bunch more like this ...
end.
しばらく苦労した後、私は最終的にクラス定義を取り除き、関数自体だけを使用しました(関数の単純なライブラリのように)。そして、これは私にとってはうまくいっていますが、このコンポーネントがどのように使用されることを意図していたかではないことを私は知っています。誰かがこのクラスを意図した方法で使用する非常に簡単な例を見せてくれたら本当にありがたいです。