Einzelnen Beitrag anzeigen

Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#1

BeginUpdate für ComboBox in NonVCL

  Alt 19. Jan 2005, 20:29
Hi Leutz,
ich muss bei meinem Programm mit so ca. 10 ComboBoxen arbeiten,
dh. deren Elemente komplett rauslöschen und neue einfügen.

Das Problem ist ... das Ganze ist etwas langsam, weil das Programm vermutlich versucht,
bei jeden CB_ADDSTRING oder CB_RESETCONTENT die ComboBox komplett neu zu zeichnen.

Deshalb möchte ich, wie bei der VCL eine Art BeginUpdate und EndUpdate machen.
Leider hab ich kein schimmer wie das gehen könnte ... ... würde es helfen die WM_PAINT
-Message von der ComboBox abzufangen und solange zu ignorieren, bis ich fertig bin?

Vielleicht liegts auch an der Art des Hinzufügens ...

SendMessage(hWndChooseGFComboBoxes[i].hWndComboBox,CB_ADDSTRING,0,Integer(PChar(String(GetLongCourseName(ShortCourses,LongCourses,GF[index].Courses[i][j]))))); Was mich noch ziemlich erstaunt hat... ...auf Win98 Systemen gehts trotz viel langsamerem Computer praktisch ohne Verzögerung ... nur bei WinXP gehts so langsam (auf 2 Systemen getestet) ... wahrscheinlich wegen dem XP-Style ... man kann praktisch zuschauen, wie die Dinger gezeichnet werden.

Hoff ihr könnt mir helfen?!?

Danke im Vorraus!
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat