Schrift
[thread]11652[/thread]

Rückgabe Referenz?

Leser: 1


<< >> 5 Einträge, 1 Seite
theresa
 2008-04-16 15:46
#108461 #108461
User since
2007-07-17
90 Artikel
BenutzerIn
[default_avatar]
Hallo,
gebe einen String mit einer Methode zurück (aus einem Fenster), der kommt aber nicht an. Hab versucht eine Referenz zurückzugeben und dann zu dereferenzieren, war nichts, und "nur so", war auch nix.
Das Programm dazu:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use Tk;

my $var = foo();
print "profil:" . $$var;
#print "profil:" . $var;

sub foo(){

my $text = "Welches Profil soll bearbeitet werden?";
my $mw = tkinit(-title=> 'Profil');

my $frame1 = $mw -> Frame() -> pack();
$frame1->Label( -text => $text)->pack( -side => 'left' );

my $campus_frame = $mw->Frame()->pack();
my $campus_but = $campus_frame -> Button(-text=>"HAW_Campus", -command => sub {$mw->destroy(); my $var = "A"; return \$var}) -> pack();
#bzw. ohne \
$mw->focusForce();
$campus_but->focus();

MainLoop();
}
moritz
 2008-04-16 15:53
#108462 #108462
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Wo solls denn hin zurückgegeben werden?

$campus_but enthält bei dir ein TK::Button Objekt, nämlich das Objekt das den Button darstellt.

Du kannst statddessen CPAN:Tk::Dialog oder sowas verwenden. Oder das Ergebnis in eine Variable schreiben, die ausserhalb der FUnktion auch sichtbar ist.
theresa
 2008-04-16 16:57
#108465 #108465
User since
2007-07-17
90 Artikel
BenutzerIn
[default_avatar]
Na ja ich dachte irgendwie würde die Rückgabe aus dem Button auch die Rückgabe der Methode sein... wie auch immer. Mit ner globalen Variable hat es funktioniert, danke.
#Kein Kommentar
 2008-04-16 17:03
#108466 #108466
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
du könntest auch mit WaitVariable() arbeiten...
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
esskar
 2008-04-16 17:04
#108467 #108467
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
wie wäre es mit

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
my $var = 'X';
foo(\$var);
print $var;

sub foo
{
   my $out = shift;
   # ..
   my $campus_but = $campus_frame -> Button(-text=>"HAW_Campus", -command => sub {$mw->destroy(); $$out = 'A'; }) -> pack();
   # ...    
}
<< >> 5 Einträge, 1 Seite



View all threads created 2008-04-16 15:46.