Schrift
[thread]4850[/thread]

Mausrad mit Scrollbalken verbinden: wie?



<< >> 10 Einträge, 1 Seite
pktm
 2005-01-14 00:24
#42762 #42762
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Wie kann ich veranlassen, dass das Scrollen mit dem Mausrad an den Scrollbar gebunden wird?
Am besten so, dass das Mausrad den selben Effekt produziert wie mehrere Klicks aus den Scrollbalkenpfeil. Ich habe nämlich keine Lust mir für jedes gescrollte Element einen Subroutine zum scrollen zu schreiben.
mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
esskar
 2005-01-14 02:39
#42763 #42763
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
bringt dir dieser beitrag was: http://board.perl-community.de/cgi-bin....3;t=223
ptk
 2005-01-17 11:52
#42764 #42764
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Welches Tk benutzt du? Eigentlich ist seit Tk804 der Mousewheel-Support eingebaut.
pktm
 2005-01-17 14:29
#42765 #42765
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
@ptk: Benutze Version 804.027.
@esskar: habe das mal versucht, jedoch klappt es nicht. Zusätzlich kommt keine Fehlermeldung.
Eventuell liegt es daran, dass ich ein Scrolled-Widget verwende. Habe da zwar schon mit Subwidget ein bischen rumgespielt, aber zum richtig ausgiebigen Testen kam ich bislang leicher noch nicht.
http://www.intergastro-service.de (mein erstes CMS :) )
Crian
 2005-01-17 19:50
#42766 #42766
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Was versuchst Du denn? Zeig bitte mal etwas Code und beschreibe, was passiert.

Am besten poste ein lauffähiges Minimalbeispiel.\n\n

<!--EDIT|Crian|1105984268-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
pktm
 2005-01-17 22:11
#42767 #42767
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#!/Perl/bin/perl

use strict;
use warnings;
use Data::Dumper();
use Data::Serializer;
use Tk;
use DirHandle;
use DBI;
use DBD::MySQL;
use Tk::Dialog;
use Tk::DialogBox;
use Tk::Font;
use Tk::ToolBar;
use Tk::FileSelect;
use FindBin qw($Bin);
use FileHandle;
use UNIVERSAL qw(isa);


my $mw = MainWindow->new(
-width=>800,
-height=>600,
);

main::getScreen_ConfigDumpEdit($mw);

MainLoop;

sub getScreen_ConfigDumpEdit {
my $mw = shift;
$mw->packPropagate(0); # don't resize

# speichern ob eine Datei geöffnet wurde
my $isOpen = 0;
my $openFile = undef;

# create the text-widget
my $text = $mw->Scrolled('Text',
-wrap => 'none',
-borderwidth => 3,
-relief => 'groove',
-scrollbars => 'se',
-height => '20',
-width => 80,
);

# create ToolBar (open & save-dialog)
my $tb = $mw->ToolBar(qw/-movable 0 -side top/);
$tb->ToolButton(
-image => 'fileopen22',
-tip => 'back',
-command =>
sub{
my $wantedFile = main::getFileDialog("$Bin/config");
my $dataStructure = main::restoreData($wantedFile);
main::insertText($text,$dataStructure);
$isOpen = 1;
$openFile = $wantedFile;
},
);
$tb->ToolButton(
-image => 'filesave22',
-tip => 'back',
-command =>
sub{
if( $isOpen ){
main::storeConfig($openFile,$text->get("1.0", "end"));
$text->delete("1.0","end");
my $d = $mw->DialogBox(-title => "Gesichert", -buttons => ["OK"]);
$d->add("label", 'Ihre Änderungen wurden gesichert.');
$d->Show();
}else{
my $d = $mw->DialogBox(-title => "Keine Datei offen", -buttons => ["OK"]);
$d->add("label", 'Sie müssen zuerst eine Datei öffnen!');
$d->Show();
}
},
);

# alles zusammenpacken
$text->pack(); #-side=>'left', -anchor=>'n'

# if( $mw->width() < $screen->width ){ put scrollbars on $mw

} # /getScreen_ConfigDumpEdit

