C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Нужна помощь., 3 вопроса.
Test3R
Отправлено: 14.01.2007, 12:49


Дежурный стрелочник

Группа: Участник
Сообщений: 46



1. Что надо сделать в опциях, чтоб прога работала на других компах и не требовала библиотек? (вроде отключал галочку Use..., но на другом компе выдавало ошибку, хотя у меня всё работает)

2. Можно ли сделать поиск в ListBox-е? (например, нажал на F3, ввёл слово, его ищет в выделенном ЛистБоксе)

3. В процессе разработки проги я создал парочку не нужных Форм, терь не знаю как их отключить от проекта. (удалил их из папки проекта — при компиляции выдаёт ошибку, что файлов формы нету, лазил в главном файле проекта, там удилил строки с ненужными Формами, всё равно при удалении файлов выдаёт ошибку)
Doga
Отправлено: 14.01.2007, 15:03


Мастер участка

Группа: Участник
Сообщений: 575



1. Во-первых, не понятно какой конкретно флаг Вы имели в виду, упомянув имя "Use...". Во-вторых, по фразе "на другом компе выдавало ошибку", не возможно определить о какой именно ошибке идет речь. В любом случае по этому вопросу Вам сюда:
http://www.rxlib.ru/forums/index.php?act=S...0d18276a0d55773

2. Используйте либо ListBox->Items->IndexOf(...), либо ListBox->Items->Strings[k].Pos(...), в зависимости от того, что находится в ListBox.

3.Кнопка "Remove file from project", или меню Project->Remove from project... .
Test3R
Отправлено: 14.01.2007, 15:54


Дежурный стрелочник

Группа: Участник
Сообщений: 46



Имел ввиду флаг Use dynamic RTL. А пишет что-то вроде: "Не найдены библиотеки".

И можно поподробней про поиск. В проге в листбокс добавляются символы из EditList-а по нажатию Button-а. Можно ли сделать так: EditList — туда пишется слово для поиска, и Button, при нажатии которого это слово ищется в листбоксе, и строка с данным словом, например, выделялась синим цветом. Если да, то напишите примерный шаблон.
Doga
Отправлено: 14.01.2007, 17:24


Мастер участка

Группа: Участник
Сообщений: 575



1. Судя по всему Вы не посетили данную мной в предыдущем посте ссылку wink.gif Иначе сюда Сами бы добрались... http://www.rxlib.ru/faqs/faq2.html
Второй вопрос Ваш.

2. Что такое EditList?
Test3R
Отправлено: 15.01.2007, 13:24


Дежурный стрелочник

Группа: Участник
Сообщений: 46



Насчёт 1 и 3 вопроса всё решил, пасиб.
Насчёт 2 — ошибься, просто Edit (строка ввода короч). В ЛистБоксе вот что примерно получается:

1 строка — Время: 12:00:00.
2 строка — Клетка: 134.

Прошу шаблон для поиска. smile.gif
Doga
Отправлено: 15.01.2007, 16:03


Мастер участка

Группа: Участник
Сообщений: 575



Если требуется полное совпадение
CODE

int Index = ListBox1->Items->IndexOf(Edit1->Text);
if (Index > -1)
{
 ListBox1->ItemIndex = Index;
}


Если требуется частичное совпадение фраз, при условии что длина текста в Edit1 <= длины строки в ListBox.
CODE

for (int k = 0; k < ListBox1->Count; k++)
{
 if (ListBox1->Items->String[k].Pos(Edit1->Text) > 0)
 {
   ListBox1->ItemIndex = k;
   break;
 }
}


Последний код можно использовать "на ходу", сразу после ввода очередного символа в Edit1 (напр. в событии OnKeyDown).
Test3R
Отправлено: 17.01.2007, 15:12


Дежурный стрелочник

Группа: Участник
Сообщений: 46



Как сделать, чтоб при закрытии формы, где находится данный листбокс,
выделение строк как бы обнулялось (ни одной выделенной строки в нём
не оставалось)?

Вот скрипт для поиска (выделения) строк на всякий случай:

void __fastcall TForm4::Button1Click(TObject *Sender)
{
int k, o;
for (k = 0; k < ListBox->Count; k++)
{
o = ListBox->Items->Strings[k].Pos(Edit1->Text);
if (o> 0)
{
ListBox->Selected[k] = true;
}
}
if (ListBox->SelCount == 0)
{
ShowMessage("Текст не найден!");
}
}
Test3R
Отправлено: 18.01.2007, 13:41


Дежурный стрелочник

Группа: Участник
Сообщений: 46



Ап. Кто-нить ответьте.
AVC
Отправлено: 18.01.2007, 14:24


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE
Ап. Кто-нить ответьте.


CODE

for (int k(0); k < ListBox1->Items->Count; k++)
 ListBox1->Selected[k] = false;

Вы и так это знали, правда?

PS. Не забывайте о MultiSelect
Test3R
Отправлено: 18.01.2007, 14:46


Дежурный стрелочник

Группа: Участник
Сообщений: 46



Усё. Пасиб. wink.gif

Вернуться в Вопросы программирования в C++Builder