Jemand zu Hause?Leser: 32
Gtk2::Ex::TickerView
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem1 2 3 4 5 6 7 8 9 10 11 12 13
#!/usr/bin/perl use strict; use warnings; my @txt=split//,'Meine Laufschrift +++ '; for my $i (1..100) { system('cls'); for my $j ($i .. $i+60) { print $txt[$j%(@txt-1)]; } } # ;-)
1
2
perl -wle'system("cls");'
Can't exec "cls": Datei oder Verzeichnis nicht gefunden at -e line 1.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem
Win32::GUI installiert habe. 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
#!/usr/bin/perl use strict; use warnings; #use diagnostics; use Win32::GUI(); my $message; # Erzeuge Fenster my $main = Win32::GUI::Window->new( -name => 'Main', # interner Fenstername -width => 100, -height => 1, -onTimer => scrollMessage, # Timer springt diese Funktion an! ); $message = "Blah, Blub - LOL. Hihi. Perl ist supertoll! Windows auch ab und an."; $main->AddTimer('scrolltimer', 100); # alle 100ms wird onTimer aufgerufen $main->Caption($message); $main->Show(); sub scrollMessage { my $c = substr($message,0,1); # erstzes Zeichen retten $message = substr($message,1); # Meldung ab 2. Zeichen $message .= $c; # Erstes Zeichen an Ende setzen $main->Caption($message); } sub Main_Terminate { -1; }
Win32::GUI in Strawberry Perl v5.10.0 unter WinXP mit CPAN erstaunlich problemlos geklappt, sogar ohne force.
Tk habe ich es auch nicht erzielen können. (Ähnlich wie in meinem Konsolenscript mit CLS würde es wohl schon gehen, wenn man das Fenster immer wieder neu erzeugen würde - aber das wäre wohl noch weniger flickerfrei als das in der Konsole ...)
TickerTape, das Du Dir mal ansehen kannst. (Die description ist jedenfalls lesenswert!) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#!/usr/bin/perl use strict; use warnings; use Tk; my $message = (@ARGV) ? join(' ',@ARGV) : 'ACHTUNG! Wichtig! Wichtig! Wenn Sie das verpassen haben Sie was verpasst. Morgen ist gestern, da Heute übermorgen Vorgestern gewesen sein wird! '; my $top = MainWindow->new; my $screen = $top->Label(-fg=>'Red', -bg=>'black', -textvariable => \$message, -width => 150, -height => 5); $screen->pack(); $top->after(100, \&scroll_it); $top->MainLoop; sub scroll_it { $message =~ /(.)(.*)/; $message="$2$1"; $top->after(200, \&scroll_it); }