7 Einträge, 1 Seite |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for my $file (@verz) {
$Config{tl}->update();
last if $Config{abbr} == 1;
$text2 = '.' x $i;
$i = 0 if ++$i > 3;
if ($file =~ /\.lnk$/) {
_check($file);
next;
}
if(-d $file) {
opendir DIR,$file or die "Konnte Verzeichnis $file nicht öffnen: $!";
push @verz,map { $file . '\\' . $_ } grep !/^\.\.?$/ && (-d $file . '\\' . $_ or /\.lnk$/i), readdir DIR;
closedir DIR;
}
}
1
2
3
4
Tk::Error: Tk::Button=HASH(0x29b1404) is not a Tk object at D:/Perl/site/lib/Tk.pm line 91.
(ConfigSpecs,Configure,[\&Tk::After::_cancelAll,{}],_names_)
Tk callback for .toplevel1.frame.button
(command bound to event)
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
38
39
40
41
42
43
44
45
46
47
my $w = 350;
my $h = 200;
# Abbruchsvariable resetten falls gesetzt
$Config{abbr} &&= 0;
my ($width,$height,$pos_x,$pos_y) = split /\+|x/,$Config{main_window}->geometry();
$Config{tl} = $Config{main_window}->Toplevel(-title=>'Startkriterien');
$Config{tl}->Icon(-image=>$Config{Icon});
$Config{tl}->minsize($w,$h);
$Config{tl}->geometry('+' .
int($width / 2 + $pos_x - $w / 2) .
'+' .
int($height / 2 + $pos_y - $h / 2)
);
$Config{tl}->focusForce();
my $frame = $Config{tl}->Frame()->pack(-anchor=>'n');
$frame->Label(-text=>'') ->grid(-column=>0,-row=>0,-sticky=>'ew');
$frame->Label(-text=>'') ->grid(-column=>1,-row=>0,-sticky=>'ew');
$frame->Label(-text=>'Startpfad:',-anchor=>'w') ->grid(-column=>0,-row=>1,-sticky=>'ew');
$frame->Entry(-textvariable=>\$Config{start}) ->grid(-column=>1,-row=>1,-sticky=>'ew');
$frame->Label(-text=>'Suchtext:',-anchor=>'w') ->grid(-column=>0,-row=>2,-sticky=>'ew');
$frame->Entry(-textvariable=>\$Config{suche}) ->grid(-column=>1,-row=>2,-sticky=>'ew');
$frame->Label(-text=>'Ersetzung:',-anchor=>'w') ->grid(-column=>0,-row=>3,-sticky=>'ew');
$frame->Entry(-textvariable=>\$Config{ersetzung}) ->grid(-column=>1,-row=>3,-sticky=>'ew');
$frame->Label(-text=>'Versuchen das Ziel aufzulösen?:',-anchor=>'w') ->grid(-column=>0,-row=>4,-sticky=>'ew');
$frame->Checkbutton(-variable=>\$Config{resolve},-anchor=>'w') ->grid(-column=>1,-row=>4,-sticky=>'ew');
$frame->Label(-text=>'Bestätigung beim Auflösen?:',-anchor=>'w') ->grid(-column=>0,-row=>5,-sticky=>'ew');
$frame->Checkbutton(-variable=>\$Config{confirm},-anchor=>'w') ->grid(-column=>1,-row=>5,-sticky=>'ew');
$frame->Label(-text=>'') ->grid(-column=>0,-row=>6,-sticky=>'ew');
$frame->Label(-text=>'') ->grid(-column=>1,-row=>6,-sticky=>'ew');
$frame->Button(-text => 'Start',
-command => \&_durchsuchen,
-width => 20) ->grid(-column=>0,-row=>7);
$frame->Button(-text => 'Abbrechen',
-command => sub{$Config{tl}->destroy();},
-width => 20) ->grid(-column=>1,-row=>7);
# Bindungen
$Config{tl}->bind('<Return>',\&_durchsuchen);
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Toplevel zerstören
$Config{tl}->destroy();
$Config{start} ||= '';
$Config{such} ||= '';
$Config{ersetzung} ||= '';
# Pfüfung der ausgefüllten Felder
unless (-d $Config{start}) {
$Config{main_window}->messageBox(-title=>'Felder wurden nicht korrekt ausgefüllt!',
-message=>"Das Verzeichnis $Config{start} ist kein Verzeichnis oder existier nicht.",
-icon=>'error',
-type=>'OK'
);
return;
}
if ($Config{suche} xor $Config{ersetzung}) {
$Config{main_window}->messageBox(-title=>'Felder wurden nicht korrekt ausgefüllt!',
-message=>"Bitte Such und Ersetzungsfeld ausfüllen um Ersetzung durchzuführen oder keines um keine Ersetzung durchzuführen.",
-icon=>'error',
-type=>'OK'
);
return;
}
#------------------------------------------------------------------------------------------
----
# Toplevel zur Beschäftigung anzeigen
#------------------------------------------------------------------------------------------
----
my $w = 150;
my $h = 100;
my $text1 = 'Durchsuche';
my $text2 = '';
my $Icon = $Config{main_window}->Photo(-file=>$FindBin::Bin . '/chklnk.gif');
my ($width,$height,$pos_x,$pos_y) = split /\+|x/,$Config{main_window}->geometry();
$Config{tl} = $Config{main_window}->Toplevel(-title=>'Durchsuche...');
$Config{tl}->Icon(-image=>$Config{Icon});
$Config{tl}->minsize($w,$h);
$Config{tl}->geometry('+' .
int($width / 2 + $pos_x - $w / 2) .
'+' .
int($height / 2 + $pos_y - $h / 2)
);
$Config{tl}->focusForce();
my $frame1 = $Config{tl}->Frame()->pack();
my $frame2 = $Config{tl}->Frame()->pack();
$frame1->Label(-text=>$text1,-anchor=>'w')->pack(-side=>'left');
$frame1->Label(-textvariable=>\$text2,-anchor=>'w',-width=>5)->pack(-side=>'left');
$frame2->Label(-image=>$Icon)->pack(-side=>'top');
$frame2->Button(-width=>20,
-text=>'Abbruch',
-underline=>0,
-command=>sub{$Config{abbr} = 1;$Config{tl}->destroy();}
)->pack(-side=>'top');
$Config{tl}->bind('<Return>',sub{$Config{abbr} = 1;$Config{tl}->destroy();});
$Config{tl}->bind('<a>', sub{$Config{abbr} = 1;$Config{tl}->destroy();});
#------------------------------------------------------------------------------------------
------
my $i = 0;
my @verz = ($Config{start});
for my $file (@verz) {
$Config{tl}->update();
last if $Config{abbr} == 1;
$text2 = '.' x $i;
$i = 0 if ++$i > 3;
if ($file =~ /\.lnk$/) {
_check($file);
next;
}
if(-d $file) {
opendir DIR,$file or die "Konnte Verzeichnis $file nicht öffnen: $!";
push @verz,map { $file . '\\' . $_ } grep !/^\.\.?$/ && (-d $file . '\\' . $_ or /\.lnk$/i), readdir DIR;
closedir DIR;
}
}
$Config{tl}->destroy();
unless ($Config{abbr} == 1) {
$Config{main_window}->messageBox(-title=>'Suche abgeschlossen',
-message=>"Suche im Verzeichnis $Config{start} abgeschlossen",
-icon=>'info',
-type=>'OK'
);
}
7 Einträge, 1 Seite |