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

Вниз

Несколько вопросов по ListView и Memo   Найти похожие ветки 

 
Matroskin66   (2007-07-06 23:21) [0]

Привет. Читал книгу про KOL и искал на форуме, но ответов на свои вопросы так и не нашёл. Помогите пожалуйста, я только начал программировать на KOL.
1) Как поменять цвет шрафта (стиль начертания) определённого пункта в колонке (в уже существующей теме на форуме ответа так и нет, а демку я не нашёл)
2) использую LVSearchFor для поиска по ListView

var
r: Integer;
begin
if SearchEd.Text = "" then exit;
r := LV.LVSearchFor(SearchEd.Text, -1, true);
if r <> -1 then
  begin
    LV.LVItemState[r] := [lvisSelect]+[lvisFocus];
    LV.LVCurItem := r;
  end;
end;

У меня большой список в ListView и поэтому, если нужная строка находится вне зоны видимости, то нужно пролистать лист, что бы увидеть найденную(веделенную) строку. Как сделать так, что бы при нахождении нужной строки, лист сам прокручивался?
3) Как ограничить количество вводимых символов в Memo? (например что бы больше 100 символов нельзя было вводи. т.е. наподобии свойства в VCL у Edit"a MaxLength)
4) Как вставить свой текст в Memo. (в то место, где сейчас находится курсор, что бы уже набранный текст не стерался) мучался с Add и Insert так ничего и не получилось.

Извините что столько ламерских вопросов, но я действительно не нашёл в книге описание таких тривиальных вещей. А у самого что то никак не получается. Заранее всем спасибо.


 
=BuckLr=   (2007-07-07 09:57) [1]


> Как ограничить количество вводимых символов в Memo

API Memo1.Perform( EM_LIMITTEXT, 0, MaxTextLen ). Для richedit можно EM_EXLIMITTEXT


> Как вставить свой текст в Memo. (в то место, где сейчас
> находится курсор

.selection


 
Matrorkin66   (2007-07-07 10:42) [2]

Спасибо, с мемо разобрался (только нужно для ограничения использовать первый параметр а не второй). А как быть с ListView? Если уж никак нельзя изменить цвет или начертание шрифта у некоторых элементов, то как сделать нормальный поиск?


 
=BuckLr=   (2007-07-08 11:53) [3]


> только нужно для ограничения использовать первый параметр
> а не второй

да, забыл. Это у меня с ричэдит код, для него второй параметр, а для мемо - первый, правильно


 
KOLBoss ©   (2007-07-09 06:18) [4]


> Как сделать так, что бы при нахождении нужной строки, лист
> сам прокручивался?

LV.LVMakeVisible(LV.Count -1,True);


 
Matroskin66   (2007-07-09 10:20) [5]

KOLBoss, спасибо за LVMakeVisible :) Сделал вот так:

var
r: Integer;
begin
if SearchEd.Text = "" then exit;
r := LV.LVSearchFor(SearchEd.Text, -1, true);
if r <> -1 then
  begin
    LV.LVCurItem := r;
    LV.LVMakeVisible(r, true);
  end;
end;


Теперь осталось узнать как поменять цвет шрифта или стиль начертания определённого пункта в колонке и я буду счастлив :)


 
KOLBoss ©   (2007-07-09 10:59) [6]


> Теперь осталось узнать как поменять цвет шрифта или стиль
> начертания определённого пункта в колонке и я буду счастлив
> :)

Да вопрос интересный,
надо капать в сторану события
onLVCustomDraw


 
vpbar ©   (2007-07-09 11:09) [7]

По поводу ListView была тема на форуме недавно. Сам заводил.
http://delphimaster.net/view/11-1181215785/


 
KOLBoss ©   (2007-07-09 11:53) [8]


> vpbar
спасибо за подсказку но в твоем примере хинты остаются пустыми почемуто.
А примерчик здесь http://kolmck.net/demos/DemoLVCustomDraw.zip
А именно конкретной ичейке цвет нельзя поменять? только целиком со строчкой?


 
vpbar ©   (2007-07-09 12:29) [9]

Вот код  onLVCustomDraw

 result := CDRF_DODEFAULT;
 if (Stage and CDDS_PREPAINT) <> 0 then
   begin
     if SubItemIdx = 1 then
       begin
         if ItemIdx mod 2 = 0 then
           begin
             TextColor := clYellow;
           end else
           begin
             TextColor := clWhite;
           end;
         BackColor := clGreen;
       end else
       begin
         BackColor := clYellow;

         if ItemIdx mod 2 = 0 then
           begin
             TextColor := clRed;
           end else
           begin
             TextColor := clBlue;
           end;
       end;
     Result := Result or CDRF_NEWFONT or CDRF_NOTIFYITEMDRAW;
   end;



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

Форум: "KOL";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.077 c
2-1201633028
Inslave
2008-01-29 21:57
2008.02.24
Перемещаться как по Radiobutton ам


15-1201083737
Игорь Шевченко
2008-01-23 13:22
2008.02.24
Как добиться, чтобы русский текст письма выглядел по-русски...


9-1167719462
@!!ex
2007-01-02 09:31
2008.02.24
Collision Detection


15-1200754134
@!!ex
2008-01-19 17:48
2008.02.24
Отличие Win XP Prof от Home?


15-1200686027
Palladin
2008-01-18 22:53
2008.02.24
вытесняющая многозадачность в windows





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