Extrem langsamer Schleifendurchlauf

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Goofy
Beiträge: 23
Registriert: 13.08.2005 20:56
Wohnort: Regensburg

Extrem langsamer Schleifendurchlauf

Beitrag von Goofy »

Der Schleifendurchlauf braucht eine Ewigkeit und ohne 2 * WindowEvent()
wird das Editorfeld nicht ausreichend aktuallisiert.
Delphi braucht zum Vergleich ca 4 sek. Pb>30 sek.
Wie kann man den Code schneller ablaufen lassen?

Code: Alles auswählen

If Window_Form1()

  quitForm1=0
  Repeat
    EventID=WaitWindowEvent()
    Select EventID
      Case #PB_Event_CloseWindow
        If EventWindowID()=#Window_Form1
          quitForm1=1
        EndIf


      Case #PB_Event_Gadget
        Select EventGadgetID()
          Case #Gadget_Form1_Editor2
          Case #Gadget_Form1_Button3
            ClearGadgetItemList(#Gadget_Form1_Editor2)
            For i =1 To 10000
WindowEvent()
              AddGadgetItem(#Gadget_Form1_Editor2,-1,"HALLO wie geht es Dir  " + Str(i)) 
       WindowEvent()      
            Next
        EndSelect

    EndSelect
  Until quitForm1
  CloseWindow(#Window_Form1)
EndIf
End
Cu Goofy
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Das müsste helfen:

Code: Alles auswählen

ClearGadgetItemList(#Gadget_Form1_Editor2) 
HideGadget(#Gadget_Form1_Editor2,#True)
For i =1 To 10000 
  AddGadgetItem(#Gadget_Form1_Editor2,-1,"HALLO wie geht es Dir  " + Str(i)) 
Next
HideGadget(#Gadget_Form1_Editor2,#False)
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
Goofy
Beiträge: 23
Registriert: 13.08.2005 20:56
Wohnort: Regensburg

Hilft leider nichts

Beitrag von Goofy »

Danke Deeem, aber das EditorGadget sollte schon sichtbar sein,von der
Geschwindigkeitssteigerung ist auch wenig spürbar.
PB kann doch nicht soooo langsam sein.
Cu Goofy
Georg
Beiträge: 29
Registriert: 17.06.2005 19:04

Beitrag von Georg »

Mit WinAPI

Code: Alles auswählen

ClearGadgetItemList(#Gadget_Form1_Editor2) 
While WindowEvent() : Wend
SendMessage_(GadgetID(#Gadget_Form1_Editor2),#WM_SETREDRAW,0,0) 
For i =1 To 10000 
   AddGadgetItem(#Gadget_Form1_Editor2,-1,"HALLO wie geht es Dir  " + Str(i)) 
Next 
SendMessage_(GadgetID(#Gadget_Form1_Editor2),#WM_SETREDRAW,1,0)
 
Antworten