Thread Tk::Schedule in eigenes Skript einbinden (Win7) (6 answers)
Opened by ausgeraul at 2013-03-27 08:30

ausgeraul
 2013-03-27 08:30
#166657 #166657
User since
2013-03-26
3 Artikel
BenutzerIn
[default_avatar]
Hallo Forum,
Ich versuche den Modul Tk::Schedule in eigenes Skript einzubinden, um zu ermöglichen, zu einem späteren Zeitpunkt eine bestimmte Aktivität mit dem Haupt-Skript auszuführen. Ich stelle es mir folgendermaßen vor: nach dem Start des Tk-Skriptes habe ich ein Entry-Feld, in dem ich ein Eintrag platzieren kann. Nach dem Start des Modules Schedule über eine Schaltfläche kann ich einen Zeitpunkt in der Zukunft definieren. Das Modul wartet auf diesen Zeitpunkt und führt gewünschte Aktivitäten aus. Dabei wird den im Entry-Feld definierten Eintrag für diese Aktivität berücksichtigt. Leider aufgrund dezenter Erfahrungen in PERL komme ich bei der Übergabe dieser Variable von dem Entry-Feld an Schedule nicht weiter. Kann mich jemand bei der Lösung dieses Problems unterstützen? Folgendes Code habe ich erstellt:

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
38
39
40
41
42
43
44
45
46
47
48
49
50
use strict;
use warnings;
use Tk;
use Win32::Process;
use Tk::Schedule;

my ($EntryMan, $TL, $Process);

my $Command = "C:\\Perl\\bin\\perl.exe";
my $Inherit = 0;
my $Dir = ".";

my $mw = MainWindow->new;
$mw->title("MainWindow");
$mw->Entry(-selectbackground=>'white',-selectforeground=>'black',-textvariable=>\$EntryMan)->pack();
$mw->Button(-text=>"Schedule",-command=>\&doTopLevel)->pack();

MainLoop;

sub doTopLevel
{
        if(!Exists($TL))
        {
        $TL=$mw->Toplevel();
        $TL->title("Schedule-Modul");
        $TL->Schedule( 
                -interval => 30,
                -repeat => "once",
                -command => sub
                                        {
                                        print("Schedule is running\n");
#                                       [\&getProcess, $EntryMan];
                                        },
                -comment => "Do an activity")->pack();
        } else {
        $TL->deiconify();
        $TL->raise();
        }
}

sub getProcess
{
my $MyArg = "perl test.pl -a $EntryMan";
Win32::Process::Create($Process,
                                $Command,
                                $MyArg,
                                $Inherit,
                                NORMAL_PRIORITY_CLASS,
                                $Dir) or die Win32::FormatMessage(Win32::GetLastError());
}


PS: Ich hatte auch versucht das Problem über den Modul-Exporter (use Exporter) zu lösen. Auch hier komme ich nicht weiter, weil ich nicht weiß, welche Variablen in Tk::Schedule angesprochen können.

modedit Editiert von GwenDragon: CODE-Tags hinzugefügt
Bitte Code in Code- oder Perl-Tags stellen; siehe /bat/poard/markup_help/

Last edited: 2013-03-27 09:13:40 +0100 (CET)

View full thread Tk::Schedule in eigenes Skript einbinden (Win7)