sub getFileDialog {
my $startDir = shift || $Bin;
$startDir = $Bin unless -e $startDir;
my $FSref = $mw->FileSelect(-directory => $startDir);
# print "FileDialog selected: ".$FSref->Show() . "\n";
return $FSref->Show();
} # /getFileDialog

sub getFilec {
my $file = shift or return 'keine Datei angegeben';
return "Datei $file existiert nicht" unless -e $file;
my @filec = (); # where to store the filecontent
my $fh = new FileHandle;
if ($fh->open("< $file")) {
@filec = $fh->getlines();
$fh->close;
}
return \@filec;
} # /getFilec

sub insertText {
my $text = shift or die 'Kein Textfeld übergeben';
my $data = shift or die 'kein Text übergeben';

# print "insertText\n";

# clear Text
$text->delete("1.0","end");

# insert2Text
$text->insert("end", Data::Dumper::Dumper($data));

} # /insert Text

sub restoreData {
my $file = shift or die 'xml2data: keine Datei übergeben!';
unless( -e $file or -e $Bin.$file ){
die "restoreData: Datei existiert nicht!";
}
my $obj = Data::Serializer->new();
return $obj->retrieve($file);
} # /restoreData

sub storeConfig {
my $file = shift or die 'storeConfig: Keine Datei übergeben!';
my $data = shift or die 'storeConfig: keine Daten übergeben';

my $obj = Data::Serializer->new();
my $fh = new FileHandle "> $file";
if (defined $fh) {
$obj->store($data,$fh);
$fh->close;
}
return 1;
}


Hoffe, der ist lauffähig.
http://www.intergastro-service.de (mein erstes CMS :) )
Crian
 2005-01-17 23:11
#42768 #42768
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Pörch ... nun musste ich 5 Module installieren um dann zu sehen, dass es einfach funktioniert?!

Füg mal

Code: (dl )
1
2
3
4
5
6
7
8
9
    $mw->bind('<Left>',          sub { $text->yviewScroll(-1, 'units') } );
$mw->bind('<Up>', sub { $text->yviewScroll(-1, 'units') } );
$mw->bind('<Down>', sub { $text->yviewScroll( 1, 'units') } );
$mw->bind('<Right>', sub { $text->yviewScroll( 1, 'units') } );
$mw->bind('<Alt-Up>', sub { $text->yviewScroll(-3, 'units') } );
$mw->bind('<Alt-Down>', sub { $text->yviewScroll( 3, 'units') } );
$mw->bind('<Prior>', sub { $text->yviewScroll(-1, 'pages') } );
$mw->bind('<Next>', sub { $text->yviewScroll( 1, 'pages') } );
$mw->bind('<MouseWheel>', [ sub { $text->yviewScroll(-($_[1]/120)*3, 'units') }, Tk::Ev('D') ] );
am Ende von getScreen_ConfigDumpEdit() ein.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
pktm
 2005-01-17 23:47
#42769 #42769
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
cool, warum ging das bei mir nicht???

> nun musste ich 5 Module installieren
und ichhabe mir ncoh überlegt diese ganzen, eigentlich garnicht benutzten Module aus der Liste raus zu werfen...

thx & mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
esskar
 2005-01-18 00:31
#42770 #42770
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=pktm,17.01.2005, 22:47]und ichhabe mir ncoh überlegt diese ganzen, eigentlich garnicht benutzten Module aus der Liste raus zu werfen...[/quote]
lol
Crian
 2005-01-18 00:57
#42771 #42771
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Hab ich auch überlegt vorm installieren, aber dann dachte ich mir was solls, die kannst Du immer brauchen :D

Vielleicht hattest Du $mw / $text nicht in der richtigen Art und Weise verwendet?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 10 Einträge, 1 Seite



View all threads created 2005-01-14 00:24.