Schrift
[thread]5356[/thread]

Hlist auslesen

Leser: 1


<< >> 10 Einträge, 1 Seite
Kean
 2007-07-12 20:30
#46619 #46619
User since
2004-08-18
463 Artikel
BenutzerIn

user image
Hat jemand ein Beispiel wie man eine TK::Hlist incl. Header auslesen kann???

Ich habe bereits mit $table_hl->info('data', '1'); und $table_hl->header('cget', 1, 'value'); experimentiert, aber leider kein Ergebnis bekommen.\n\n

<!--EDIT|Kean|1184257994-->
ptk
 2007-07-12 23:08
#46620 #46620
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Was meinst du genau? Hiermit bekommt den Header raus:
Code: (dl )
1
2
3
4
5
6
use Tk;
$top = new MainWindow;
$hl = $top->HList(-header => 1)->pack;
$hl->headerCreate(0, -text => "This is a header");
warn $hl->headerCget(0, -text);
MainLoop;
Kean
 2007-07-12 23:16
#46621 #46621
User since
2004-08-18
463 Artikel
BenutzerIn

user image
Super :o) jetzt kann ich die Header auslesen.

Das zweite was ich noch gesucht habe war

$table_hl->itemCget(1, 1, -text);

der knackpunkt für mich lag bei der option -text

Danke!
Kean
 2007-07-13 16:26
#46622 #46622
User since
2004-08-18
463 Artikel
BenutzerIn

user image
Ich habe jetzt noch ein Problem.
Ich will den Header der Hlist auslesen und weiss nicht genau wieviele Spalten es gibt.

Also habe ich es so versucht:

Code: (dl )
1
2
3
4
5
6
my $cnt = 0;
while($table_hl->header('exists',$cnt))
{
print $table_hl->headerCget($cnt, -text);
$cnt++;
}


Hierbei sollte er ja abbrechen sobald über exists false geliefert wird. Es kommt allerdings die Fehlermeldung:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
S-NummerNameVornameGeb.DatumKlasseEssenStatusTk::Error: Column "7" does not exis
t at C:/Perl588/lib/Tk.pm line 252.
Tk callback for .notebook.pageID_1.frame.hlist
Tk::__ANON__ at C:/Perl588/lib/Tk.pm line 252
Tk::Derived::Delegate at C:/Perl588/lib/Tk/Derived.pm line 469
Tk::Widget::__ANON__ at C:/Perl588/lib/Tk/Widget.pm line 322
main::drucken_page2 at C:\Dokumente und Einstellungen\Kai\Desktop\Aufas2 0.1\Ve
rwaltung.pl line 535
Tk callback for .notebook.pageID_1.button3
Tk::__ANON__ at C:/Perl588/lib/Tk.pm line 252
Tk::Button::butUp at C:/Perl588/lib/Tk/Button.pm line 111
<ButtonRelease-1>
(command bound to event)


Er gibt also erst brav die ersten Headernamen aus, bringt dann bei der exists überprüfung der nächsten Nummer aber diese Fehlermeldung.
ptk
 2007-07-14 00:07
#46623 #46623
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Code: (dl )
$hlist->cget(-columns);


Du hättest auch ein eval {} um das headerExists-Kommando machen können, aber das ist nicht so sauber.
Kean
 2007-07-14 00:18
#46624 #46624
User since
2004-08-18
463 Artikel
BenutzerIn

user image
Mensch super das klappt *freu*

Du bist echt mein großer Held ptk *g*

DANKE!!!
Kean
 2007-07-14 00:23
#46625 #46625
User since
2004-08-18
463 Artikel
BenutzerIn

user image
Sag mal woher weisst du das alles eigendlich? Ich hab grad nochmal im Cpan nachgesehen und da keinen Hinweis auf das gefunden. Aber hauptsache es funktionert!!!

Gibt es das auch für die Anzahl Items?
ptk
 2007-07-14 01:15
#46626 #46626
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
->configure + ->cget sind die typischen Tk-Methoden um Optionen zu setzen und abzufragen.

Das ist auch in der Tk::HList-Manpage beschrieben:
Quote
This object supports the configure and cget methods described in
Tk::options which can be used to enquire and modify the options
described above.
Kean
 2007-07-14 01:43
#46627 #46627
User since
2004-08-18
463 Artikel
BenutzerIn

user image
Okay beim Header ist mir das klar, aber wie kann ich die Anzahl Items herausfinden.

Die füge ich ja mit $Hlist->add($index); hinzu.

Dann müsste es ja eine Art $Hlist->cget(-add) geben. So einfach wird das wohl aber nicht sein.
Kean
 2007-07-14 11:37
#46628 #46628
User since
2004-08-18
463 Artikel
BenutzerIn

user image
Hier die Lösung für mein Problem:

Code: (dl )
1
2
3
4
5
my $cnt = 0;
while ($table_hl->info('exists',$cnt))
{
$cnt++;
}


*glücklich*
<< >> 10 Einträge, 1 Seite



View all threads created 2007-07-12 20:30.