UnitAのEdit.TextへUnitBからアクセスするには?

解決


Msun  2006-09-22 11:47:50  No: 23324

UnitAのEditChPlay1.TextへUnitBのSpinEditSetChPlay1の値を書き込みたいので次のように記述したところエラー「未定義のEditChPlay1」となります。
どうしたらいいか教えてください。よろしくお願いします。
procedure SetPlayChannel(aValue: Integer; aEdit: TEdit);
begin
  if aValue = 0 then
    begin
      aEdit.Color := clBtnFace;
    end else
    begin
      aEdit.Color := clWindow;
      aEdit.Enabled := true;
      aEdit.Text := IntToStr(aValue);
      aEdit.Enabled := False;
    end;
end;

procedure TFormSetup.SpinEditSetChPlay1Change(Sender: TObject);
begin
  SetPlayChannel(SpinEditSetChPlay1.Value, EditChPlay1);
end;


Syake  2006-09-22 17:27:00  No: 23325

UnitAのimplementationにUnitBをUsesしてください。
直接記述か、[ファイル]→[Unitを使う]で追加するか

UnitA
・・・・
・・・・
implementation
uses UnitB;


Syake  2006-09-22 17:30:46  No: 23326

それから
UnitBがForm2として

procedure TFormSetup.SpinEditSetChPlay1Change(Sender: TObject);
begin
  SetPlayChannel(SpinEditSetChPlay1.Value, From2.EditChPlay1);
end;
で、如何でしょうか。


Msun  2006-09-22 17:35:08  No: 23327

Syakeさん早速のアドバイスありがとうございます。
ソースではご指摘の記述はしてありますがエラーとなります。
尚、
procedure SetPlayChannel(aValue: Integer; aEdit: TEdit);
begin
  if aValue = 0 then
    begin
      aEdit.Color := clBtnFace;
    end else
    begin
      aEdit.Color := clWindow;
      aEdit.Enabled := true;
      aEdit.Text := IntToStr(aValue);
      aEdit.Enabled := False;
    end;
end;

procedure TFormSetup.SpinEditSetChPlay1Change(Sender: TObject);
begin
  SetPlayChannel(SpinEditSetChPlay1.Value, EditChPlay1);
end;
に記述はUnitBに在ります。


ofZ  2006-09-22 22:05:50  No: 23328

> 「未定義のEditChPlay1」
名前が EditChPlay1 のTEditが本当にありますか?


ofZ  2006-09-22 22:16:08  No: 23329

ミス

UnitA
 TForm????
   EditChPlay1

UnitB
 TFormSetup
   SpinEditSetChPlay1

このような感じですね。

EditChPlay1は、TForm????の所有物なので、TFormSetup上からは見えません。

だから、Syakeさんのような回答になります。
Syake 2006/09/22(金) 08:30:46 
>  SetPlayChannel(SpinEditSetChPlay1.Value, From2.EditChPlay1);

どのフォームのEditChPlay1であるか、きっちりしないといけません。


Msun  2006-09-23 00:38:31  No: 23330

Syakeさん、ofZさんありがとうございました。
ちゃんと値を入力表示できるようになりました。今後ともよろしくお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加