Как Избавиться от Черной Вертикальной Полосы при Перетаскивании Разделителя в Delphi
При работе с компонентом Header в Delphi, разработчики иногда сталкиваются с проблемой появления черной вертикальной полосы при перетаскивании разделителя. Это происходит из-за того, что в процессе перетаскивания отображается временный индикатор, который показывает предполагаемое положение разделителя после отпускания кнопки мыши. Однако, если вы хотите, чтобы компонент Header в реальном времени отражал изменения размера колонки, использование такого индикатора не требуется.
Шаги для решения проблемы:
Использование стиля HDS_FULLDRAG:
При создании компонента Header включите стиль HDS_FULLDRAG. Это позволит компоненту переходить в режим полного перетаскивания колонок, в котором временный индикатор разделителя не отображается.
pascal
Header := CreateWindowEx(0,
WC_HEADER,
nil,
HDS_BUTTONS or
WS_CHILD or
WS_VISIBLE or
WS_CLIPCHILDREN or
WS_CLIPSIBLINGS or
HDS_FULLDRAG,
0, 0, 0, 0, // ... остальные параметры ...
Wnd, HEADER_ID, hInstance, nil);
Отключение обработчика уведомлений HDN_TRACK:
Если вы используете стиль HDS_FULLDRAG, то не нужно обрабатывать уведомление HDN_TRACK для изменения размера колонки вручную. Компонент Header будет автоматически обновлять размеры колонок в реальном времени.
pascal
WM_NOTIFY:
begin
case HeaderNotification^.Hdr.Code of
HDN_TRACK:
begin
// Здесь обработчик не требуется, компонент автоматически обновит размеры
exit;
end;
end;
end;
Следуя этим шагам, вы сможете избавиться от черной вертикальной полосы при перетаскивании разделителя в компоненте Header в Delphi.
Для устранения черной вертикальной полосы при перетаскивании разделителя в компоненте `Header` Delphi, необходимо включить стиль `HDS_FULLDRAG` при создании компонента и отключить ручную обработку изменения размера колонки.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.