Schrift
[thread]5161[/thread]

3 TableMatrix Probleme... (Seite 3)

Leser: 1


<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
zipster
 2006-02-22 18:02
#45264 #45264
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Habs soweit... nur das sortieren funktioniert noch nicht. Finde den Fehler aber auch im Moment nicht...

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#!/usr/bin/perl
use strict;
use warnings;
use Tk;
use Tk::HList;
use Tk::ItemStyle;
use Tk::BrowseEntry;

my $mw = MainWindow->new();
my $hlist = $mw->Scrolled("HList",
-header => 1,
-columns => 8,
-scrollbars => 'osoe',
-width => 150,
-selectbackground => 'SeaGreen3',
-background => 'white',
)
->pack();


my $headerstyle = $hlist->ItemStyle('window',
-padx => 0,
-pady => 0,
);

my $btn_adressentyp = $hlist->Button(-text => 'Adressentyp', -relief => 'flat', -command => [ \&MyTk::HList::order, 0, 0 ]);
my $btn_strasse = $hlist->Button(-text => 'Strasse', -relief => 'flat', -command => [ \&MyTk::HList::order, 1, 0 ]);
my $btn_hausnummer = $hlist->Button(-text => 'Hausnummer', -relief => 'flat', -command => [ \&MyTk::HList::order, 2, 0 ]);
my $btn_ort = $hlist->Button(-text => 'Ort', -relief => 'flat', -command => [ \&MyTk::HList::order, 3, 0]);
my $btn_postleitzahl = $hlist->Button(-text => 'Postleitzahl', -relief => 'flat', -command => [ \&MyTk::HList::order, 4, 0 ]);
my $btn_land = $hlist->Button(-text => 'Land', -relief => 'flat', -command => [ \&MyTk::HList::order, 5, 0 ]);
my $btn_beschreibung = $hlist->Button(-text => 'Beschreibung', -relief => 'flat', -command => [ \&MyTk::HList::order, 6, 0 ]);
my $btn_erste_adresse = $hlist->Button(-text => 'Erste Adresse', -relief => 'flat', -command => [ \&MyTk::HList::order, 7, 0 ]);


$hlist->header('create', 0, -itemtype => 'window', -widget => $btn_adressentyp, -style => $headerstyle);
$hlist->header('create', 1, -itemtype => 'window', -widget => $btn_strasse, -style => $headerstyle);
$hlist->header('create', 2, -itemtype => 'window', -widget => $btn_hausnummer, -style => $headerstyle);
$hlist->header('create', 3, -itemtype => 'window', -widget => $btn_ort, -style => $headerstyle);
$hlist->header('create', 4, -itemtype => 'window', -widget => $btn_postleitzahl, -style => $headerstyle);
$hlist->header('create', 5, -itemtype => 'window', -widget => $btn_land, -style => $headerstyle);
$hlist->header('create', 6, -itemtype => 'window', -widget => $btn_beschreibung, -style => $headerstyle);
$hlist->header('create', 7, -itemtype => 'window', -widget => $btn_erste_adresse, -style => $headerstyle);


my @mails = (['Heimadresse', 'Fuchsweg', '19', 'Breuberg', '64747', 'Deutschland', 'Ja Ja', '1'],
['Alte Adresse', 'Michelweg', '24', 'Bad König', '64732', 'Deutschland', 'Ja Ja', '0'],
['Ausweichadresse', 'MÖPweg', '5', 'Texas', '4322', 'USA', 'Ja Ja', '0'],
);

for my $zeile (0..$#mails) {
my $e = $hlist->addchild("");
for my $spalte (0..scalar(@{$mails[$zeile]}-1)) {
if ($spalte == '0'){
$hlist->itemCreate($e, $spalte, -itemtype => 'window', (-widget => $hlist->BrowseEntry(-variable=> \$mails[$zeile]->[$spalte])));
}
elsif ($spalte == '7'){
$hlist->itemCreate($e, $spalte, -itemtype => 'window', (-widget => $hlist->Checkbutton(-variable=> \$mails[$zeile]->[$spalte])));
}
else{
$hlist->itemCreate($e, $spalte, -itemtype => 'window', (-widget => $hlist->Entry(-textvariable=> \$mails[$zeile]->[$spalte])));
}
}
}
my $miau;
$mw->Entry(-textvariable => \$miau)->pack();
my $button_neu=$mw->Button(-text => "print Array", -command => sub{
for my $zeile2 (0..$#mails){
for my $zeile3 (0..scalar(@{$mails[$zeile2]}-1)) {
print $mails[$zeile2]->[$zeile3]."\n"
}
}
})->pack();
my $button_neu2=$mw->Button(-text => "lösche Hlist", -command => sub{$hlist->delete('all')})->pack();
MainLoop();


# -----------------------------------------------------------------------------

package MyTk::HList;

my $last_btn;
my $switch;

BEGIN {

$last_btn = -1;
$switch = 0;
}

sub order {
my ($which, $numorder) = @_;

$hlist->delete('all');

my @sorted_mails = $numorder
? sort{$a->[$which] <=> $b->[$which]} @mails
: sort{$a->[$which] cmp $b->[$which]} @mails;

if ($which == $last_btn) {
$switch = 1 if $switch == 0;
$switch = -$switch;
@sorted_mails = reverse @sorted_mails if $switch == -1;
}
else {
$last_btn = $which;
$switch = 0;
}
for my $zeile (0..$#sorted_mails) {
$hlist->add("$zeile");
for my $spalte (0..scalar(@{$sorted_mails[$zeile]}-1)) {
if ($spalte == '0'){
$hlist->itemCreate($zeile, $spalte, -itemtype => 'window', (-widget => $hlist->BrowseEntry(-variable=> \$mails[$zeile]->[$spalte])));
}
elsif ($spalte == '7'){
$hlist->itemCreate($zeile, $spalte, -itemtype => 'window', (-widget => $hlist->Checkbutton(-variable=> \$mails[$zeile]->[$spalte])));
}
else{
$hlist->itemCreate($zeile, $spalte, -itemtype => 'window', (-widget => $hlist->Entry(-textvariable=> \$mails[$zeile]->[$spalte])));
}
}
}


}
\n\n

<!--EDIT|zipster|1140624345-->
ptk
 2006-02-23 02:03
#45265 #45265
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Wenn du statt @sorted_mails wieder nach @mails schreibst, klappt auch das Sortieren.
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



View all threads created 2006-02-20 14:26.