Thread GUI in Form von Windows Explorer erstellen (15 answers)
Opened by Mampfgnom at 2010-10-27 15:05

Gast Mampfgnom
 2010-10-28 10:13
#142256 #142256
So mittlerweile habe ich einen groben Plan wie ich vorgehen kann. Zum Testen habe ich mir erst mal nur eine HList erstellt und will in dieser durch die Ordner navigieren können, d.h. klicke ich in der HList auf einen Eintrag, wird die ganze HList gelöscht und mit dem neuen Ordnerinhalt gefüllt. Ich hänge zur Zeit allerdings beim Löschen der HList:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/perl -w
use strict;
use Tk;
use Tk::HList;
use Tk::ItemStyle;
use Cwd;

my $mw = MainWindow->new();
$mw->geometry("400x600");

chdir "..";
my $cwd = getcwd;

my $hlist = $mw->HList(-columns=>2,
                                                          -command=>\&neues_verzeichnis($cwd)           # die Zeile wird noch so angepasst, dass das neue Verzeichnis übergeben wird
                                                        )->pack(-expand=>1, -fill=>'both');

my $red  = $hlist->ItemStyle('text', -foreground=>'#800000');

&neues_verzeichnis($cwd,$hlist);

Tk::MainLoop;

sub neues_verzeichnis{
        my @inhalt;
        my $e;
        opendir(DIR, $_[0]);
        while (my $tmp = readdir(DIR)) {
                push(@inhalt,$tmp);
        };
        $hlist->deleteAll;      
        foreach (sort(@inhalt)) {
            $e = $hlist->addchild("");
            $hlist->itemCreate($e, 0, -itemtype=>'text',
                     -text=>$_, -style=>$red );
        }
}


Er bringt mir den Fehler:

Can't call method "deleteAll" on an undefined value at test.pl line 31.

Ich habe die HList auch schon als Argument an die Sub übergeben und alle möglichen gloablen und lokalen Definitionen durchprobiert, aber nichts hat geholfen. Kann mir bitte jemand sagen worauf sich das "undefined value" bezieht und wo meni Fehler liegt?

Danke,

Niels
Last edited: 2010-10-28 10:18:45 +0200 (CEST)

View full thread GUI in Form von Windows Explorer erstellen