Delphi - TComboBox legördített listája szélességének a változtatása

forráskód letöltése
Ha egy TComboBox komponensbe olyan szövegeket helyezünk el, melyeknek hossza meghaladja a komponens szélességét, akkor bizony a felhasználó igen nehezen jöhet csak rá, hogy mi is lehet az adott szöveg vége.

Mellékelt példában úgy oldjuk meg ezt a problémát, hogy az adott TComboBox legördítésekor automatikusan olyan szélesre állítjuk a legördülő listát, hogy abban az összes elem olvasható legyen. Ehhez első lépésként meg kell határozni a leghosszabb szöveg pontos hosszát. Ezt egy ciklus segítségével végezzük el, ahol meghatározzuk a szöveghosszak maximumát.

Ha ez megvan, akkor már csak meg kell kérnünk egy TComobBox komponenst, hogy erre az adott hosszra állítsa be a legördülő lista szélességét.

Ehhez egy CB_SETDROPPEDWIDTH üzenetet küldünk számára, ahol paraméterként átadjuk a kívánt szélességet, mely 10 pixel-el nagyobb lesz mint a maximum érték, csupán azért, hogy legyen némi "margó" is a szöveg körül, a kereten belül.