Главная страница
    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.015 c
1-1132785632
BigProg
2005-11-24 01:40
2005.12.18
Как уничтожить класс, который ожидает реакцию пользователя?


14-1133020154
GanibalLector
2005-11-26 18:49
2005.12.18
Просто радость...


2-1133247340
taraban
2005-11-29 09:55
2005.12.18
поможите люди


2-1133272643
FShadow
2005-11-29 16:57
2005.12.18
Как обновить програмно данные в TDBGrid после изменения данныхю.


2-1133434609
JTAG
2005-12-01 13:56
2005.12.18
Народ почему на форме надпись не создается в следующем коде 4 ст





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский