Schrift
[thread]10309[/thread]

Wx - TextCtrl erstellen

Tags: Ähnliche Threads

Leser: 2


<< >> 3 Einträge, 1 Seite
pktm
 2007-09-03 02:35
#99007 #99007
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich schlage mich gerade durch den Wx Wald und versuche ein mehrzeiliges Textfeld zu erzuegen.

Hier mein Code:
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
#!/Perl/bin/perl


package ServusWelt;

use strict;
use warnings;

use Wx qw(
    wxDefaultPosition wxDefaultSize
    wxTE_PROCESS_TAB wxTE_MULTILINE wxHSCROLL wxTE_LEFT wxTE_DONTWRAP
);
use base qw(Wx::App);       
use Wx::Event qw( EVT_BUTTON );

sub OnInit {
    my $app = shift;
    my $frame = Wx::Frame->new( undef,      # kein Eltern-Fenster
                             -1,            # Fenter id
                             'Servus Welt', # Titel
                             [-1, -1],      # Position x/y
                             [600, 300]     # Größe x/y
                           );
 
    my $text = Wx::TextCtrl->new(
        $frame,
        -1,
        "text",
        wxDefaultPosition,
        wxDefaultSize,
        wxTE_PROCESS_TAB, 
        wxTE_MULTILINE,  
        wxHSCROLL, 
        wxTE_LEFT, 
        wxTE_DONTWRAP,
    );

    $app->SetTopWindow($frame);             
    $frame->Show(1);                      
}


package main;

use strict;
use warnings;

ServusWelt->new->MainLoop;                # Programminstanz erzeugen und starten


Wenn ich das so starte erhalte ich die mir nichts sagende Fehlermeldung:
Quote
Usage: Wx::TextCtrl::newFull(CLASS, parent, id, value, pos = wxDefaultPosition, size = wxDefaultSize, style = 0, validator = (wxValidator*)&wxDefaultValidator, name = wxTextCtrlNameStr) at C:\Perl\tk\dotthingy\main_wx.pl line 25.


Wenn ich ein paar DInge auskommeniere (z.B. Zeile 31,33,34 & 35) erhalte ich ab und an
Quote
the invocant must be a reference at C:\Perl\tk\dotthingy\main_wx.pl line 25.

was mir genauso wenig sagt.

Bitte um Hilfe. :)

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
lichtkind
 2007-09-06 13:11
#99148 #99148
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
die einelnen flags kombiniert man mit |. es heisst also:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
25:     my $text = Wx::TextCtrl->new(
26:         $frame,
27:         -1,
28:         "text",
29:         wxDefaultPosition|
30:         wxDefaultSize|
31:         wxTE_PROCESS_TAB| 
32:         wxTE_MULTILINE|  
33:         wxHSCROLL| 
34:         wxTE_LEFT| 
35:         wxTE_DONTWRAP|
36:     );


denn alle flags zusammen sind ein parameter deren gemeinsamer wert zählt. wie n c halt. :)
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
pktm
 2007-09-07 12:03
#99180 #99180
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ah, danke. Allerdings werden nur die Flags nach wxDefaultSize zusammen gefasst, eben genanntes und wxDefaultPosition müssen noch mit KOmmata getrennt werden.

Folgendes macht was es soll, nämlich ein mehrzeiliges nicht am rechten Rand umbrechendes (sondern dafür einen Scrollbalken anzeigendes), den Tabulator als einrückendes Steuerzeichen im Text umsetzendes vertikal gescrolltes Textwidget erzeugen. Im Prinzip ist das die Wx-Variante von Tk::Text.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
my $text = Wx::TextCtrl->new(
        $frame,
        -1,
        "text",
        wxDefaultPosition,
        wxDefaultSize,
        wxTE_PROCESS_TAB| 
        wxTE_MULTILINE|  
        wxHSCROLL| 
        wxTE_LEFT| 
        wxTE_DONTWRAP
    );


Edit: Für die lieben Suchmaschinen hier die Fehlermeldung:
Quote
Argument "Wx::So{o}^?SCMMSz8xz29;w}?=)" isn't numeric in bitwise or (|) at C:\Perl\tk\dotthingy\main_wx.pl line 38.
variable is not of type Wx::Point at C:\Perl\tk\dotthingy\main_wx.pl line 38.
http://www.intergastro-service.de (mein erstes CMS :) )
<< >> 3 Einträge, 1 Seite



View all threads created 2007-09-03 02:35.