Thread Tk::Text begrenzen (6 answers)
Opened by Froschpopo at 2005-05-10 11:50

coax
 2005-05-10 18:53
#44003 #44003
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Hier 'n kleiner Hack...
Code: (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
#!/usr/bin/perl

package Tk::MyText;

 use Tk::Text;
 use base qw(Tk::Text);

 Tk::Widget->Construct('MyText');

 sub insert {
     my($w, @args) = @_;

     my $max_length = 255;

     my $t = $w->get('1.0', 'end');
     $t =~ s/\n$//s;

     $w->SUPER::insert($args[0],
         substr(join( '' => @args[1 .. $#args]), 0, $max_length - length $t));
 }


1;

package main;

 use strict;
 use warnings;

 use Tk;

 my $mw = tkinit();

 my $t = $mw->MyText()->pack;

 $t->insert('end', 'Doctor Foomanshu');

 MainLoop;

Jetzt musst du's nur noch moeglich machen, dass man eine Option -maxlength angeben kann und die hardcodierte Variable rausloeschen.

Ich hatte es versucht gleich mit einzubauen, aber irgendwie wollte es nicht so wie ich wollte.
Eigentlich muss man doch nur eine Populate-Methode schreiben, dort das maxlength-Argument aus den anderen Argumenten trennen und es der eigenen insert-Methode bekannt machen.
Komischerweise wurde meine Populate-Methode gar nicht erst aufgerufen.
Werde ich mich heute Abend noch einmal dran versuchen.\n\n

<!--EDIT|coax|1115739496-->
,,Das perlt aber heute wieder...'' -- Dittsche

View full thread Tk::Text begrenzen