PureBasic 4.20 Beta 3 WinVista 32 Bit StringGadget

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
Bamsagla
Beiträge: 33
Registriert: 03.12.2004 14:49
Wohnort: Laufen

PureBasic 4.20 Beta 3 WinVista 32 Bit StringGadget

Beitrag von Bamsagla »

Hallo mal an alle,

folgendes "Problem" tritt bei mir mit Windows Vista und PureBasic 4.20 Beta 3 auf, es ist zwar nur ein optischer Fehler, aber ich dachte, ich frag mal nach obs anderen auch so geht...

Wenn ich in einem Fenster ein Stringgadget mit dem Flag #PB_String_Numeric erstelle wird dieses auch ohne weitere Probleme in meinem Fenster dargestellt und die Begrenzung auf numerische Eingaben funktioniert auch. Wenn ich jedoch irgendeinen Buchstaben eingebe (was ja nicht erlaubt ist) erscheint ein Hinweis "Unzulässiges Zeichen, Sie können hier nur eine Zahl eingeben". Soweit so gut. Gebe ich jedoch ein paar Mal hintereinander ein unerlaubtes Zeichen ein, erscheint neben der Hinweissprechblase auch ein grausiger grauer Kasten genau in der Mitte meines Fensters, der eigentlich auf ein nicht ausgeführtes Redraw vermuten lässt. Allerdings läuft die Repeat-Schleife mit WindowEvent weiter, somit müssten eigentlich auch Redraws durchgeführt werden...

Genauere Angaben: Das StringGadget befindet sich in einem ContainerGadget und hat nur den Flag #PB_String_Numeric und einen voreingestellten Zahlenwert 0000000.

Vielleicht kann jemand den Fehler bestätigen oder eine kleine Hilfestellung geben?

Ach ja, unter PB 4.10 Final läuft der Code ebenfalls, der graue Kasten blitzt jedoch hier nur ganz kurz (bedeutend weniger als eine Sekunde) auf, wird jedoch sofort wieder durch das Fenster und die anderen Gadgets ersetzt.

Ansonsten wirklich erstklassige Arbeit vom PB-Team. Danke für eure konstant zuverlässige und gute Entwicklung.
Service Packs sind dazu da, die Fehler zu verbessern, die vorher nicht richtig funktioniert haben!
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: PureBasic 4.20 Beta 3 WinVista 32 Bit StringGadget

Beitrag von Kiffi »

Code?
Hygge
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

Bild
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Bamsagla
Beiträge: 33
Registriert: 03.12.2004 14:49
Wohnort: Laufen

Genauere Angaben zum Problem

Beitrag von Bamsagla »

Hallo auch,

sorry, hätt ja gleich was liefern können.
Hab jetzt mit einem kleinen Programmchen nochmal herumgetestet und hätte es fast nicht geschafft, den Fehler nachzustellen.
Letztendlich ist es mir dann doch gelungen.
Folgendes Programm:

Code: Alles auswählen

