Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5107[/thread]

Probleme bei Portierung zwischen Perlversionen: Canvas erzeugt Fehler



<< >> 6 Einträge, 1 Seite
jemand
 2005-10-15 19:23
#44777 #44777
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich hab da ein Problem mit nem Canvas in TK. Das Programm wurde während des Schreibens immer mit perl5.8.4 auf Funktionsfähigkeit getestet. Nun muss allerdings im normalen Betrieb perl5.8.0 verwendet werden.
Nun kamen natürlich bei den ersten Tests mit 580 eingige Fehler auf(bilf nicht vollständig angezeigt; keine spinbox) was aber nichts weiter zur Sache tut da diese alle behoben wurden(hoffe ich zmd.).

1) Nur ein Fehler beschäftigt mich noch immer: Das Programm verwendet ein Canvas mit mehreren Items die transparenten Gifs sind. Die Items werden immer wieder configuriert und die Bilder gewechselt.
Im perl584 funktioniert das genau so wie es soll. Bloß in perl580 passiert es manchmal dass eines der Bilder auf den hinteren Ebenen transparent angezeigt wird. Also quasi dass an der Stelle wo man einen Teil dieses Bildes sehen sollte einfach Hintergrund angezeigt wird. Dieses Stück in welchem Hintergrund angezeigt sieht so aus als wäre es ein anderes weiter vorne leigendes Bild(wenn vorne liegende Items nicht angezeigt werden sollen wird ihnen ein transparentes Bild zugewiesen).
Wie kann man das beheben? Muss man das Canvas irgendwie aktualisieren?

2) Und noch ein Problem tritt auf(welches eigentlich viel schwerwiegender ist):
Wenn das Programm des längeren läuft stürzt es ab. Dann kommt ein typisches Windowsfehlermelungsfenster ala Perl Command Line Interoreter hat ein Problem festgestellt und muss beendet werden. In der Shell keine Fehlermeldung. Wenn man auf den "hier klicken" Link im Fehlermeldungsfenster geht heißt es irgendwann in tk.dll würde eine Exception nicht behandelt.
Nach weiterem Testen viel mir dann auf dass auch in Perl584 dieses Problem auftritt. Allerdings ohne Windowsfehlermeldungsfenster aber mit Meldung in der Shell:

"Fail to create pixmap with Tk_GetPixmap in ImgPhotoInstanceSetSize.


This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information."

("contact the a. s. team" -> *g* ich soll mich selbst kontaktieren?? wie nett...)

Ich vermute, dass es daran liegt, dass einige Bilder durch andere mit anderen Abmessungen ersetzt werden, hab aber im Grunde keine Ahnung ob es das wirklich ist und werde einfach mal probieren ob ich es irgendwie wegbekomme. Wäre aber äußerst erfreut wenn mir jemand sagen kann, ob es das ist bzw wenn nicht, was es sonst sein könnte, denn es dauert immer einige Zeit bis dieser Fehler auftritt und das testen ist dann schon recht aufwendig.

Vielen Dank schonmal

Gruß
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
renee
 2005-10-15 19:44
#44778 #44778
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
kann es sein, dass es an unterschiedlichen Tk-Versionen liegt?? Dann hilft nur ein Tk-Upgrade.

Vielleicht hilft es, wenn Du die Applikation mit CPAN:PAR packst. Dann ist das neue Tk mit dabei...
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/
jemand
 2005-10-15 20:56
#44779 #44779
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
wegen des tk-upgrades: das 1. problem liegt wohl an einem fehler in dem älteren tk und funktioniert mit dem neuen ja schön
das 2. aber nicht da ja dort auch bei perl584 der fehler auftritt

PAR kann und will ich nicht verwenden. der einzige grund warum ich perl580 verwenden muss ist dass ich das Programm mit Tinyperl ausführen möchte. ich kann höchstens tk von cpan auf perl580 installieren und dann aus 580 nach tinyperl kopieren, was aber dann nichts am 2. Problem ändert.
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
renee
 2005-10-16 11:49
#44780 #44780
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du musst mit PAR ja keine Executable erstellen! Du kannst einfach das Skript und die Module mit PAR packen! Erst wenn Du daraus ein Executable machst wird Perl mit eingepackt...

Wenn Du mit PAR also nur ein Archiv machst, kannst Du auch TinyPerl verwenden...
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/
jemand
 2005-10-16 12:16
#44781 #44781
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
also meinst du ich soll ein par-archiv machen und das dann mit tinyperl ausführen?
hmm, aber verträgt sich das dann direkt mit tk? also ich meine weil tinyperl ja eigentlich perl580 ist und wenn ich tk von 584 mit tinyperl ganz normal verwende gibtz da probleme.
das mit dem archiv wollte ich nicht unbedingt, aber wenns nicht anders geht, werd ichs wohl so machen.

Danke soweit, werd mal sehen obs so geht.
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
jemand
 2005-10-16 23:42
#44782 #44782
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
oke, ich hab jetzt das problem mit dem abstürzen behoben. falls es jemanden interessiert: es lag an dem ändern der bilder der imageitems in bilder mit anderen abmessungen.

das problem mit den halb verschwundenen bildern bei früheren tk-versionen scheint an den bildern selbst zu liegen denn bei 4 von 32 geht es nicht. beim rest ist es so wie es soll. gibt es irgendwelche einschränkungen vom abspeichern her(begrenzte farbzahl, transparenz) die man beachten muss??
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
<< >> 6 Einträge, 1 Seite



View all threads created 2005-10-15 19:23.