掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ユニット分割について (ID:150041)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ずっと読んでいましたが、なんだかよく分からなくなってきました(汗 最初に申し上げましたが、関数とメソッドは異なる物です。 通常はクラスを作成し、クラス自体を部品と捉え、流用したりします。 Mr.XRAY様が提示したコードが一般的な手法だと思います。 通常はこんな場面に遭遇しませんが、 もしかして下記の様な事を求めていらっしゃいます? コンパイラ指令のincludeを使用してユニット(ファイル)を分割するコードを貼り付けます。 【 メインフォームのユニット:Unit1.pas 】 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TMainForm = class( TForm ) Button1 : TButton; procedure Button1Click( Sender: TObject ); // プロトタイプ宣言のインクルード {$INCLUDE SubType.pas} private { Private 宣言 } public { Public 宣言 } end; var MainForm: TMainForm; implementation {$R *.dfm} // コードのインクルード {$INCLUDE SubCode.pas} procedure TMainForm.Button1Click( Sender: TObject ); begin Go( Sender, Self ); end; end. 【 プロトタイプ宣言のユニット:SubType.pas 】 procedure Go( Sender: TObject; Form: TForm ); procedure Click( Sender: TObject ); procedure MouseMove( Sender: TObject; Shift: TShiftState; X, Y: Integer ); 【 コードのユニット:SubCode.pas 】 procedure TMainForm.Go( Sender: TObject; Form: TForm ); var TF : TForm; TI : TImage; begin // フォーム TF := TForm.Create( nil ); TF.Parent := nil; TF.Caption := 'overlay'; TF.FormStyle := fsStayOnTop; TF.Position := poScreenCenter; TF.Width := 300; TF.Height := 200; TF.Show; // イメージ TI := TImage.Create( nil ); TI.Parent := TForm( TF ); TI.Transparent := True; TI.Canvas.Ellipse( 0, 0, 100, 100 ); TI.OnClick := Click; TI.OnMouseMove := MouseMove; end; procedure TMainForm.Click( Sender: TObject ); begin ShowMessage( 'Click!' ); end; procedure TMainForm.MouseMove( Sender: TObject; Shift: TShiftState; X, Y: Integer ); begin TForm( TImage( Sender ).Parent ).Caption := 'Move!'; end; ※ プロジェクトマネージャには、SubType.pasとSubCode.pasを含めない様にして下さい。 アプリケーションのプロジェクトディレクトリにファイルを置くだけです。 もし、外していたらすみません。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.