unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
procedure TForm1.FormCreate(Sender: TObject);
procedure testa;
private
a: Integer;
public
end;
var
Form1: TForm1;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
a:=0;
testa;
end;
procedure TForm1.testa;
begin
a:=a+1;
end;
end.
例えば上記のようなプログラムがある場合、testaの処理内容を別のファイルに記述して実行するにはどのようにしたらいいのでしょうか?
現在作っているプログラムのコードの量が多くなったので分けたいのですがやり方がいまいち分かりません。
$Iを使えば?
別ファイルをUnit2.pasとします
unit Unit1;
uses
Unit2; <-新たに追加
Unit2.pas
------------------------------------
unit Unit2;
interface
uses
Windows, Messages;
function Hoge(i:integer):integer;
implementation
function Hoge(i:integer):integer;
begin
Result:=i + i;
end;
end.
-------------------------------------------
見たいにすればおけです。
>放浪者さん
ヘルプを見てみたのですが、インクルードされる側のファイルはどのように記述すればいいのでしょうか?
>もにゃさん
解答ありがとうございます。
答えていただいた例を参考にしてできそうです。
ただ、実際のプログラムでは、testaにあたる処理の中でTForm1で定義されているフィールドをいくつも使っているので、
パラメータとして値を渡すとどうも見栄えが悪くなりそうなのでパラメータとして渡さずにする方法はないでしょうか?
理想としては、testaの処理部分をそのまま別のファイルに記述して、
コンパイルするときにその別のファイルを付け加えてコンパイルする、というような感じにしたいのですが。
たぶんコンナ感じ
Unit1.pas---------------------------------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure testa;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
a: Integer;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{$I include.txt}
procedure TForm1.FormCreate(Sender: TObject);
begin
a:=0;
testa;
end;
end.
Include.txt------------------------------------------------------------
procedure TForm1.testa;
begin
a:=a+1;
Caption := IntToStr(a);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
testa;
end;
>放浪者さん
早速試してみたところ、思っていたとおりのことができました。
ありがとうございました。
ツイート | ![]() |