-5

ListBox の文字列をイベントに変換したいと考えています。「Image5」という文字列がある場合と同様に、手順で Image5.Click イベントを取得したいと思います。出来ますか?

4

1 に答える 1

4

私があなたの質問を正しく理解してListBoxいれば、リスト ボックス内のすべてのコンポーネントが同じタイプ (たとえばTImage

procedure TForm1.ListBox1DblClick(Sender: TObject);
var
  Image: TImage;
  Selected: string;
begin
  if ListBox1.ItemIndex = -1 then
    Exit;
  Selected := ListBox1.Items[ListBox1.ItemIndex];
  Image := FindComponent(Selected) as TImage;
  if Assigned(Image) then
    if Assigned(Image.OnClick) then
      // You can access Image.OnClick here. In this case, I'll
      // just call it directly with a nil Sender parameter.
      Image.OnClick(nil);
end;

ただし、 を呼び出すだけの場合はImage.OnClick、より直接的に行うことができます(Davidが私の回答へのコメントで述べたように):

if Assigned(Image) then
  Image.Click;    // Automatically calls OnClick if assigned
于 2013-03-18T21:55:57.047 に答える