Schrift
[thread]4675[/thread]

Page Up / Page Down an Textarea: Wie heißen die KeySyms?

Leser: 1


<< >> 5 Einträge, 1 Seite
Crian
 2003-11-20 11:50
#45407 #45407
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Ich möchte an eine Textarea ein Handling mit Page Up und Page Down binden.

Ich stelle mir das so vor:

Code: (dl )
1
2
3
4
5
my $txt = $wm->Scrolled('Text', ... );
...

$txt->bind('<PageUp>', sub { $txt->yviewScroll(-1, 'units') } );
$txt->bind('<PageDn>', sub { $txt->yviewScroll( 1, 'units') } );


Aber so geht es nicht, denn:

Code: (dl )
Tk::Error: bad event type or keysym "PageUp" at C:/Perl/site/lib/Tk/Derived.pm line 467.


Auf den perldoc-Seiten zu Tk::Scrolled, Tk::Text und Tk::bind standen die keysyms leider nicht drauf...

Wenn das jemand nachsehen kann hätte ich auch gern noch die für Pos1 / Home und Ende / End.

Danke im Vorraus, Crian
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Robby
 2003-11-20 12:21
#45408 #45408
User since
2003-08-11
409 Artikel
BenutzerIn
[default_avatar]
Prior -> PageUp
Next -> PageDown
Home -> Pos1
End -> Ende
Insert -> Einfügen
Delete -> Entfernen

:D

einfach zu testen damit:
(war das nicht von Deiner Homepage ;) )
Code: (dl )
1
2
3
4
5
6
7
8
9
use diagnostics;
use strict;
use warnings;

use Tk;

my $mw = MainWindow->new;
$mw->bind("<Key>", [ sub { print "Taste : '$_[1]'\n" }, Ev('K') ] );
MainLoop();
\n\n

<!--EDIT|Robby|1069323845-->
Kaum macht man es richtig - schon funktioniert es!
Crian
 2003-11-20 12:30
#45409 #45409
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
[quote=Robby,20.11.2003, 11:21]einfach zu testen damit:
(war das nicht von Deiner Homepage ;) )[/quote]
öhm *tröööööt* :blush:

vielen Dank :)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Robby
 2003-11-20 12:37
#45410 #45410
User since
2003-08-11
409 Artikel
BenutzerIn
[default_avatar]
*lol*

Kein Problem :D
Kaum macht man es richtig - schon funktioniert es!
Crian
 2003-11-20 12:39
#45411 #45411
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Klappt wunderbar:

Code: (dl )
1
2
3
4
5
6
    $txt->bind('<Prior>', sub { $txt->yviewScroll(-1, 'units') } );
$txt->bind('<Next>', sub { $txt->yviewScroll( 1, 'units') } );
#$txt->bind('<Home>', sub { $txt->see('1.0') } );
#$txt->bind('<End>', sub { $txt->see('end') } );
$txt->bind('<Home>', sub { $txt->yviewMoveto(0) } );
$txt->bind('<End>', sub { $txt->yviewMoveto(1) } );


Die Funktionalität für Home/End lässt sich sowohl über die beiden aktiven als auch über die beiden auskommentierten Zeilen erreichen, ich glaube aber, dass die aktiven Zeilen den Vorzug bekommen sollten, da ich aus der Beschreibung herauslese, dass see() intern etwas aufwändiger ist. Aber da kann man sich natürlich auch täuschen, und wie immer: bei Reaktionen auf Usereingaben muss man keine Millisekunden herausquetschen (im Gegensatz zu Dingen in Schleifen, die sehr sehr oft durchlaufen werden).
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 5 Einträge, 1 Seite



View all threads created 2003-11-20 11:50.