Topic: Странное поведение TdbComboBox

Столкнулся с проблемой: если создать скриптом комбобокс, а затем кликнуть по нему, чтобы показался выпадающий список, то при попытке удалить такой комбобокс выскакивает AV. Если же выпадающий список не вызывать, то комбобокс спокойно удаляется методом Free.

Пример во вложении.


1. Нажимаем кнопку Button1.  При каждом нажатии сначала удаляются все контролы на панели, потом добавляется комбобокс.
2. Нажимаем ещё раз. Ошибки нет. Комбобокс удаляется, потом создается по новой.
3. Открываем выпадающий список комбобокса.
4. Нажимаем кнопку Button1 и получаем AV.


Вопрос: как удалить  комбобокс, если им успели воспользоваться? )))))


Понимаю, что ситуация редкая, но вдруг у кого-нибудь возникнут идеи. У меня пока одна идея - не удалять, а использовать повторно, инициализируя новыми параметрами. А если не нужен, то менять видимость.

Post's attachments

Attachment icon NON_FREE_COMBO.rar 292.8 kb, 39 downloads since 2023-10-19 

Визуальное программирование: блог и телеграм-канал.

Re: Странное поведение TdbComboBox

Видимо возникает какая-то дополнительная ссылка на память

3 (edited by vovka3003 2023-10-19 17:38:29)

Re: Странное поведение TdbComboBox

Программа "нездорова" трохи...

Вот так  ̶ч̶е̶р̶е̶з̶ ̶ж̶о̶п̶у̶ фурычит вроде:

var
...
  Control:TControl;
...
  for i := tmpParent.ControlCount - 1 downto 0 do
  begin
    Control :=  tmpParent.Controls[i];
    Control.Parent := Form1;
    Control.Free;
  end;

или такая дичь:

    SendMessage(TWinControl(tmpParent.Controls[i]).Handle, WM_CLOSE ,0,0);
    tmpParent.Controls[i].Free;

4 (edited by k245 2023-10-21 07:00:49)

Re: Странное поведение TdbComboBox

vovka3003 wrote:

Программа "нездорова" трохи...

Вот так  ̶ч̶е̶р̶е̶з̶ ̶ж̶о̶п̶у̶ фурычит вроде:

var
...
  Control:TControl;
...
  for i := tmpParent.ControlCount - 1 downto 0 do
  begin
    Control :=  tmpParent.Controls[i];
    Control.Parent := Form1;
    Control.Free;
  end;

или такая дичь:

    SendMessage(TWinControl(tmpParent.Controls[i]).Handle, WM_CLOSE ,0,0);
    tmpParent.Controls[i].Free;

Да ты волшебник! Тогда тебе ещё одна загадка. Точнее, две:

Режим MultiSelect := True;

1. Как убрать панель, закрывающую часть выпадающего списка?
2. Как заставить корректно отображаться выпадающий список при увеличении размера шрифта?


Win10

Визуальное программирование: блог и телеграм-канал.

5 (edited by k245 2023-10-21 06:56:08)

Re: Странное поведение TdbComboBox

1. Как убрать панель, закрывающую часть выпадающего списка?

https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9979&download=0

Post's attachments

Attachment icon изображение_2023-10-21_095546068.png 17.18 kb, 12 downloads since 2023-10-21 

Визуальное программирование: блог и телеграм-канал.

6 (edited by k245 2023-10-21 07:00:56)

Re: Странное поведение TdbComboBox

2. Как заставить корректно отображаться выпадающий список при увеличении размера шрифта?
https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9980&download=0

Увеличил шрифт до 15. Высота компонента не изменилась, надписи наползают друг на друга.
Верхний компонент с MultiSelect = False, работает корректно: высота компонента соответствует высоте шрифта, список отображается нормально.

Post's attachments

Attachment icon img-2023-10-21-09-57-29.png 1.99 kb, 11 downloads since 2023-10-21 

Визуальное программирование: блог и телеграм-канал.

7 (edited by k245 2023-10-21 07:09:37)

Re: Странное поведение TdbComboBox

Пока только мысли слепить из TdbEdit (1), TdbButton (2) и TdbStringGridEx (3) конструкцию с аналогичными функциями:
https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9981&download=0

Post's attachments

Attachment icon изображение_2023-10-21_100541435.png 8.05 kb, 11 downloads since 2023-10-21 

Визуальное программирование: блог и телеграм-канал.

8 (edited by k245 2023-10-21 07:11:06)

Re: Странное поведение TdbComboBox

...а ещё иконку приложения сменить на такую:
https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9982&download=0

Post's attachments

Attachment icon 14309936338103.png 26.73 kb, 11 downloads since 2023-10-21 

Визуальное программирование: блог и телеграм-канал.