関数を作る時の制限?

解決


チャート  2005-11-20 14:40:25  No: 18829  IP: 192.*.*.*

ListViewのアイテムがしょっちゅう書き換わるので、
書き換えるコードを関数にまとめてしまおうとしたのですが、
未定義の識別子 : 'ListView1'と出てコンパイルできません。
コンポーネントの動作を関数に組み込む事は不可能なんでしょうか?
どなたか解決法を教えて下さい。

編集 削除
チャント  2005-11-20 14:47:55  No: 18830  IP: 192.*.*.*

使用している環境を記載。
少なくともその関数のコードを提示。

答えようがありません。

編集 削除
チャート  2005-11-20 15:12:13  No: 18831  IP: 192.*.*.*

情報が足りなく、申し訳ありませんでした。
Delphi6personalでコードを書いています。
以下が問題のコードです。アプリのあるフォルダのtxtファイルを、
すべてListViewに書き出していくというものです。

procedure ListViewRefresh;
var
    path : string ;
    rs : integer ;
    sr:TSearchRec;
begin
  ListView1.Clear;
  path := ExtractFilePath(Application.ExeName)+'*.txt';
  rs := FindFirst(path,faAnyFile,sr);
  while rs=0 do begin
    listview1.Items.Add.Caption:=(sr.Name);
    rs:=FindNext(sr);
  end;
  FindClose(sr);

end;

これでコンパイルをしようとすると未定義の識別子 : 'ListView1'と出てしまいコンパイルができません…。

編集 削除
りおりお  2005-11-20 15:45:29  No: 18832  IP: 192.*.*.*

> これでコンパイルをしようとすると未定義の識別子 : 'ListView1'と出てしまいコンパイルができません…。

それは普通の関数ですよね。通常は ListView1 などは Form1 のフィールドに
なってますから Form1.ListView1 としてアクセスしないとダメです。

わたしだったら、

procedure ListViewRefresh(LV: TListView);
var
    path : string ;
    rs : integer ;
    sr:TSearchRec;
begin
  LV.Clear;
....

などとしますが。

編集 削除
チャート  2005-11-20 19:39:35  No: 18833  IP: 192.*.*.*

りおりお様、ありがとうございます
思い通りにできました

編集 削除