//Base.pas
TSituation = class(TObject)
public
procedure Update;virtual;abstract;
procedure Reflect;virtual;abstract;
end;
//Title.pas
TSceneTitle = class(TSituation)
private
・
・
・
public
constructor Create;
destructor Destroy;override;
procedure Update;override;
procedure Reflect;override;
end;
//main.pas(メインフォーム)
unit main;
interface
uses
・・・, Base, Title;
・
・
・
var
fm_main: Tfm_main;
Situation: TSituation;
---------------------------------------------------
こう、きちんとクラスの宣言も継承もしているのに、(しているはず
Situation := TSceneTitle.Create;
とすると互換性がないといってコンパイルエラーになります。
なにかおかしいところがあるのでしょうか。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
簡単のため下のコードのように一つのunitで試したところ、コンパイル、実行できました。
unitの参照の問題かもしれません。Windows XP Pro SP3 + Delphi7 Pro 及び Vista Ultimate SP1 + Delphi2009 Proで試しました。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
public
end;
//Base.pas
TSituation = class(TObject)
public
procedure Update;virtual;abstract;
procedure Reflect;virtual;abstract;
end;
//Title.pas
TSceneTitle = class(TSituation)
private
public
constructor Create;
destructor Destroy;override;
procedure Update;override;
procedure Reflect;override;
end;
var
Form1: TForm1;
Situation: TSituation;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Situation := TSceneTitle.Create;
end;
Constructor TSceneTitle.Create;
begin
ShowMessage('TSceneTitle.Create');
end;
destructor TSceneTitle.Destroy;
begin
end;
procedure TSceneTitle.Update;
begin
end;
procedure TSceneTitle.Reflect;
begin
end;
end.
この回答への補足
書き忘れましたが、Delphi6Personal使用です。
>一つのunitで
それなりの大きさのゲームに挑戦中なので、
ちょっと無理が・・・^^;
コード補完機能はちゃんと働くし、(←画像)http://imagepot.net/view/123087053878.jpg
コンパイルエラーにも出ないのでユニットの循環参照なんかは
起こってないかと思いますが・・・
自己解決しました。
わざわざテストまでして頂いてありがとうございました。
最初にBace.pasをつくり、途中でスペルにきづいてBase.pasに
変更した際、Bace.dcuが残ったままだったようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby No route matches [GET] "/posts/5/destroy" 1 2022/03/24 13:00
- Java java final 1 2022/06/10 22:49
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Java eclipse実行ができない 2 2022/07/27 04:47
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pythonのerrorコード
-
パイソンのクラス
-
No route matches [GET] "/post...
-
Rubyについて質問です
-
テンプレートの特殊化でコンパ...
-
Ruby
-
クラス名やモジュール名の競合...
-
Ruby ハッシュ継承クラス、作成...
-
ぱいソン
-
Ruby:シルバーについて
-
実行時エラー450:引数の数が一...
-
正規表現で両端に文字列を置換
-
get() と find() の違いについて
-
VBA/GetTickCountの49.7日の境...
-
Csvファイルの最終行を取得する...
-
Rubyでクラスファイルをディレ...
-
エラー「メソッドまたはデータ...
-
10円未満を切り捨てる方法は?
-
VBAで型が一致しないエラー(バ...
-
Ruby 特異メソッドのnewが先に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
pythonのerrorコード
-
What class are you in? には何...
-
パイソンのクラス
-
No route matches [GET] "/post...
-
クラス名やモジュール名の競合...
-
Rubyについて質問です
-
変数の隠蔽とは?
-
HSTLやSSTL等のI/Oピン
-
クラスの再定義について(C++)
-
redirect先でredirect元の変数...
-
Ruby ハッシュ継承クラス、作成...
-
classのdelete
-
Rubyの質問です
-
PostScript言語で定積分の計算
-
class roomとclassroom どちら...
-
テンプレートの特殊化でコンパ...
-
get() と find() の違いについて
-
「arg」は何の略?
-
エラー「メソッドまたはデータ...
-
教えてください。vb5.0
おすすめ情報