Topic: список combobox

можно ли расширить список combobox или от только по ширине бокса?

https://downloader.disk.yandex.ru/preview/6c665af178c9ad8a51994b0dc403a770bc4b25bd14811a41f28b86e4d6a82e6c/5c1a7f07/DiBFfxUE7dYonzd3cpjNMt5a4cvk-6DI0NpMsS-KT9s9TEKzaEdbfzGWVGOwic5zQTpqzqS5Go_wytY0bO1anQ%3D%3D?uid=0&filename=45785.jpg&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&tknv=v2&size=2048x2048

Re: список combobox

Скачайте пожалуйста последнюю бета версию, добавил такую возможность
https://www.dropbox.com/s/anufoqnsh809x … a.zip?dl=0



Можете установить фиксированную ширину

procedure Form1_ComboBox1_OnDropDown (Sender: TObject);
begin
   SendMessage(Form1.ComboBox1.Handle, $0160, 200, 0);  // 200 пикселей
end;

Либо необходимая ширина может быть подобрана автоматически

procedure Form1_ComboBox1_OnDropDown (Sender: TObject);
var
  i, L, mWidth: integer;
begin
  mWidth:=0;
  for i := 0 to Form1.ComboBox1.Items.Count - 1 do
     if (Form1.Canvas.TextWidth(Form1.ComboBox1.Items[i]) > mWidth) then mWidth := Form1.Canvas.TextWidth(Form1.ComboBox1.Items[i])+20;

  SendMessage(Form1.ComboBox1.Handle, $0160, mWidth, 0);
end;
Dmitry.

Re: список combobox

спасибо, а за что отвечает последний пораметр в SendMessage(Form1.ComboBox1.Handle, $0160, 200, 0)
путем научного тыка результат не выявил))

Re: список combobox

vovka3003 wrote:

В цикле перебираются итемы комбобокса и ширина самого длинного текста в пикселях сохраняется в переменной mWidth ,  а SendMessage с параметром $0160 (CB_SETDROPPEDWIDTH) устанавливает эту ширину выпадающему списку.

П.С. Где в SendMessage третий параметр "200" - ширина фиксированная.

меня 0 интересует