ShellListViewの列をクリックしたときに
ソートをするようにしたいと思っています。
<a href="https://www.petitmonte.com/bbs/answers?question_id=3043">https://www.petitmonte.com/bbs/answers?question_id=3043</a>にそのものズバリの回答がありましたので、同様にコードを追加したのですが、コンパイルしたところ、
'ShellListView1ColumnClick' の宣言がすでに定義されているものと異なります
とコンパイルエラーが表示されてしまいました。
以下の作業を行っただけでも上記エラーとなってしまいます。
①デザイナにて、「ShellListView1」コントロールを選択し、
「オブジェクトインスペクトタ」の「イベント」にて、
「OnColumnClick」の欄をダブルクリック
②pasファイルに以下のコードが追加されるので、
1行だけコードを追加してコンパイル
(中身が空でコンパイルした場合は、コードが自動で消去されてしまいますので、
「exit」だけを追加してコンパイルしました。)
procedure TForm1.ShecllListView1ColumnClick(Sender: TObject; Column: TListColumn);
begin
exit; //1行だけ追加
end;
上記手順だけでも上記のコンパイルエラーとなってしまいます。
(エラーメッセージから、親クラスでも同様のイベントハンドらが
定義されているのかな?と思い、overrideなどをつけたりしたのですが
やはり同じエラーになるようでした。)
イベントハンドラをデザイナから追加しただけでもエラーになるため、
Delphiの問題かと思っているのですが、環境の問題なのでしょうか?
(Delphiのバージョンは2007です。)
もし原因がわかる方がいらっしゃいましたら、
教えていたいてもよろしいでしょうか?
>procedure TForm1.ShecllListView1ColumnClick(Sender: TObject; Column: TListColumn);
これはコピペじゃなくて手書きみたいだけど(微妙にスペルが間違ってる)、
D2007で新規プロジェクトにShellListViewを貼り付けて
OnColumnClickイベントハンドラをデザイナから追加した場合には
どんな引数のコードが追加されるの?
ご回答いただきありがとうございます。
また、スペルが誤っており間違っていて申し訳ございません。
(手書きでした)
教えていただいた、
新規フォームにShellListViewをはりつけ、OnColumnClickイベントハンドラをデザイナから追加した方法では正常にコンパイルできました。
違いを調べたところ、usesで読み込んでいたソースに、
「TListItem」というクラスを自前定義していたことが
コンパイルエラーの原因となっていました。
(クラスの名前を変更することで解決することができました。)
初歩的なミスでしたが、大分悩んでおりました。。。
解決の糸口を教えていただき、
誠にありがとうございました!
ツイート | ![]() |