Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Как вы узнали о нашем сайте?

От друга, знакомого
Из печатных источников
Из поисковой машины
По ссылке с другого сайта
Случайно
Не знаю


Результаты
Другие опросы

Всего голосов: 1031
Комментарии: 4


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Статьи и обзоры



Все, что нужно знать о ListBox

Подборка статей по программированию на языке C++ и в средах разработки Visual C+ и C++ Builder. Даже если вы считаете себя профессионалом, вы все равно найдете здесь для себя что-то новое. Опытом делятся профессионалы.
  • Над каким элементом находится курсор мыши ?
  • Навигация в ListBox при множественном выборе
  • Как сделать так, чтобы при наведении на элемент, длина которого больше длины самого ListBox, появлялся Hint ?
  • Как узнать количество строк(записей) ?
  • Прокрутка ListBox на одну строку вниз
  • Удаление выбранных элементов в TListBox

    Над каким элементом находится курсор мыши ?

    Код
    // поместите на форму Form1 компонент ListBox1 и напишите
    // следующий обработчик события OnMouseMove:
    void __fastcall TForm1::ListBox1MouseMove(TObject *Sender,
    TShiftState Shift, int X, int Y)
    {
    if(ListBox1->ItemAtPos(TPoint(X, Y), true) != -1)
    Form1->Caption = ListBox1->Items->Strings[ListBox1->ItemAtPos(TPoint(X, Y), true)];
    }



    Навигация в ListBox при множественном выборе

    Код
    // разместите на форме ListBox1, установите у него
    // свойство MultiSelect в true, добавьте в ListBox1
    // несколько элементов, разместите также на форме
    // кнопку Button1, в обработчике события OnClick
    // которой напишите следующий код, который будет
    // выводить сообщение для каждого элемента ListBox,
    // выбранного пользователем:
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    for(int i = 0; i < ListBox1->Items->Count; i++)
    if(ListBox1->Selected[i])
    ShowMessage(ListBox1->Items->Strings[i]);
    }



    Как сделать так, чтобы при наведении на элемент, длина которого больше длины самого ListBox, появлялся Hint ?

    Код
    // Где нибудь на показывании формы :
    Application->HintPause = 0;
    Application->HintShortPause = 0;
    Application->HintHidePause = 10000000000;
    Application->OnShowHint = TIn4Form->DoShowHint;


    void __fastcall TIn4Form::DoShowHint(System::AnsiString &HintStr, bool
    &CanShow, THintInfo &HintInfo)
    {
    CanShow = true;
    if (HintInfo.HintControl == ListBox1 )
    {
    if( Mouse->Capture )
    {
    CanShow = false;
    return;
    }
    HintInfo.ReshowTimeout = 100;
    /*HintInfo.HintColor = clAqua;// Changes only for this hint*/
    TPoint pnt;
    SIZE strsize;
    int numstr = ListBox1->ItemAtPos(HintInfo.CursorPos,true);
    if(numstr<0)
    {
    CanShow = false;
    Application->HideHint ();
    return;
    }
    HintStr = ListBox1->Items->Strings[numstr];
    strsize = ListBox1->Canvas->TextExtent(HintStr);
    if(strsize.cx<=ListBox1->ClientWidth)
    {
    CanShow = false;
    Application->HideHint ();
    return;
    }
    pnt.x = -1;
    pnt.y =
    int(HintInfo.CursorPos.y/ListBox3->ItemHeight)*ListBox1->ItemHeight - 3;
    pnt = ListBox3->ClientToScreen(pnt);
    HintInfo.HintPos.x = pnt.x;
    HintInfo.HintPos.y = pnt.y;
    HintInfo.HintMaxWidth = Screen->Width-pnt.x;
    /*HintInfo.HideTimeout = 100;*/
    }
    }// Не забудьте поставить ShowHint у интересующего ListBox-а




    Как узнать количество строк(записей) ?

    Код
    int i = ListBox1->Items->Count;



    Прокрутка ListBox на одну строку вниз

    Код
    // Чтобы прокрутить содержимое списка (TListBox) на одну
    // строку вниз, напишите следующий код:
    SendMessage(ListBox1->Handle, WM_VSCROLL, SB_LINEDOWN, 0);



    Удаление выбранных элементов в TListBox

    Код
    // Напишите следующий код:
    for(int i = ListBox1->Items->Count-1; i >= 0; i--)
    if(ListBox1->Selected[i])
    ListBox1->Items->Delete(i);



  • Нет комментариев. Почему бы Вам не оставить свой?
    Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
    Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


    .



    Статьи и обзоры С++ Visual C++ Все что нужно знать о ListBox Над каким элементом находится курсор мыши Навигация ListBox при множественном выборе Как сделать так чтобы наведении на элемент длина которого больше длины самого появлялся Hint узнать количество строк записей Прокрутка одну строку вниз Удаление выбранных элементов TListBox Код// поместите форму Form1 компонент ListBox1 напишите следующий обработчик события OnMouseMove void __fastcall TForm1 ListBox1MouseMove TObject *Sender TShiftState Shift ListBox1-&