Schrift
[thread]7991[/thread]

Widget Variablennamen

Leser: 2


<< |< 1 2 3 4 >| >> 31 Einträge, 4 Seiten
zipster
 2006-05-18 13:18
#66238 #66238
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Hi,

gibt es eine Möglichkeit den Variablennamen eines Widget zu bekommen?

z.B. ich erstelle ein Entryfeld und befülle es mit der Variablen $Maus1
Code: (dl )
my $entry = $mainwindow->Entry(-textvariable => $Maus1)->pack();


Gibt es jetzt noch irgendwie die Möglichkeit den Variablennamen nachträglich auszulesen($Maus1)?

Habe es mit
Code: (dl )
1
2
my $inhalt = $entry->cget('-textvariable');
print $$inhalt;

versucht, aber dann bekomme ich nur den Inhalt raus.

Ist das Lösbar?


Gruß
Seri aka Zipster
pq
 2006-05-18 13:50
#66239 #66239
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=zipster,18.05.2006, 11:18]gibt es eine Möglichkeit den Variablennamen eines Widget zu bekommen?[/quote]
nein, und das hat auch nichts mit widgets zu tun.
generell:
my $var = 23;
my %hash = (
 a => $var,
);


in %hash steht jetzt (a => 23). wo soll da der variablenname stehen?

ich glaube aber auch, dass du das nicht wirklich brauchst. sieht nach einem
X-Y-problem aus.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
zipster
 2006-05-18 13:57
#66240 #66240
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Danke.

Dachte ich mir schon fast. Ich bräuchte den Variablenname da dort der Key des Hashs mit drinsteht und ich diesen bräuchte.
Ich will nämlich einen Zeile aus einem Hash löschen.

Mmmhhh muss ich mir wohl was anderes überlegen, weiß bloss noch nicht wie. :(
renee
 2006-05-18 14:51
#66241 #66241
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du uns ein paar mehr Infos zukommen lässt, haben wir vielleicht eine Idee...
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/
pq
 2006-05-18 16:28
#66242 #66242
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
du hast also eine beziehung zwischen variablennamen und hash-keys?
das klingt auch nicht so gut... übergib doch einfach den hash-key.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
zipster
 2006-05-18 17:33
#66243 #66243
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Ich versuche es mal zu erklären.

Ich bauen meine HLIST wie folgt auf (manche kennen es ja schon)
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
sub hlist_notebook{
my ( $hash_ref, $hash_ref_ini, $page, $hlist, $befehl, $choices) = @_;
my ( $counter, $choices_for_browse, $choices_befehl, $feld, $feldname);
for $feldname (keys(%{$hash_ref_ini})) {
$counter++;
}
my $choices_spalte = lies_tabellen_zeilen($dbh, "adresstyp", "beschreibung");
$hlist = $page->Scrolled("HList",
-header => 1,
-columns => $counter,
-scrollbars => 'oe',
-width => 145,
-height => 20,
-relief => 'flat',
)
->$befehl();

for my $datensatz_id (sort keys(%{$hash_ref})){
my $e = $hlist->addchild("");
for $feldname (keys(%{$hash_ref_ini})) {
my $browse = $hash_ref_ini->{$feldname}->{'widget'};
$hlist->header('create',
$hash_ref_ini->{$feldname}->{'place'},
-itemtype => 'window',
-widget => $hlist->Button(-text => $hash_ref_ini->{$feldname}->{'buttonname'},
-relief => 'flat',
-command => [ \&MyTk::HList::order, $hash_ref_ini->{$feldname}->{'place'}, $hash_ref_ini->{$feldname}->{'numorder'} , $hlist, $feldname, \%{$hash_ref}, \@{$choices_spalte}, \%{$hash_ref_ini} ]),
-style => $headerstyle);

$hlist->itemCreate($e,
$hash_ref_ini->{$feldname}->{'place'},
-itemtype => 'window',
(-widget => $feld = $hlist->$browse($hash_ref_ini->{$feldname}->{'variable'} => \$hash_ref->{$datensatz_id}->{$feldname},
-width => $hash_ref_ini->{$feldname}->{'width'})));
if ($browse eq "BrowseEntry"){
my $counter;
foreach my $zeile(@{$choices_spalte}){
$counter++;
foreach (@{$zeile}){
$feld->insert($counter,$_)
}
};
}
elsif ( $browse eq "Checkbutton"){
$feld->configure(-command => [\&auswahl_checkbutton,\%{$hash_ref}, $datensatz_id, \%{$hash_ref_ini} ]);
}
}
}
return ($hlist);
}#hlist_notebook


Wenn ich jetzt eine Auswahl treffe und auf den löschen Button drücke hätte ich gern das folgendes gemacht wird.
1) Entfernen des Eintrages aus der Hlist
2) Entfernen des Eintrages aus dem Hash
3) Entfernen des Eintrages aus der Datenbank

