Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 14

Выделяем строки

15.11.2011, 00:23. Показов 1636. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем доброго дня суток,мне нужна помощь у меня есть листбокс,в него я добавляю строки могу удалять их,вопрос вот в чем,мне надо выделить строку следующую от той,что я удалил
C++
1
2
3
4
5
6
7
StrListBox->Items->Insert(StrListBox->ItemIndex, StrEdit->Text);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::DeleteButtonClick(TObject *Sender)
{
  StrListBox->Items->Delete(StrListBox->ItemIndex);
}
вот код что у меня есть,каким-то образом я должен задать переменную для строки что я удаляю,тогда смогу выделить ту что захочу попробыва так:

C++
1
2
3
StrListBox->ItemIndex=n;
StrListBox->Items->Delete(StrListBox->ItemIndex);
StrListBox->ItemIndex=n-1;
Но ничего не выходит.

Добавлено через 4 минуты
забыл добавить я написал int n;

Добавлено через 56 секунд
и там n+1
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2011, 00:23
Ответы с готовыми решениями:

Выделяем цветом неполные строки
Здравствуйте! У меня есть DataGridView, которому в DataSource DGV_JournalStatements.DataSource = dt.AsDataView(); кладу DataTable...

Динамические массивы: выделяем и высвобождаем память
Доброго времени суток! Динамические массивы: выделяем и высвобождаем память. Но сложность в том, что после выполнения delete, память...

Структуры: зачем мы выделяем память сами, когда это можно сделать автоматически?
есть кусок программы: struct controller { struct watching_area* wa; // 1 int skill; char* name; }; struct...

11
 Аватар для Jafa
51 / 51 / 13
Регистрация: 05.06.2008
Сообщений: 139
15.11.2011, 00:26
попробуй n+1 заменить на n
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
15.11.2011, 00:29
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
if (ListBox1->ItemIndex > -1)
{
   if (ListBox1->ItemIndex < ListBox1->Count - 1)
   {
      ListBox1->ItemIndex = ListBox1->ItemIndex + 1;
      ListBox1->Items->Delete(ListBox1->ItemIndex - 1);
   }
   else
   {
      ListBox1->ItemIndex = ListBox1->ItemIndex - 1;
      ListBox1->Items->Delete(ListBox1->ItemIndex + 1);
   }
}
И используй подсветку синтаксиса. Чуток подправил, на случай, если строка последняя.
1
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 14
15.11.2011, 00:36  [ТС]
не выходит после удаления,ничего не выделяет вообще

Добавлено через 1 минуту
Цитата Сообщение от DefineTrueFalse Посмотреть сообщение
C++
1
2
3
4
5
if (ListBox1->ItemIndex > -1)
{
  ListBox1->ItemIndex = ListBox1->ItemIndex + 1;
  ListBox1->Items->Delete(ListBox1->ItemIndex - 1);
}
И используй подсветку синтаксиса.
что такое подсветка синтаскиса и куда это надо вставить

Добавлено через 6 минут
DefineTrueFalse, получилось только не удаляется последний елемент,а что на счёт моего варианта можете помочь с ним?
0
 Аватар для Jafa
51 / 51 / 13
Регистрация: 05.06.2008
Сообщений: 139
15.11.2011, 00:38
попробуй проверить ItemIndex после удаления, может так:
C++
1
Edit1->Text = IntToStr(ListBox1->ItemIndex);
попробуй обратно ListBox вернуть фокус
0
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 14
15.11.2011, 00:41  [ТС]
Jafa, не совсем понмиаю как это реализовать,попробуйте что-то подсказать на счёт моего варианта
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
15.11.2011, 00:45
andy92, посмотри еще раз мой пост, я его обновил через минуту.
1
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 14
15.11.2011, 00:53  [ТС]
DefineTrueFalse, всё прекрасно но можете объяснить смысл как оно работает,буду очень благодарен,просто не совсем понимаю,из начального условия выходит если не выделенная ни одна строка тогда не должно вообще ничего происходить
можно по порядку каждое дейсвтие
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
15.11.2011, 00:59
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if (ListBox1->ItemIndex > -1)
// если строка выбрана...
{
  if (ListBox1->ItemIndex < ListBox1->Count - 1)
  // если выбранная строка не является последней...
  {
    ListBox1->ItemIndex = ListBox1->ItemIndex + 1;
    // выделить следующую строку.
    ListBox1->Items->Delete(ListBox1->ItemIndex - 1);
    // удалить раннее выделенную строку.
  }
  else
  // если строка была последней...
  {
    ListBox1->ItemIndex = ListBox1->ItemIndex - 1;
    // выделить предыдущую строку.
    ListBox1->Items->Delete(ListBox1->ItemIndex + 1);
    // удалить раннее выделенную строку.
   }
}
0
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 14
15.11.2011, 01:02  [ТС]
а как же будет работать дилит если не выбрана никакая строка?
или мне это всё надо вставить перед
C++
1
StrListBox->Items->Delete(StrListBox->ItemIndex);
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
15.11.2011, 01:07
Цитата Сообщение от andy92 Посмотреть сообщение
а как же будет работать дилит если не выбрана никакая строка?
Не знаю, а где я такое писал?
C++
1
2
3
4
if (ListBox1->ItemIndex > -1)
{
//...
}
Означает, что условие будет действовать, если строка выбрана. Если у ListBox строка НЕ выбрана, ItemIndex как раз равно -1, а значит если ItemIndex БОЛЬШЕ -1, условие выполняется. А вставить это нужно к примеру в OnClick кнопки удаления строки или в OnDblClick ListBox'а. Это уже зависит от условия или желания.
1
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 14
15.11.2011, 01:08  [ТС]
я понял на последний вопрос можно не отвечать
спасибо огромное
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.11.2011, 01:08
Помогаю со студенческими работами здесь

Если $i делится на 2 то выделяем строку цветом aqua, а если на 3 - то курсивом
Как сделать так, чтобы 6 тоже был курсив?Так как он делится на 2 и на 3. Условие: если $i делится на 2 то выделяем строку цветом aqua, а...

Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки
Помогите пожалуйста! 1)Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки. 2)Дана...

Ввести строки и через n символов первой строки вставить вторую строку, и так до конца строки
Помогите исправить баг задача состоит в следующем :ввести строку и простроку тоесть две строки и надо через (n) символов первой строки...

Слить две строки, вставив символы одной строки между символами другой строки
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой индекс j, что aj &lt; bj, а для всех i &lt; j...

Сравнить строки, первый несовпадающий элемент строки-приемника записать в регистр AL, строки-источника - в DL
Помогите написать программу на ассемблерене совсем еще разобрался с этим задание: Ввести с клавиатуры две строки одноразрядных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru