Seite 1 von 1

Fehlfunktionen bei ExplorerList und Hilfe öffnen

Verfasst: 22.09.2007 05:42
von sharkpeter
Hallo,

nachdem ich jetzt die meisten meiner Quellcodes auf 4.10 umgestellt habe
mußte ich leider feststellen, daß unter Win9x:

1. bei der Verwendung von ExplorerListGadget:

- man bei der Initialisierung einen Kaffee trinken gehen kann

2. mit den einschlägigen Befehlen für die Hilfe diese nicht geöffnet wird.

Das Problem mit dem ExplorerListGadget bestand schon unter 4.02.

PS: Und bitte nicht "Ach nein Win9x ..."

Gruß Jens

Verfasst: 13.10.2007 09:12
von roherter
Also bei folgendem code geht relativ schnell verstehe nicht was du meinst??

Code: Alles auswählen

;{- Enumerations / DataSections
;{ Windows
Enumeration
  #Window_0
EndEnumeration
;}
;{ Gadgets
Enumeration
  #ExplorerList_0
EndEnumeration
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 450, 200, 400, 400, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    If CreateGadgetList(WindowID(#Window_0))
      ExplorerListGadget(#ExplorerList_0, 125, 50, 255, 240, "c:\")
    EndIf
  EndIf
EndProcedure

OpenWindow_Window_0()

;{- Event loop
Repeat
  Event = WaitWindowEvent()
  Select Event
    ; ///////////////////
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      If EventGadget = #ExplorerList_0
      EndIf
    ; //////////////////////
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect
ForEver
;
;}

Verfasst: 13.10.2007 11:20
von sharkpeter
Ich habe mal noch zwei Zeitabfragen mit reingemacht. Ich bekomme
dann folgende Zeiten bis das Fenster angezeigt wird und in die
Repeatschleife hineingegangen wird.

ME: 5,046 Sekunden
XPProSp2: 0,125 Sekunden

;}

Code: Alles auswählen

a=ElapsedMilliseconds()

;{- Enumerations / DataSections 
;{ Windows 
Enumeration 
  #Window_0 
EndEnumeration 
;} 
;{ Gadgets 
Enumeration 
  #ExplorerList_0 
EndEnumeration 
;} 
Define.l Event, EventWindow, EventGadget, EventType, EventMenu 
;} 
Procedure OpenWindow_Window_0() 
  If OpenWindow(#Window_0, 450, 200, 400, 400, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar) 
    If CreateGadgetList(WindowID(#Window_0)) 
      ExplorerListGadget(#ExplorerList_0, 125, 50, 255, 240, "c:\") 
    EndIf 
  EndIf 
EndProcedure 

OpenWindow_Window_0() 

b=ElapsedMilliseconds()

Debug b-a
;{- Event loop 
Repeat 
  Event = WaitWindowEvent() 
  Select Event 
    ; /////////////////// 
    Case #PB_Event_Gadget 
      EventGadget = EventGadget() 
      EventType = EventType() 
      If EventGadget = #ExplorerList_0 
      EndIf 
    ; ////////////////////// 
    Case #PB_Event_CloseWindow 
      EventWindow = EventWindow() 
      If EventWindow = #Window_0 
        CloseWindow(#Window_0) 
        Break 
      EndIf 
  EndSelect 
ForEver 
; 
;}
Gruß Jens

Verfasst: 14.10.2007 23:08
von Falko
Ich habe mir mal die Mühe gemacht und deinen Source wieder in PB 3.94
umgestellt. Nun denke ich aber, es scheint in Me beim aktuellen PB,
irgendwo ein verkapselter Bug zu sein,
der wegen der XP-Anpassungen in Me die Zeit etwas stehen läßt.
Denn unter PB 3.94 braucht bei ExplorerListGadget() nur 0.49 Sekunden, wobei im aktuelleren
PB 4.1 Beta 4 ExplorerListGadget() bei mir ebenfalls 5,24 Sekunden braucht.
Ich poste hier mal den Source für die ältere PB-Version:

Gruß Falko

Folgender Source läuft mit PB 3.94!!

Code: Alles auswählen

a=ElapsedMilliseconds()

;{- Enumerations / DataSections
;{ Windows
Enumeration
  #Window_0
EndEnumeration
;}
;{ Gadgets
Enumeration
  #ExplorerList_0
EndEnumeration
;}
Event.l
EventWindow.l
EventGadget.l
EventType.l
EventMenu.l
;}
Procedure OpenWindow_Window_0()
  If OpenWindow(WindowID(#Window_0), 450, 200, 400, 400,#PB_Window_SystemMenu,"Window_0")
    If CreateGadgetList(WindowID(#Window_0))
      ExplorerListGadget(#ExplorerList_0, 125, 50, 255, 240, "c:\")
    EndIf
  EndIf
EndProcedure

OpenWindow_Window_0()

b=ElapsedMilliseconds()

MessageRequester("Ohne Debugger!",StrF((b-a)/1000)+" Sekunden")
;{- Event loop
Repeat
  Event = WaitWindowEvent()
  Select Event
    ; ///////////////////
    Case #PB_Event_Gadget
      EventGadget = EventGadgetID()
      EventType = EventType()
      If EventGadget = #ExplorerList_0
      EndIf
    ; //////////////////////
    Case #PB_Event_CloseWindow
      EventWindow = EventWindowID()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect
ForEver
;
;}

Verfasst: 17.10.2007 07:46
von sharkpeter
@Falko,

das hatte ich nun nicht probiert, aber da es ja funktioniert hatte ...

Danke für die Umstellung, so kann jeder einen Vergleich wagen.

Gruß Jens

PS: Mail habe ich eben gelesen.

Verfasst: 17.10.2007 10:14
von Falko
Ich habe es auch hier im englischen Forum gepostet, aber
leider keine große Reaktion erhalten, was Windows Me betrifft.

http://www.purebasic.fr/english/viewtopic.php?t=29154

Wer weiß, vielleicht hat's Fred noch gelesen, wobei er gestern schon
einige Fixes wo anders zu, gepostet hatte

Grüße, Falko

Verfasst: 18.10.2007 11:58
von Falko
gnozal hat es nun auch unter Win98Se bestätigt, das im aktuellen
PB4.10B4 das ExplorerListGadget um die Fünf Sekunden benötigt und
das dieser in der älteren PB 3.9X - Version Fünfmal schneller läuft.

Nun habe ich das auch mal unter NT4 getestet. Die IDE compiliert zwar etwas, aber
das Programm wird danach nicht ausgeführt.
Ich muss also über Umwege erst das Programm zu einer Exe compilieren
und dann kann ich diese starten. Die Zeiten sind gut, wie unter Vista.

Grüße ..Falko

Verfasst: 21.10.2007 07:34
von sharkpeter
Hi,

nachdem es Gnozal im englischen Forum bestätigt hat und hier
http://www.purebasic.fr/english/viewtop ... 565#215565
einer, gehört so langsam aber sicher einmal "Butter bei die Fisch" :twisted:

Es muß sich doch sagen lassen, jawoll, daran liegt es oder nicht. Wenn
es nicht zu ändern ist, kann man es auch sagen. Ich meine damit nicht
die allgemeinen Forenmitglieder, ich meine die Mitglieder des Forums,
die es WISSEN MÜSSEN UND DAZU SCHWEIGEN!

Gruß Jens

Verfasst: 22.10.2007 17:30
von Falko
Fred hat dazu nun auch was geschrieben. Das Problem war dann auch schon
seit der Version 4.02 vorhanden.
Wenn man kein Win9x mehr hätte, wäre das nie aufgefallen. Aber ich habe
auch noch einige Kollegen, die sich nicht davon trennen können, womit ich
mich vielleicht hätte später auseinander setzen müssen, warum es in Vista,
Win2k oder XP Schneller laufen würde als unter Win9x.

Es wäre schön, wenn man deswegen nicht auf PB 4.20 warten müsste, welche erst nach einer Beta-Aktualisierung vom Mac kommen wird. Aber
das liegt nicht in unseren Händen :allright:


Grüße ..Falko