Schrift
[thread]4692[/thread]

wxPerl: Wx::SplitterWindow instabil?: Prozess friert bei best. Bedingungen ein



<< >> 2 Einträge, 1 Seite
Cremator
 2003-12-19 08:39
#46559 #46559
User since
2003-11-26
97 Artikel
BenutzerIn
[default_avatar]
Kann es sein, das die SplitterWindows ein bissl wackelig sind, wenn's zu viele werden? Ich habe hier ein ganz seltsames Problem...

Mein Hauptfenster hat drei verschachtelte SplitterWindows, sieht ungefaehr so aus:

Code: (dl )
1
2
3
4
5
6
7
8
9
 +------+------------+
| Note | ListCtrl |
| Book | |
| +------------+
| | Panel |
| | |
+------+------------+
| LogCtrl |
+-------------------+

Jedes der Splitterwindows kann ueber einen Menuepunkt/Tastenkuerzel weggeschaltet werden, so das am Ende nur das Panel uebrigbleibt.

Direkt nach dem Start liegt der Fokus auf einem Choice (Dropdownbox wie HTML-Select mit size 1) auf einer der Unterseiten im Notebook.

Wenn man in diesem Zustand nur die Position vom Splitter zwischen Panel und ListControl veraendert und dann alles ueber Tastenkuerzel wegschaltet, bis nur noch das Panel uebrig ist knallt es:

Versucht man naemlich direkt danach das Menu ueber die ALT-Taste aufzurufen, werden die Menueintraege im Menubar auch noch unterstrichen, aber das war's dann. Der Prozess friert komplett ein und ich kann ihn nur noch ueber den Taskmanager abballern.

Der Fehler tritt nicht auf wenn:
- man die Position des Splitters nicht aendert
- man mit der Maus auf's Menu klickt statt ALT zu druecken
- man die Position eines anderen Splitters veraendert
- der zum Test im Panel eingefuegte Button fokusiert ist (egal ob vor oder nach der Aenderung des Splitters)

Also entweder ein Fokus-Problem oder der Splitter hat 'ne Macke.

Ist das Problem bekannt?

Wie bekomme ich das weg? Also ausser einem evtl. Zwangsfokus auf den Button. Die ganze Abfragerei mit was ist sichtbar und was kann/muss ich fokussieren wollte ich mir gerne ersparen (c:
Cremator
 2003-12-20 00:13
#46560 #46560
User since
2003-11-26
97 Artikel
BenutzerIn
[default_avatar]
Hat sich erledigt. Ich hab mir selbst ein Bein gestellt und in der falschen Reihenfolge gesplittet...
Code: (dl )
1
2
3
4
5
6
7
8
9
# Vorher
$self->{'SPLIT1'}->SplitHorizontally($self->{'SPLIT2'}, $self->{'LOG'}, $CONF{'sash1'});
$self->{'SPLIT2'}->SplitVertically($self->{'NOTEBOOK'}, $self->{'SPLIT3'}, $CONF->{'sash2'});
$self->{'SPLIT3'}->SplitHorizontally($self->{'LIST'}, $self->{'PAN'}, $CONF->{'sash3'});

# Jetzt
$self->{'SPLIT3'}->SplitHorizontally($self->{'LIST'}, $self->{'PAN'}, $CONF->{'sash3'});
$self->{'SPLIT2'}->SplitVertically($self->{'NOTEBOOK'}, $self->{'SPLIT3'}, $CONF->{'sash2'});
$self->{'SPLIT1'}->SplitHorizontally($self->{'SPLIT2'}, $self->{'LOG'}, $CONF{'sash1'});

Doh! Da muss man erstmal drauf kommen...
<< >> 2 Einträge, 1 Seite



View all threads created 2003-12-19 08:39.