Den ersten Punkt habe ich schon.
Code: (dl )
1
2
3
4
5
6
7
8
sub loeschen_Hlist{
my ($hlist ) = @_;
my ($entrypath, $show, $inhalt);
$entrypath = $hlist->selectionGet;
$show = $hlist->itemCget($entrypath, 1, 'widget');
$hlist->delete('entry', $entrypath);

}

Mein Problem ist jetzt nur das ich nicht weiß welcher Hasheintrag es ist. Und das ich die ID des Datenbankeintrags kenne.

Wenn ich wüßte welcher Hasheintrag es ist wäre der Rest kein Thema weil mein Hash so aufgebaut ist.
HASH->ID->EINTRAG

Ich hoffe es kam gut rüber was ich will...

Gruß

Seri aka Zipster
ptk
 2006-05-19 00:48
#66244 #66244
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=zipster,18.05.2006, 15:33]Mein Problem ist jetzt nur das ich nicht weiß welcher Hasheintrag es ist. Und das ich die ID des Datenbankeintrags kenne.

Wenn ich wüßte welcher Hasheintrag es ist wäre der Rest kein Thema weil mein Hash so aufgebaut ist.
HASH->ID->EINTRAG[/quote]
Vielleicht hilft CPAN:Tie::Hash::TwoWay
zipster
 2006-05-19 11:00
#66245 #66245
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Vielen Dank.
Was das Modul drauf hat ist schon sau geil. Weiß aber ehrlich gesagt nicht so genau wie ich es einsetzten soll.
ptk
 2006-05-20 12:09
#66246 #66246
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Wenn ich dich richtig verstanden habe, hast du eine Zuordnung HASH->ID->EINTRAG und möchtest die umgekehrte Richtung haben. Das könnte man mit dem Modul machen, vielleicht. Oder sollte ich lieber doch mein inoffizielles Modul offenbaren? Such mal in Google nach TwoDirHash.
zipster
 2006-05-22 12:31
#66247 #66247
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Aus meiner Hlist bekomme ich mit itemCget den Entry Inhalt. Und damit ich nicht jeden Inhalt mit dem Hash vergleichen muss um Herauszubekommen welcher Hasheintrag es ist dachte ich mir das es ja einfacher wäre wenn ich mit Hilfe des Entryeintrages (= Hasheintrag) den Hashname bekomme (HASH->ID->EINTRAG) den dann hätte ich die ID und alles wäre für mich supi einfach.

Also mit dem Modul kann man aus einem Hash alle Keys auslesen. Ja das ist richtig. Aber ich will von einem bestimmten Hasheintrag die Keys wissen und das kann das Modul meines wissens nicht.

Hab dein Modul. ABER ich habe keine Ahnung was es macht. Bei der Test.pl läuft nur ok1 bis ok 37 durch... ;) aber frag mich nicht was da sonst noch gemacht wird....

Wenn ihr eine bessere Lösung wißt sagt bescheid.
<< |< 1 2 3 4 >| >> 31 Einträge, 4 Seiten



View all threads created 2006-05-18 13:18.