Thema: Delphi procedure-übergabe

Einzelnen Beitrag anzeigen

gekmihesg
(Gast)

n/a Beiträge
 
#1

procedure-übergabe

  Alt 21. Dez 2004, 15:02
hallo

ich versuche einem popupmenü mit einer procedure ein item zuzuordnen. wahlweise soll man halt auch noch gleich eine onClick procedure übergeben können.
hier mal der code:

Delphi-Quellcode:
procedure TForm1.ReadNaClick(Sender: TObject);
begin
  { ... }
end;

procedure TForm1.userlvMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);

  procedure AddPopupItem(text: string; ocladdr: Pointer = nil);
    var a: TMenuItem;
    begin
      a := TMenuItem.Create(userlvpop);
      a.Caption := text;
      if ocladdr <> nil then
        a.OnClick := TNotifyEvent(ocladdr^);
      userlvpop.Items.Add(a);
    end;

var user: TUser;
begin
  if (userlv.Selected = nil) or (button <> mbRight) then exit;
  user := TUser(users.Items[indexbyname(userlv.Selected.Caption)]);
  AddPopupItem(user.ip);
  if user.status = stat_away then
    begin
      AddPopupItem('-');
      AddPopupItem('"Abwesend"-Nachricht lesen',@ReadNaClick); // fehler: Varible erforderlich
    end;
  userlvpop.Popup(mouse.CursorPos.X,mouse.CursorPos.Y);
  userlvpop.Items.Clear;
end;
und dann noch ne frage: wenn ich userlvpop.Items.Clear aufrufe werden die items dann richtig freigegeben?

achja was mache ich in dem code falsch?
  Mit Zitat antworten Zitat