Seite 1 von 1

Extrem langsamer Schleifendurchlauf

Verfasst: 27.08.2005 21:25
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

Verfasst: 27.08.2005 21:38
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)

Hilft leider nichts

Verfasst: 27.08.2005 22:01
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

Verfasst: 28.08.2005 11:45
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)