Предотвратить изменение ширины колонки для TListViewDelphi , Компоненты и Классы , TListViewПредотвратить изменение ширины колонки для TListView
Оформил: DeeCo private FListViewOldWndProc: TWndMethod; procedure ListViewNewWndProc(var Msg: TMessage); end; {....} implementation uses CommCtrl; procedure TForm1.FormCreate(Sender: TObject); begin //Sichern der ursprunglichen WindowProc der Listview FListViewOldWndProc := ListView1.WindowProc; //Subclassing: Umleiten der WindowProc auf unsere eigene Procedur Listview1.WindowProc := ListViewNewWndProc; end; procedure TForm1.ListViewNewWndProc(var Msg: TMessage); var hdn: ^THDNotify; begin if Msg.Msg = WM_NOTIFY then begin hdn := Pointer(Msg.lParam); //Abfangen und loschen der HDN_BeginTrack Botschaft if (hdn.hdr.code = HDN_BeginTrackW) or (hdn.hdr.code = HDN_BeginTrackA) then Msg.Result := 1 else FListViewOldWndProc(Msg); end // ansonsten Botschaft an die ursprungliche WindowProc weiterreichen else FListViewOldWndProc(Msg); end; procedure TForm1.FormDestroy(Sender: TObject); begin //vor dem Beenden Original WindowProc wiederherstellen ListView1.WindowProc := FlistViewOldWndProc; FListViewOldWndProc := nil; end; Программный код, предназначенный для предотвращения изменения ширины столбца в компоненте TListView. Автор DeeCo использовал Windows API и язык Object Pascal Delphi. Вот шаг за шагом, как работает это решение:
Почему происходит подстановка процедуры окна ListView? Delphi не предоставляет встроенный способ предотвратить изменение ширины столбца. Подстановкой и обработкой сообщений перед тем, как они достигнут оригинальной процедуры окна, мы можем эффективно блокировать операцию изменения ширины столбца. Вот некоторые предложения:
Предотвратить изменение ширины колонки для TListView на форме, подстановкой собственной процедуры WindowProc и отлавливанием сообщения WM_NOTIFY. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |