?
Hallo,
der erste Parameter sollte nach der zitierten Dokumentation selbsterklärend sein:
Es werden zunächst garantiert cInitial -viele Speicherplätze für die Aufnahme von Images in die ImageList bereit gestellt (d.h., so lange diese Zahl nicht überschritten wird, muss das System keinen weiteren Plätze besorgen, das System hat keinen zusätzlichen Aufwand, wenn ImageList_Add aufgerufen wird). Mit dem zweiten Parameter cGrow kann man angeben, dass, wenn man die mit cInitial eigentlich festgelegte Anzahl der Plätze mit z.B. ImageList_Add überschreitet, Speicher für weitere cGrow-viele Images vorbereitet wird (es passiert nicht nur ein Add , sondern es entsteht ein Zusatzaufwand, auch zusätzliche Speicherplätze müssen einkalkuliert werden), obwohl vielleicht nur ein zusätzliches Image zu viel in die Liste aufgenommen wurde. Deshalb sollte man diese Zahl bewusst wählen, denn wenn man weiss, dass in manchen Fällen z.B. immer nur 8 (aber eben wirklich 8 auf einmal) zusätzliche Plätze nötig sein werden, wäre cGrow auf eins zu setzen nicht angebracht, das zwar funktionieren würde, aber nach nach jedem ImageList_Add müsste zusätzlich Speicher neu besorgt werden. Diese Überlegungen gelten natürlich allgemein für Systeme, bei denen dynamisch Speicher verfügbar gemacht werden soll, dieses Prinzip wurde eben auch hier auf ImageList übertragen, und es ist üblich, dass man dann für den Speicheranforderungsfall das Wachstum festlegen kann. Man kann also mit diesem Parameter das "Speicherbesorgungsverhalten" (wieviel Platz auf einmal wird besorgt, wenn die Grenze überschritten wird, wieviel Platz will man sich leisten, wenn man mehr Images als im Normalfall, der bekannt sein sollte, aufnehmen will) beim Hinzufügen zu einer ImageList beeinflussen. Meistens weiss man, wie viel Images benötigt werden, aber um flexibel zu sein, gibt es diese kleine Steuerungsmöglichkeit.
MfG,
Probe-Nutzer