Schrift
[thread]5343[/thread]

Tk::Text Text farbig darstellen (Seite 2)

Leser: 3


<< |< 1 2 >| >> 16 Einträge, 2 Seiten
pktm
 2007-06-27 17:05
#46545 #46545
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ok, halten wir fest: Wenn ich meine Funktion so wie jetzt lasse, dann geht es einfach nicht. Ich müsste entweder direkt in der Funktion die Zeile in das Textwidget einfügen oder zusätzlich zum verarbeiteten Rückgabewert (was das Ziel dieser Funktion ist) eine Datenstruktur, in der drin steht, was ich wie farbig haben möchte.

Ich denke, ich werde es erstmal s/w lassen. Die Funktion soll sich nur auf den Text beziehen.\n\n

<!--EDIT|pktm|1182949574-->
http://www.intergastro-service.de (mein erstes CMS :) )
pktm
 2007-07-13 00:21
#46546 #46546
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
[quote=renee,27.06.2007, 10:32]
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
#!/usr/bin/perl

use strict;
use warnings;
use Tk::Text;
use Tk;

my $mw = tkinit;
my $text = $mw->Text()->pack;

my $line = 0;

while( my $inhalt = <DATA> ){
    $text->insert('end',$inhalt );
    ++$line;
    
    if( $inhalt =~ /^Fehler:/ ){
        $text->tagAdd('red_text',$line . ".0" , $line . "." . length $inhalt);
        $text->tagConfigure('red_text', -foreground => 'red');
    }

}


MainLoop;

__DATA__
Dies ist ein Test!
Fehler: Laeuft nicht
Eine Zeile dazwischen.
Noch eine Zeile
Fehler: fehlerhafte Zeile
Fehler: noch ein Fehler
Alles ok!
[/quote]
Gibt es noch eine andere Möglichkeit an die Nummer der letzten Zeile zu kommen als global mitzuzählen?

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
ptk
 2007-07-13 00:29
#46547 #46547
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Man kann die Zeile auch so spezifizieren:
Code: (dl )
'end -1 lines'
.
pktm
 2007-07-13 00:42
#46548 #46548
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
[quote=ptk,12.07.2007, 22:29]Man kann die Zeile auch so spezifizieren:
Code: (dl )
'end -1 lines'
.[/quote]
Das verstehe ich leider nicht.
Wie muss ich das angeben, wenn ich ein Tag auf die letzte Zeile anwenden möchte?

Code: (dl )
1
2
3
4
5
$text->insert('end',"Dies ist ein roter Test\n");
$text->tagAdd('red_text',"1.13","1.18");

$text->insert('end',"Dies ist ein blauer Test\n");
$text->tagAdd('blue_text',und was hier???);


Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
ptk
 2007-07-13 10:41
#46549 #46549
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
So zum Beispiel:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
use Tk;

$top = new MainWindow;
$t = $top->ROText->pack;
$t->tagConfigure('blue_text', -foreground => 'blue');
for (@INC) {
$t->insert("end", "<$_>\n");
}
$t->tagAdd('blue_text', 'end -2 lines', 'end - 1 chars');

MainLoop;
renee
 2007-07-13 12:12
#46550 #46550
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Im Wiki-Artikel habe ich einen kompakteren Code eingestellt, so dass man nicht mitzählen muss und nicht jedesmal ein tagAdd machen muss.

Ich werde das von ptk noch in den Artikel einbauen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2007-06-27 00:10.