Darstellungsfehler????

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
Pinhead
Beiträge: 85
Registriert: 05.09.2005 20:30
Wohnort: HD

Darstellungsfehler????

Beitrag von Pinhead »

Hallo Leute,
folgendes Problem, wenn ich mein Fenster beim Programmstart
öffne ist alles in Ordnung, wenn es aus dem Programm geöffnet wird
fehlen #Text_55, #Text_56,#Text_57.

Code: Alles auswählen

Procedure Open_Window_6()
  If OpenWindow(#Window_6, 486, 336, 490, 300,"Vokabeleingabe",  #PB_Window_TitleBar|#PB_Window_SystemMenu)  
    If CreateGadgetList(WindowID(#Window_6))           
        TextGadget(#Text_49, 20, 10, 140, 30, "日本語")
        SetGadgetFont(#Text_49, FontID1)
        TextGadget(#Text_50, 20, 50, 120, 30, "Deutsch")
        SetGadgetFont(#Text_50, FontID1)
        StringGadget(#String_4, 130, 50, 340, 27, "")
        StringGadget(#String_5, 130, 10, 340, 27, "")
        SetGadgetFont(#String_4, FontID5)
        SetGadgetFont(#String_5, FontID4)      
        OptionGadget(#Radio_22, 20, 100, 20, 20, "")
        OptionGadget(#Radio_23, 20, 130, 20, 20, "")
        OptionGadget(#Radio_24, 20, 160, 20, 20, "") 
        OptionGadget(#Radio_25, 20, 190, 20, 20, "")               
        TextGadget(#Text_51, 40, 100, 370, 20, "Subjekt")
        SetGadgetFont(#Text_51, FontID5)
        TextGadget(#Text_52, 40, 130, 370, 20, "Verb")
        SetGadgetFont(#Text_52, FontID5)
        TextGadget(#Text_53, 40, 160, 370, 20, "Adjektiv")           
        SetGadgetFont(#Text_53, FontID5)        
        TextGadget(#Text_54, 40, 190, 370, 20, "Sonstiges")           
        SetGadgetFont(#Text_54, FontID5)      
        OptionGadget(#Radio_26, 180, 100, 20, 20, "") 
        OptionGadget(#Radio_27, 180, 130, 20, 20, "")               
        TextGadget(#Text_55, 210, 100, 270, 20, "Grundwortschatz")
        SetGadgetFont(#Text_55, FontID5)
        TextGadget(#Text_56, 210, 130, 270, 20, "Aufbauwortschatz")
        SetGadgetFont(#Text_56, FontID5)  
        SpinGadget(#Spin_1, 180, 160, 60, 20, 1,100)               
        TextGadget(#Text_57, 260, 160, 270, 20, "Lektion")
        SetGadgetFont(#Text_57, FontID5)       
        SetGadgetState (#Spin_1, 1) 
        SetGadgetText(#Spin_1, "1")         
        ButtonGadget(#Button_181, 63, 250, 80, 30, "aufnehmen")
        ButtonGadget(#Button_182, 205, 250, 80, 30, "löschen")
        ButtonGadget(#Button_183, 347, 250, 80, 30, "beenden")                  
    EndIf
  EndIf
EndProcedure
Auf die fehlenden TextGadgets wird sonst nicht zugegriffen, bin mir
sicher, dass die Teile nicht überschrieben werden.
Hat jemand eine Idee warum das so ist?

Gruß Pinhead
Man macht sich immer übertriebene Vorstellungen von dem, was man nicht kennt.
(Albert Camus, franz. Schriftsteller, 1913-1960)
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Darstellungsfehler????

Beitrag von Kiffi »

> Hat jemand eine Idee warum das so ist?

<vermutung>
Könnte vielleicht an Deiner Event-Schleife liegen.
So ohne weiteres kann ich dazu aber nicht sagen.
</vermutung>

Grüße ... Kiffi
Benutzeravatar
Pinhead
Beiträge: 85
Registriert: 05.09.2005 20:30
Wohnort: HD

Beitrag von Pinhead »

Die Vermutung ist richtig!
Der Fehler kommt nur innerhalb der Event-Schleife...
Es findet nach dem Öffnen des Fensters offensichtlich
kein redraw statt. Schiebt man das Fenster aus dem Bild
und dann wieder zurück ist es in Ordnung.

Ich hab schon ein:

Code: Alles auswählen

While WindowEvent(): Wend
nach dem Open_Window_6() eingefügt, bringt aber auch nix.
Der Redraw bleibt einfach aus...
Man macht sich immer übertriebene Vorstellungen von dem, was man nicht kennt.
(Albert Camus, franz. Schriftsteller, 1913-1960)
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Die Vermutung ist richtig!
> Der Fehler kommt nur innerhalb der Event-Schleife...

so ohne ganz Code wird die Fehlersuche für uns relativ schwierig sein. ;-)

Grüße ... Kiffi
Benutzeravatar
Pinhead
Beiträge: 85
Registriert: 05.09.2005 20:30
Wohnort: HD

Beitrag von Pinhead »

Der Code ist mittlerweile etwas zu umfangreich zum Posten (3000<Zeilen).
Ich öffne das Fenster nun versteckt und mach es bei Bedarf sichtbar.
Ist zwar nicht schön funktioniert aber.

Danke für den Hinweis mit der Eventschleife!
Man macht sich immer übertriebene Vorstellungen von dem, was man nicht kennt.
(Albert Camus, franz. Schriftsteller, 1913-1960)
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Der Code ist mittlerweile etwas zu umfangreich zum Posten (3000<Zeilen).

habe ich mir schon fast gedacht ;-)

ein Vorschlag: Lege eine Kopie Deines Projektes an und lösche darin nach
und nach 'unnötigen' Code. Zwischendurch kontrollierst Du, ob das
Redraw-Problem noch immer besteht. Vielleicht kannst Du ja dadurch den
Übeltäter lokalisieren.

Grüße ... Kiffi
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Beitrag von Sven »

Die Gadgets

TextGadget(#Text_51, 40, 100, 370, 20, "Subjekt")
TextGadget(#Text_52, 40, 130, 370, 20, "Verb")
TextGadget(#Text_53, 40, 160, 370, 20, "Adjektiv")

sind 370 Pixel breit und reichen bis x-Pos 410. Damit überschneiden sie den ersten Teil der Gadgets

TextGadget(#Text_55, 210, 100, 270, 20, "Grundwortschatz")
TextGadget(#Text_56, 210, 130, 270, 20, "Aufbauwortschatz")
TextGadget(#Text_57, 260, 160, 270, 20, "Lektion")

Nun ist es Zufall (oder zumindest nicht einfach vorhersagbar), in welcher Reihenfolge die Gadgets bei verschiedenen Redraws angezeigt werden, damit werden sie mal überdeckt, mal nicht. Sowas führt immer zu Problemen, also Gadgets nicht überlappen lassen. ;-)

Sven
Gesperrt