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

Вниз

MeasureItem   Найти похожие ветки 

 
_aero_   (2002-05-02 15:51) [0]

возникла проблема по поиску ничего не нашел, хотя проблема наверняка часто встречается.

хочу отображать текст в listbox в несколько строчек для этого говорю, что он ownerdravvariable и делаю обработчик события onmeasureitem, но это событие отрабатывает один раз и только при создании формы или изменении Items, и не отрабатывает при изменении размеров listbox

Вопрос: как правильно сделать изменение высоты айтема при изменении размеров контрола.


 
Song   (2002-05-02 18:39) [1]

Надо делать на onDrawItem, а текст выводить через TextOut() или удобней через DrawText()
Для изменения размера строчки соответственно меняйте Rect


 
_aero_   (2002-05-02 19:56) [2]

спасибо, попробую


 
_aero_   (2002-05-03 03:55) [3]

к сожалению, не помогло, дело в том что изменение Rect ни к чему не приводит - следующая строчка все затирает, помогло следующее обходное решение

procedure TForm1.FormResize(Sender: TObject);
begin
lb.Items.BeginUpdate;
lb.Items.SetText(lb.Items.GetText);
lb.Items.EndUpdate;
end;

таким образом при обновлении всех айтемов повторно вызывается onMeasureItem,
упрощенные обработчики на отрисовку и измерение ниже

procedure TForm1.lbMeasureItem(Control: TWinControl;
Index: Integer; var NewHeight: Integer);
begin
with (Control as TListBox) do
NewHeight := (Canvas.TextWidth(Items[Index]) div ClientWidth + 1) * ItemHeight;
end;

procedure TForm1.lbDrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TListBox) do
DrawText( Canvas.Handle, PChar(Items[Index]), -1, Rect, DT_WORDBREAK);
end;




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

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

Наверх




Память: 0.45 MB
Время: 0.006 c
14-50102
lipskiy
2002-04-06 00:21
2002.05.16
Кто пользовался программой Business Market Viewer?


1-49924
HDD
2002-04-29 15:26
2002.05.16
Undo


1-49982
Daiz13
2002-04-30 09:23
2002.05.16
Подскажите компонент для графика


3-49856
Chuvi
2002-04-18 19:57
2002.05.16
Какои драйвер использовать BDO тобы считать из DBF фаила русские


3-49862
Yuri Btr
2002-04-19 10:52
2002.05.16
Help!!! ASCIIDRV





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