Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Вниз

ListView без полос прокрутки   Найти похожие ветки 

 
gdaujk ©   (2005-11-16 23:29) [0]

Доброго времени суток. Задача, стоящая передо мной, ясна из темы. Делаю так. На форме есть ListView1 (vsReport) c двумя колонками (можно и не с 2-мя) и кнопка Button1. Что бы избавиться от полос прокрутки делаю так:

procedure TForm1.FormCreate(Sender: TObject);
begin
 SetWindowLong(ListView1.Handle, GWL_STYLE,
 GetWindowLong(ListView1.Handle, GWL_STYLE) or LVS_NOSCROLL);
end;


При нажатии на кнопку далаю следующее:

procedure TForm1.Button1Click(Sender: TObject);
begin
 ListView1.Width := ListView1.Width + 10;
end;


Нажимаю на кнопку Button1. ListView расширяется, а его заголовок (ColumnHeaders) остаётся прежней ширины и в дальнейшем ведёт себя очень плохо, особенно при изменении ширины колонок.

Вопрос: Как сделать ListView без полос прокрутки и вышеописанной проблемы с его заголовком?

PS: пробовал то же самое проделать на чистом WinAPI, результат тот же…


 
gdaujk ©   (2005-11-17 12:52) [1]

Использую XP, D7...


 
begin...end ©   (2005-11-17 13:02) [2]

> gdaujk ©   (17.11.05 12:52) [1]

LVS_NOSCROLL
Scrolling is disabled. All items must be within the client area. This style is not compatible with the LVS_LIST or LVS_REPORT styles. See Knowledge Base Article Q137520 for further discussion.

Q137520: http://support.microsoft.com/default.aspx?scid=kb;en-us;137520

?


 
gdaujk ©   (2005-11-17 14:29) [3]

begin...end ©   (17.11.05 13:02) [2]

Спасибо ограмное. Всё робит, правде не совсем понимаю как :-).

procedure TMyListView.PositionHeader;
var
 Header: HWND;
 dwStyle: DWORD;
 Rect: TRect;
 hdLayout: THDLayout;
 WPos: TWindowPos;
begin
 Header := GetWindow(Handle, GW_CHILD);
 //dwStyle := GetWindowLong(hwndListView, GWL_STYLE);
 //SetWindowLong(Handle, GWL_STYLE, dwStyle);
 Windows.GetClientRect(Handle, Rect);
 hdLayout.Rect := @Rect;
 hdLayout.WindowPos := @WPos;
 Header_Layout(Header, @hdLayout);
 SetWindowPos(Header,
              WPos.hwndInsertAfter,
              WPos.x,
              WPos.y,
              WPos.cx,
              WPos.cy,
              WPos.flags or SWP_SHOWWINDOW);
 ListView_EnsureVisible(Handle, 0, FALSE);
end;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.012 c
2-1133273255
бедный студент
2005-11-29 17:07
2005.12.18
шаг цикла


3-1130837150
Punch
2005-11-01 12:25
2005.12.18
Индекс на поле.


14-1133068112
Aust
2005-11-27 08:08
2005.12.18
Что программировать?


2-1133172693
Dilman
2005-11-28 13:11
2005.12.18
Пример работы с DLL


3-1130248108
Silver...
2005-10-25 17:48
2005.12.18
DBCtrlGrid без ScrollBar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский