掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
仮想メソッドを呼び出すには? (ID:46608)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Winndows8.1 + Delphi7, Delphi XE6 どうかご教授願います。 Unit1からUnit2の仮想メソッドを呼び出しているのですが、コンパイルは通りますが、実行時に EAccessViolationが発生してしまいます。 仮想メソッドを通常のメソッドにすると実行時エラーは出ません。 どこがおかしいのでしょうか? よろしくお願いします。 ----Unit1.pas----------------------------------------------------------------------- unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; //Unit2; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private //FT2: T2Child; end; var Form1: TForm1; implementation uses Unit2; var FT2: T2Child; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin ShowMessage(FT2.GetF); end; end. ----Unit2.pas----------------------------------------------------------------------- unit Unit2; interface type T2 = class protected function GetF: string; virtual; abstract; end; type T2Child = class(T2) public function GetF: string; override; end; implementation { T2 } function T2Child.GetF: string; begin Result := 'T2Child !!!'; end; end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.