# Parse ein XML Document use XML::Simple; my $xml = new XML::Simple; my $doc = $xml->XMLin("file.xml"); # Zähle Anzahl Einträge my $rowCount=0; foreach my $key (keys (%{$doc->{item}})){ $rowCount++; } # Erstelle Grid $self->{grid} = Wx::Grid->new($self->{tab}, -1); $self->{grid}->CreateGrid($rowCount,4); $self->{grid}->SetColLabelValue(0,"A"); # Füge dem Grid anhand der XML Datei die Einträge hinzu my $row=0; foreach my $key (keys (%{$doc->{item}})){ my $name = $doc->{item}->{$key}->{'name'}; $self->{grid}->SetCellValue($row,1, $name); $row++; } # Füge Rechtsklick-Event hinzu für Grid Zellen Wx::Event::EVT_GRID_CELL_RIGHT_CLICK($self, \&showPopupMenu); # Das PopUp Menü an sich sub showPopupMenu { my ($self,$event) = @_; my $pos = $event->GetPosition(); my $row = $event->GetRow(); # Connect Event Wx::Event::EVT_MENU($self, "101", sub { $self->onSelect($event); }); my $menu = Wx::Menu->new(); my $download = Wx::MenuItem->new($menu, "101","Select"); $menu->AppendItem($download); $menu->Append($loeschen); $menu->Append($neustart); $self->PopupMenu($menu, $pos); $menu->Destroy(); } sub onSelect { my ($self,$event) = @_; my $row = $event->GetRow(); $self->{grid}->SetCellValue($row,1, "Text"); # Disconnect Event Wx::Event::EVT_MENU($self, "101",""); }