uses dmInfo;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
with dmInfo do
begin
tblInfo.Open;
end;
いくつかのわかりやすい理由から、tblInfoは宣言されていない識別子とみなされます。助けてください。宣言されていない識別子データベーステーブルが認識されない
おかげ
uses dmInfo;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
with dmInfo do
begin
tblInfo.Open;
end;
いくつかのわかりやすい理由から、tblInfoは宣言されていない識別子とみなされます。助けてください。宣言されていない識別子データベーステーブルが認識されない
おかげ
コンパイラは、あなたがそれをqualifedていないため「tblInfo」であるものを解決することはできません。これはユニット 'dmInfo'の範囲内に直接存在するものではありませんが、おそらく 'dmInfo'にあるデータモジュールに属している可能性があります。あなたのデータモジュールの名前が「DataModuleの」あるのであれば、たとえば、あなたはそれがすべての曖昧さを起こさない場合は、ユニット名を省略することができます
with dmInfo.DataModule do
begin
tblInfo.Open;
を記述します。
with DataModule do
さらに今はwith
を避けて、わかりにくい問題から自分を守ってください。
DataModule.tblInfo.Open;
ニースキャッチ、+1ですが、これが問題の種類であることを指摘する機会を逃してしまうのは残念です。 – MartynA
@Martyn - 少なくともこのコードはコンパイルされませんでした。
私はこの問題が 'with'と直接関係しているとは思わない。ポスターはまだ 'dmInfo.tblInfo'としてテーブルを修飾しようとする可能性があります。 –
データモジュールに「DataModule」のような名前が付けられていることに同意していることが分かりましたが、本当の問題は名前付けの方法です。まず、重要な**オブジェクト**にDataModuleの代わりに意味のある名前dmInfoを与えてから、そのオブジェクトの名前に基づいてユニットの名前を選択します。システムの接尾辞は次のようになります。 dmInfou)または接頭辞。あなたがその習慣に慣れていれば、あなたはこのqを生み出したような滑りを避けるでしょう。また、疫病のような "with"を避けてください。 – MartynA