If OpenWindow(100,0,0,800,600,"Testfenster",#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_Invisible)
  If CreateGadgetList(WindowID(100))
    ContainerGadget(50,10,10,780,580)
      StringGadget(100,100,100,200,20,"TestString")
      StringGadget(200,100,200,200,20,"0000000",#PB_String_Numeric)
    CloseGadgetList()
  EndIf
  HideWindow(100,0)
  Repeat
    Select WindowEvent()
      Case #PB_Event_CloseWindow
        Ende = 1
      Case 0
        Delay(1)
    EndSelect
  Until Ende = 1
EndIf
Wichtig: Der Fehler tritt nur auf, wenn sich die beiden Stringgadgets in einem Container befinden und in den Compiler-Optionen die XP-Skin-Unterstützung eingeschaltet ist.
Sofern die XP-Skin-Unterstützung abgeschaltet ist, erscheint nämlich gar keine Sprechblase mit dem entsprechenden Hinweis, es erklingt nur der Standardsound und die Eingabe wird nicht angenommen.

Das führt mich jetzt zu dem Thema, ob man bei Programmen für Windows Vista generell die XP-Skin-Unterstützung abschalten sollte?
Allerdings was mach ich dann bei einem Programm, das für Windows XP und Windows Vista gedacht ist? Zwei execs?

Naja, das Problem ist ja jetzt wirklich auch nicht weltbewegend.
So long, Bamsagla.
Service Packs sind dazu da, die Fehler zu verbessern, die vorher nicht richtig funktioniert haben!
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Genauere Angaben zum Problem

Beitrag von Kiffi »

Bamsagla hat geschrieben:sorry, hätt ja gleich was liefern können.
kein Thema! Also mit Deinem Code kann ich Dein Problem nicht
nachvollziehen ("grausiger grauer Kasten").

Dafür bei mir verliert beim 2ten Tastendruck das StringGadget 200 seinen
3D-Rahmen und das StringGadget 100 verschwindet ganz.

Ich weiß nicht, was schlimmer ist: der grausige graue Kasten oder das
verschwindende Gadget. Auf jeden Fall scheint mir das ein fieser Redraw-Bug
in PB zu sein. In PB 4.1 tritt das bei mir übrigens nicht auf.

Grüße ... Kiffi
Hygge
Benutzeravatar
Bamsagla
Beiträge: 33
Registriert: 03.12.2004 14:49
Wohnort: Laufen

Screenshot zum Fehler

Beitrag von Bamsagla »

Hallo Kiffi,

in diesem Beispiel ist es vielleicht auch nicht so toll ersichtlich, hab mal einen Screenshot von meinem Projekt beigefügt.

Bild

Hoff das zeigt jetzt, was ich mein.

Ciao, Bamsagla.
Service Packs sind dazu da, die Fehler zu verbessern, die vorher nicht richtig funktioniert haben!
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Screenshot zum Fehler

Beitrag von Kiffi »

@Bamsagla: ich habe das mal mit meinen spärlichen Englischkenntnissen im
anderen Board gepostet: http://www.purebasic.fr/english/viewtop ... 641#239641
(ich hoffe, es ist einigermaßen verständlich, was ich da zusammengehackt habe)

Grüße ... Kiffi
Hygge
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Screenshot zum Fehler

Beitrag von Kiffi »

*push*

@Bamsagla: netmaestro hat einen Workaround gepostet. Kannste mal die
SetWindowLong_()-Zeile in Deinen Code einfügen und dann berichten, ob die
graue Box nun nicht mehr erscheint?

Code: Alles auswählen

ContainerGadget(50, [...]
SetWindowLong_(GadgetID(50),#GWL_STYLE,GetWindowLong_(GadgetID(50),#GWL_STYLE) &~ #WS_CLIPCHILDREN)
[...]
Grüße ... Kiffi
Hygge
Benutzeravatar
Bamsagla
Beiträge: 33
Registriert: 03.12.2004 14:49
Wohnort: Laufen

Weitere Probleme unter XP

Beitrag von Bamsagla »

Guten Morgen Kiffi,

danke dir erst einmal für deine engagierte Hilfe.
Habe heute mal mein Projekt auf meinem XP-Arbeitsrechner ausprobiert.
Hier ist es noch viel schlimmer! Die kompletten Inhalte meines Containergadgets werden durch diesen Bug eliminiert und durch eine graue Fläche ersetzt. Ein Redraw wird nicht durchgeführt!
Ebenso konnte ich unter Windows Vista wie auch unter Windows XP das Problem feststellen, dass auch Frame3DGadgets in ContainerGadgets beim Programmstart und nach dem Minimieren nicht mit ihrer (bei mir weissen) Flächenfarbe dargestellt werden, sondern in ebenfalls dem gleichen grau.
Den Workaround hab ich mal gleich in mein Projekt eingefügt und auf alle ContainerGadgets angewandt; siehe da: weder die Probleme beim Frame3DGadget noch bei den "Reißern" durch den erwähnten #PB_String_Numeric-Bug.

Vielen dank auf jeden Fall für deine Hilfe, Kiffi. Allerdings hoffe ich trotzdem, dass eine Fehlerkorrektur (dann wohl für die ContainerGadgets?) den Weg in die PB 4.20 Final schafft, da die Probleme keineswegs in PB 4.10 aufgetreten sind.

EDIT: Hab gerade im englischen Forum gelesen, dass Fr34k im letzten Post auf deinen Topic dazu Stellung genommen hat und den Bug nachvollziehen konnte und eine Korrektur bereits vorgesehen ist.
Thanks to all! :allright:
Service Packs sind dazu da, die Fehler zu verbessern, die vorher nicht richtig funktioniert haben!
Bild
Gesperrt